logo 慧都大数据(二) 我也要发布文档

快速搭建Streams集群环境


搭建Streams集群环境的关键步骤包含以下6大步骤,后面对每个步骤再展开描述。

1. 环境规划

2. 环境准备

3. 安装Streams

4. 创建并配置Domain

5. 创建Instance并验证安装

6. 安装开发工具Streams Studio

1.环境规划

Streams集群环境由Domain和外部ZooKeeper组成,如下图所示,其中Domain将多台主机组织在一起,形成一个大资源池。一个Domain共享相同的用户鉴权(LDAP、PAM)和外部的Zookeeper,Domain包含多台主机,这些主机则可以分给不同Instance。

streams

此次安装采用三台主机为例,三台主机同时运行ZooKeeper服务器、Streams管理节点和Streams应用节点。出于性能考虑,在生产环境中建议将ZooKeeper运行到专门的服务器上。未来新增加的节点可用于运行Application。

streams

主机信息

主机

IP

用途

运行组件

说明

streams001.test.com

192.168.6.133

运行ZooKeeperStreams管理和应用

ZooKeeper Server

Applicationauditauthenticationjmxmanagementswsview

作为Main  Management进行安装

streams002.test.com

192.168.6.134

运行ZooKeeperStreams管理和应用

ZooKeeper Server

Applicationauditauthenticationjmxmanagementswsview

 

streams003.test.com

192.168.6.135

运行ZooKeeper,和应用

ZooKeeper Server

Application

 

如果新增

 

运行Streams应用

   

Streams管理员用户信息

用户

说明

streamsadmin

属于OS用户,创建Domain时选用PAM鉴权的方式

大数据分析

2.环境准备

  2.1.主机环境准备

   2.1.1. 设置主机名和域名解析

分别在各主机上修改/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

    2.1.2.  关闭防火墙

为了方便管理,在运行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

    2.1.3. 设置时钟同步

时钟同步是集群环境的一个基本要求。由于时钟同步需要NTP服务器,本文在这里不详细描述,如果服务器的时间是不同步的,请参考操作系统管理手册进行时钟同步设置。

    2.1.4. 安装JDK

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

  2.1.5.  创建并设置Streams管理员用户

本次采用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

修改streamsadminulimit参数,在/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

  2.2. ZooKeeper环境准备

Streams 需要 ZooKeeper V3.4.6 或更高版本,请访问http://zookeeper.apache.org/下载。

生产环境建议将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目录下创建一个文件: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。

    2.2.2. 设置ZooKeeper环境变量【可选】

在运行一些命令(如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

3.在第一台主机安装Streams

在集群环境里,我们先在一台主机上安装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

安装完成后,分别用rootstreamsadmin用户设置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

4.创建并配置Domain

  4.1.创建Domain

1.  用streamsadmin用户启动Domain管理界面进行创建:

su - streamsadmin

/opt/ibm/InfoSphere_Streams/4.0.1.0/DomainManager.sh

streams

2.  创建基于PAM鉴权的Domain

streams
streams


在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

  4.2. 添加其他主机到Domain

1.  产生域主机安装包

streams
streams
streams
streams

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马上能查看到:

streams

执行以下命令也可以看到Domain的状态和资源:

streamtool lsdomain

streamtool getdomainstate -l -d myDomain

streamtool checkdomainhosts -d myDomain

4.3.为Domain中的主机添加Tag(可选)

为主机指定Tag,是为了将不同的服务在主机上区分开来,如主机指定Application表示该主机只运行应用程序而不运行管理服务。

选中某台主机,勾选/去勾选右边的服务名字并保存。

streams

修改后执行streamtool getdomainstate -l -d myDomain查看状态

streams

4.4. 修改Domain属性

通过修改Domain的属性,以启用Domain的高可用性。

streams
streams

4.5. 同步环境变量

将第一台主机rootstreamsadmin用户的.bash_profile同步到其他主机。

scp ~/.bash_profile streams002:~/

scp ~/.bash_profile streams003:~/

5.创建Instance并验证安装

  5.1. 创建Instance

streams
streams

  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

检查结果

cd /tmp/Streams-StreamsDomain/logs/<hostname>/instances/StreamsInstance/jobs/<0>

cat xxx

6.安装开发工具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

从本地或远程访问Streams Console并下载 Streams Studio forLinux/Windows安装。

streams

tar xf ~/Downloads/StreamsStudio.tar.gz

cd StreamsStudio

./streamsStudio -clean &

小结

Streams集群安装并不复杂,用户可以通过参考官网的安装过程进行安装配置。然而,本文将关键步骤总结下来方便用户参考,减少走弯路的可能性,用户只需参考该文档即能快速搭建Streams集群环境。

慧都控件网年终促销第一波已开启,全场6折起,豪礼抢不停>>>

截止时间:2016年10月30日

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381