原創|行業資訊|編輯:陳俊吉|2016-10-18 09:48:51.000|閱讀 733 次
概述:Streams集群安裝并不復雜,用戶可以通過參考官網的安裝過程進行安裝配置。然而,本文將關鍵步驟總結下來方便用戶參考,減少走彎路的可能性,用戶只需參考該文檔即能快速搭建Streams集群環境。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
搭建集群環境的關鍵步驟包含以下6大步驟,后面對每個步驟再展開描述。
1. 環境規劃
2. 環境準備
3. 安裝Streams
4. 創建并配置Domain
5. 創建Instance并驗證安裝
6. 安裝開發工具Streams Studio
1.環境規劃
集群環境由Domain和外部ZooKeeper組成,如下圖所示,其中Domain將多臺主機組織在一起,形成一個大資源池。一個Domain共享相同的用戶鑒權(LDAP、PAM)和外部的Zookeeper,Domain包含多臺主機,這些主機則可以分給不同Instance。
此次安裝采用三臺主機為例,三臺主機同時運行ZooKeeper服務器、管理節點和Streams應用節點。出于性能考慮,在生產環境中建議將ZooKeeper運行到專門的服務器上。未來新增加的節點可用于運行Application。
主機信息
主機 |
IP |
用途 |
運行組件 |
說明 |
streams001.test.com |
192.168.6.133 |
運行ZooKeeper,Streams管理和應用 |
ZooKeeper Server Application、audit、authentication、jmx、management、sws、view |
作為Main Management進行安裝 |
streams002.test.com |
192.168.6.134 |
運行ZooKeeper,Streams管理和應用 |
ZooKeeper Server Application、audit、authentication、jmx、management、sws、view |
|
streams003.test.com |
192.168.6.135 |
運行ZooKeeper,和應用 |
ZooKeeper Server Application |
|
如果新增 |
運行Streams應用 |
用戶 |
說明 |
streamsadmin |
屬于OS用戶,創建Domain時選用PAM鑒權的方式 |
分別在各主機上修改/etc/sysconfig/network,設置主機名并重啟。主機名分別如下:
streams001.test.com
streams002.test.com
streams003.test.com
vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=streams001.test.com |
reboot |
reboot完成后,修改所有主機的/etc/hosts實現域名解析
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 |
為了方便管理,在運行Streams的主機需要關閉整個防火墻。如果有其他需要,請參考Linux指導進行防火墻設置。
在各主機以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 |
時鐘同步是集群環境的一個基本要求。由于時鐘同步需要NTP服務器,本文在這里不詳細描述,如果服務器的時間是不同步的,請參考操作系統管理手冊進行時鐘同步設置。
ZooKeeper和Streams GUI的安裝方式需要JDK,如果系統里沒有Java環境或Java版本低于v1.7,請執行以下安裝。
以root用戶在各主機安裝JDK并設置環境變量:
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 |
本次采用root用戶安裝Streams,在安裝過程中再指定Streams管理員的用戶和組,因此需要預先創建用戶。注意保持每臺服務器上的streams相關用戶和組的ID是一致的。
以root用戶在各主機執行以下命令:
groupadd -g 1001 streamsadmin useradd -u 1001 -g streamsadmin -m -d /home/streamsadmin streamsadmin passwd streamsadmin |
在后續的配置中,需要Streams管理員用于具有root用戶權限執行命令,創建用戶后還需配置sudo。
visudo 在打開的配置文件中,找到root ALL=(ALL) ALL,在下面添加一行 streamsadmin ALL=(ALL) NOPASSWD: ALL |
修改streamsadmin的ulimit參數,在/etc/security/limits.conf最后增加下面內容。
注意:文件保存之后,需要重新登錄一次才能生效,如果重新登錄不行就需要重啟主機。
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 |
Streams 需要 ZooKeeper V3.4.6 或更高版本,請訪問//zookeeper.apache.org/下載。
生產環境建議將ZooKeeper安裝在Streams集群外的機器,如果僅為了測試,則采用下面的辦法進行安裝。
使用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目錄下創建一個文件:myid
分別在myid上按照配置文件的server.中id的數值,在不同主機上的該文件中填寫相應過的值,如果
streams001、streams002、streams003的myid內容分別為1、2、3
如在streams001上執行:
echo 1 > /zookeeper/data/myid |
在各主機上分別執行啟動和檢查狀態腳本,由于已經把可執行路徑添加到環境變量中了,所以可以直接執行:
zkServer.sh start zkServer.sh status |
正確的狀態是兩個Zookeeper狀態為Follower,一個為Leader。
在運行一些命令(如streamtool)時會提示輸入Zookeeper URL,如下圖。我們可以通過設置環境變量STREAMS_ZKCONNECT來避免每次的手工輸入。
注意:在單機Streams環境中,確保 STREAMS_ZKCONNECT 環境變量的值為 unset。此環境變量用于設置外部ZooKeeper 服務器的連接字符串。如果此環境變量的值不是unset,那么InfoSphere Streams streamtool 命令可能不會使用嵌入式 ZooKeeper(它會導致不正確的結果)。
請在需要執行streamtool的主機,分別用root和streamsadmin用戶執行以下命令以添加環境變量:
echo "export STREAMS_ZKCONNECT=streams001:2181,streams002:2181,streams003:2181" >> ~/.bash_profile source ~/.bash_profile |
在集群環境里,我們先在一臺主機上安裝Streams并創建Domain,然后再利用已安裝的內容和Domain信息生成新的安裝包并在其他主機上運作,這樣就能快速地把其他主機加入到Domain里。
解壓Streams安裝包,并執行安裝前的環境檢查:
mkdir /install_pkg cd /install_pkg tar zxvf /<your_path>/Streams-4.0.1.0-x86_64-el6.tar.gz ./dependency_checker.sh |
根據dependency_checker.sh的運行結果安裝必要的依賴包,以下命令是安裝在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執行安裝命令,如果配置X Window則啟用GUI安裝方式,否則啟動命令行方式。按提示即可,注意選擇前面創建的streamsadmin用戶和組。提示:root和non-root的安裝區別僅在于默認安裝路徑不同。執行InfoSphereStreamsSetup.bin后按提示進行即可。
cd /install_pkg/StreamsInstallFiles/ ./InfoSphereStreamsSetup.bin |
安裝完成后,分別用root和streamsadmin用戶設置Streams的環境變量
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 |
1. 用streamsadmin用戶啟動Domain管理界面進行創建:
su - streamsadmin /opt/ibm/InfoSphere_Streams/4.0.1.0/DomainManager.sh |
2. 創建基于PAM鑒權的Domain
在ZooKeeper connection string里填:
streams001:2181,streams002:2181,streams003:2181
3. 為InfoSphere Streams 生成認證密鑰
生成公用密鑰和專用密鑰使 InfoSphere Streams 用戶不必在運行 streamtool 命令時輸入密碼。該操作或streamtool genkey 命令會生成下列文件:
專用密鑰:user-id_priv.pem
公用密鑰:user-id.pem
Streams 將專用密鑰存儲在user-home-directory/.streams/key/domain-id 目錄中。公用密鑰存儲在 ZooKeeper 中。
4. 設置domain開機自動啟動/恢復(可選)
用streamtool registerdomainhost -d domain-id --zkconnecthost:port命令設置domain為Linux的自動啟動服務,以保證服務器因故障重啟時,domain服務能自動恢復。如果前面設置了STREAMS_ZKCONNECT變量,--zkconnnect可以省略,下同。
streamtool registerdomainhost -d myDomain |
1. 產生域主機安裝包
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馬上能查看到:
執行以下命令也可以看到Domain的狀態和資源:
streamtool lsdomain streamtool getdomainstate -l -d myDomain streamtool checkdomainhosts -d myDomain |
為主機指定Tag,是為了將不同的服務在主機上區分開來,如主機指定Application表示該主機只運行應用程序而不運行管理服務。
選中某臺主機,勾選/去勾選右邊的服務名字并保存。
修改后執行streamtool getdomainstate -l -d myDomain查看狀態
通過修改Domain的屬性,以啟用Domain的高可用性。
將第一臺主機root和streamsadmin用戶的.bash_profile同步到其他主機。
scp ~/.bash_profile streams002:~/ scp ~/.bash_profile streams003:~/ |
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 |
檢查結果
cd /tmp/Streams-StreamsDomain/logs/<hostname>/instances/StreamsInstance/jobs/<0> cat xxx |
在本地安裝Streams Studio有三種方法,具體請參考:
//www-01.ibm.com/support/knowledgecenter/SSCRJU_4.0.0/com.ibm.streams.install.doc/doc/tinstall-studio-linux.html?lang=zh
從本地或遠程訪問Streams Console并下載 Streams Studio forLinux/Windows安裝。
tar xf ~/Downloads/StreamsStudio.tar.gz cd StreamsStudio ./streamsStudio -clean & |
小結
Streams集群安裝并不復雜,用戶可以通過參考官網的安裝過程進行安裝配置。然而,本文將關鍵步驟總結下來方便用戶參考,減少走彎路的可能性,用戶只需參考該文檔即能快速搭建Streams集群環境。
詳情請咨詢!
客服熱線:023-66090381
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn