快速搭建Streams集群環(huán)境
搭建Streams集群環(huán)境的關(guān)鍵步驟包含以下6大步驟,后面對每個步驟再展開描述。
1. 環(huán)境規(guī)劃
2. 環(huán)境準(zhǔn)備
3. 安裝Streams
4. 創(chuàng)建并配置Domain
5. 創(chuàng)建Instance并驗證安裝
6. 安裝開發(fā)工具Streams Studio
1.環(huán)境規(guī)劃
Streams集群環(huán)境由Domain和外部ZooKeeper組成,如下圖所示,其中Domain將多臺主機組織在一起,形成一個大資源池。一個Domain共享相同的用戶鑒權(quán)(LDAP、PAM)和外部的Zookeeper,Domain包含多臺主機,這些主機則可以分給不同Instance。
此次安裝采用三臺主機為例,三臺主機同時運行ZooKeeper服務(wù)器、Streams管理節(jié)點和Streams應(yīng)用節(jié)點。出于性能考慮,在生產(chǎn)環(huán)境中建議將ZooKeeper運行到專門的服務(wù)器上。未來新增加的節(jié)點可用于運行Application。
主機信息
主機 |
IP |
用途 |
運行組件 |
說明 |
streams001.test.com |
192.168.6.133 |
運行ZooKeeper,Streams管理和應(yīng)用 |
ZooKeeper Server Application、audit、authentication、jmx、management、sws、view |
作為Main Management進行安裝 |
streams002.test.com |
192.168.6.134 |
運行ZooKeeper,Streams管理和應(yīng)用 |
ZooKeeper Server Application、audit、authentication、jmx、management、sws、view |
|
streams003.test.com |
192.168.6.135 |
運行ZooKeeper,和應(yīng)用 |
ZooKeeper Server Application |
|
如果新增 |
運行Streams應(yīng)用 |
Streams管理員用戶信息
用戶 |
說明 |
streamsadmin |
屬于OS用戶,創(chuàng)建Domain時選用PAM鑒權(quán)的方式 |
2.環(huán)境準(zhǔn)備
2.1.主機環(huán)境準(zhǔn)備
2.1.1. 設(shè)置主機名和域名解析
分別在各主機上修改/etc/sysconfig/network,設(shè)置主機名并重啟。主機名分別如下:
streams001.test.com
streams002.test.com
streams003.test.com
vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=streams001.test.com |
reboot |
reboot完成后,修改所有主機的/etc/hosts實現(xiàn)域名解析
vi /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.6.133 streams001.test.com streams001 192.168.6.134 streams002.test.com streams002 192.168.6.135 streams003.test.com streams003 |
2.1.2. 關(guān)閉防火墻
為了方便管理,在運行Streams的主機需要關(guān)閉整個防火墻。如果有其他需要,請參考Linux指導(dǎo)進行防火墻設(shè)置。
在各主機以root用戶運行以下命令:
service iptables save service iptables stop service iptables status chkconfig iptables off sed -i "/service iptables stop/d" /etc/rc.local echo "service iptables stop" >> /etc/rc.local |
2.1.3. 設(shè)置時鐘同步
時鐘同步是集群環(huán)境的一個基本要求。由于時鐘同步需要NTP服務(wù)器,本文在這里不詳細(xì)描述,如果服務(wù)器的時間是不同步的,請參考操作系統(tǒng)管理手冊進行時鐘同步設(shè)置。
2.1.4. 安裝JDK
ZooKeeper和Streams GUI的安裝方式需要JDK,如果系統(tǒng)里沒有Java環(huán)境或Java版本低于v1.7,請執(zhí)行以下安裝。
以root用戶在各主機安裝JDK并設(shè)置環(huán)境變量:
yum install -y java-1.7.0-openjdk echo "export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/" >> ~/.bash_profile . ~/.bash_profile echo $JAVA_HOME |
2.1.5. 創(chuàng)建并設(shè)置Streams管理員用戶
本次采用root用戶安裝Streams,在安裝過程中再指定Streams管理員的用戶和組,因此需要預(yù)先創(chuàng)建用戶。注意保持每臺服務(wù)器上的streams相關(guān)用戶和組的ID是一致的。
以root用戶在各主機執(zhí)行以下命令:
groupadd -g 1001 streamsadmin useradd -u 1001 -g streamsadmin -m -d /home/streamsadmin streamsadmin passwd streamsadmin |
在后續(xù)的配置中,需要Streams管理員用于具有root用戶權(quán)限執(zhí)行命令,創(chuàng)建用戶后還需配置sudo。
visudo 在打開的配置文件中,找到root ALL=(ALL) ALL,在下面添加一行 streamsadmin ALL=(ALL) NOPASSWD: ALL |
修改streamsadmin的ulimit參數(shù),在/etc/security/limits.conf最后增加下面內(nèi)容。
注意:文件保存之后,需要重新登錄一次才能生效,如果重新登錄不行就需要重啟主機。
vi /etc/security/limits.conf streamsadmin hard nofile 65536 streamsadmin soft nofile 65536 streamsadmin hard nproc 65536 streamsadmin soft nproc 65536 streamsadmin hard stack unlimited streamsadmin soft stack 20480 |
2.2. ZooKeeper環(huán)境準(zhǔn)備
Streams 需要 ZooKeeper V3.4.6 或更高版本,請訪問http://zookeeper.apache.org/下載。
生產(chǎn)環(huán)境建議將ZooKeeper安裝在Streams集群外的機器,如果僅為了測試,則采用下面的辦法進行安裝。
2.2.1. 安裝配置ZooKeeper
使用root用戶在各主機安裝和配置ZooKeeper:
mkdir /zookeeper cd /zookeeper tar xf /…/zookeeper-3.4.6.tar.gz mkdir /zookeeper/{data,log} cat >/zookeeper/zookeeper-3.4.6/conf/zoo.cfg<< EOF tickTime=2000 dataDir=/zookeeper/data dataLogDir=/zookeeper/log clientPort=2181 initLimit=5 syncLimit=2 server.1=streams001:2888:3888 server.2=streams002:2888:3888 server.3=streams003:2888:3888 EOF echo "export ZOOKEEPER=/zookeeper/zookeeper-3.4.6" >> ~/.bash_profile echo 'PATH=$PATH:$ZOOKEEPER/bin' >> ~/.bash_profile sed -i "/export PATH/d" ~/.bash_profile echo 'export PATH' >> ~/.bash_profile source ~/.bash_profile |
在/zookeeper/data目錄下創(chuàng)建一個文件:myid
分別在myid上按照配置文件的server.中id的數(shù)值,在不同主機上的該文件中填寫相應(yīng)過的值,如果
streams001、streams002、streams003的myid內(nèi)容分別為1、2、3
如在streams001上執(zhí)行:
echo 1 > /zookeeper/data/myid |
在各主機上分別執(zhí)行啟動和檢查狀態(tài)腳本,由于已經(jīng)把可執(zhí)行路徑添加到環(huán)境變量中了,所以可以直接執(zhí)行:
zkServer.sh start zkServer.sh status |
正確的狀態(tài)是兩個Zookeeper狀態(tài)為Follower,一個為Leader。
2.2.2. 設(shè)置ZooKeeper環(huán)境變量【可選】
在運行一些命令(如streamtool)時會提示輸入Zookeeper URL,如下圖。我們可以通過設(shè)置環(huán)境變量STREAMS_ZKCONNECT來避免每次的手工輸入。
注意:在單機Streams環(huán)境中,確保 STREAMS_ZKCONNECT 環(huán)境變量的值為 unset。此環(huán)境變量用于設(shè)置外部ZooKeeper 服務(wù)器的連接字符串。如果此環(huán)境變量的值不是unset,那么InfoSphere Streams streamtool 命令可能不會使用嵌入式 ZooKeeper(它會導(dǎo)致不正確的結(jié)果)。
請在需要執(zhí)行streamtool的主機,分別用root和streamsadmin用戶執(zhí)行以下命令以添加環(huán)境變量:
echo "export STREAMS_ZKCONNECT=streams001:2181,streams002:2181,streams003:2181" >> ~/.bash_profile source ~/.bash_profile |
3.在第一臺主機安裝Streams
在集群環(huán)境里,我們先在一臺主機上安裝Streams并創(chuàng)建Domain,然后再利用已安裝的內(nèi)容和Domain信息生成新的安裝包并在其他主機上運作,這樣就能快速地把其他主機加入到Domain里。
解壓Streams安裝包,并執(zhí)行安裝前的環(huán)境檢查:
mkdir /install_pkg cd /install_pkg tar zxvf /<your_path>/Streams-4.0.1.0-x86_64-el6.tar.gz ./dependency_checker.sh |
根據(jù)dependency_checker.sh的運行結(jié)果安裝必要的依賴包,以下命令是安裝在RHEL 6.5所需的依賴包。安裝完成后再次運行dependency_checker.sh,直到不再提示錯誤。
yum install -y gcc-c++ yum install -y perl-Time-HiRes cd /install_pkg/StreamsInstallFiles/rpm yum install -y perl-XML-Simple-2.18-6.el6.noarch.rpm ./dependency_checker.sh |
用root執(zhí)行安裝命令,如果配置X Window則啟用GUI安裝方式,否則啟動命令行方式。按提示即可,注意選擇前面創(chuàng)建的streamsadmin用戶和組。提示:root和non-root的安裝區(qū)別僅在于默認(rèn)安裝路徑不同。執(zhí)行InfoSphereStreamsSetup.bin后按提示進行即可。
cd /install_pkg/StreamsInstallFiles/ ./InfoSphereStreamsSetup.bin |
安裝完成后,分別用root和streamsadmin用戶設(shè)置Streams的環(huán)境變量
echo 'PATH=$PATH:/opt/ibm/InfoSphere_Streams/4.0.1.0/bin' >> ~/.bash_profile sed -i "/export PATH/d" ~/.bash_profile echo 'export PATH' >> ~/.bash_profile echo "source /opt/ibm/InfoSphere_Streams/4.0.1.0/bin/streamsprofile.sh" >> ~/.bash_profile source ~/.bash_profile |
4.創(chuàng)建并配置Domain
4.1.創(chuàng)建Domain
1. 用streamsadmin用戶啟動Domain管理界面進行創(chuàng)建:
su - streamsadmin /opt/ibm/InfoSphere_Streams/4.0.1.0/DomainManager.sh |
2. 創(chuàng)建基于PAM鑒權(quán)的Domain
在ZooKeeper connection string里填:
streams001:2181,streams002:2181,streams003:2181
3. 為InfoSphere Streams 生成認(rèn)證密鑰
生成公用密鑰和專用密鑰使 InfoSphere Streams 用戶不必在運行 streamtool 命令時輸入密碼。該操作或streamtool genkey 命令會生成下列文件:
專用密鑰:user-id_priv.pem
公用密鑰:user-id.pem
Streams 將專用密鑰存儲在user-home-directory/.streams/key/domain-id 目錄中。公用密鑰存儲在 ZooKeeper 中。
4. 設(shè)置domain開機自動啟動/恢復(fù)(可選)
用streamtool registerdomainhost -d domain-id --zkconnecthost:port命令設(shè)置domain為Linux的自動啟動服務(wù),以保證服務(wù)器因故障重啟時,domain服務(wù)能自動恢復(fù)。如果前面設(shè)置了STREAMS_ZKCONNECT變量,--zkconnnect可以省略,下同。
streamtool registerdomainhost -d myDomain |
4.2. 添加其他主機到Domain
1. 產(chǎn)生域主機安裝包
2. 將域主機安裝包拷貝到其他機器
su - streamsadmin cd ~/Download scp StreamsDomainHost-4.0.1.0-x86_64-el6.tar streams002: scp StreamsDomainHost-4.0.1.0-x86_64-el6.tar streams003: |
3. 用root用戶在streams002,streams003上進行安裝
tar xf StreamsDomainHost-4.0.1.0-x86_64-el6.tar cd StreamsDomainHost ./dependency_checker.sh yum install -y gcc-c++ yum install -y perl-Time-HiRes yum install -y perl-XML-Simple-2.18-6.el6.noarch.rpm ./dependency_checker.sh sudo -E ./streamsdomainhostsetup.sh |
添加資源后在Streams Console馬上能查看到:
執(zhí)行以下命令也可以看到Domain的狀態(tài)和資源:
streamtool lsdomain streamtool getdomainstate -l -d myDomain streamtool checkdomainhosts -d myDomain |
4.3.為Domain中的主機添加Tag(可選)
為主機指定Tag,是為了將不同的服務(wù)在主機上區(qū)分開來,如主機指定Application表示該主機只運行應(yīng)用程序而不運行管理服務(wù)。
選中某臺主機,勾選/去勾選右邊的服務(wù)名字并保存。
修改后執(zhí)行streamtool getdomainstate -l -d myDomain查看狀態(tài)
4.4. 修改Domain屬性
通過修改Domain的屬性,以啟用Domain的高可用性。
4.5. 同步環(huán)境變量
將第一臺主機root和streamsadmin用戶的.bash_profile同步到其他主機。
scp ~/.bash_profile streams002:~/ scp ~/.bash_profile streams003:~/ |
5.創(chuàng)建Instance并驗證安裝
5.1. 創(chuàng)建Instance
5.2. 運行Sample
su - streamsadmin cp -R $STREAMS_INSTALL/samples . cd samples/spl/application/WordCount/ make distributed streamtool submitjob -P file='/var/log/boot.log' -d myDomain -i testins output/sample.WordCount.sab |
檢查結(jié)果
cd /tmp/Streams-StreamsDomain/logs/<hostname>/instances/StreamsInstance/jobs/<0> cat xxx |
6.安裝開發(fā)工具StreamsStudio
在本地安裝Streams Studio有三種方法,具體請參考:
http://www-01.ibm.com/support/knowledgecenter/SSCRJU_4.0.0/com.ibm.streams.install.doc/doc/tinstall-studio-linux.html?lang=zh
從本地或遠(yuǎn)程訪問Streams Console并下載 Streams Studio forLinux/Windows安裝。
tar xf ~/Downloads/StreamsStudio.tar.gz cd StreamsStudio ./streamsStudio -clean & |
小結(jié)
Streams集群安裝并不復(fù)雜,用戶可以通過參考官網(wǎng)的安裝過程進行安裝配置。然而,本文將關(guān)鍵步驟總結(jié)下來方便用戶參考,減少走彎路的可能性,用戶只需參考該文檔即能快速搭建Streams集群環(huán)境。
慧都控件網(wǎng)年終促銷第一波已開啟,全場6折起,豪禮搶不停>>>
截止時間:2016年10月30日
更多大數(shù)據(jù)與分析相關(guān)行業(yè)資訊、解決方案、案例、教程等請點擊查看>>>
詳情請咨詢在線客服!
客服熱線:023-66090381