Storm集群部署
Storm集群部署
    Storm的环境分为生产环境和开发环境两种。
        开发环境是提供Storm开发人员进行Storm程序开发与测试的环境。Storm的硬件环境只需要一台普通PC主机(该主机上需具备JDK、Eclipse等)即可。在开发环境上开发Storm应用称为本地
    模式。
        生产环境则是Storm的集群环境。需要3台或更多的主机作为节点,安装Linux操作系统,同时需要安装JDK、ZooKeeper、ZeroMQ、JZMQ、Storm和Python(我这里是系统自带的)即可。在生
    产环境上运行Storm应用称为远程模式。
用到的软件
    apache-storm-0.9.3.tar.gz
    dk-6u45-linux-i586.bin
    jzmq-master.zip
    zeromq-2.1.7.tar.gz
    zookeeper-3.4.5.tar.gz
安装需要的依赖库
    在32位CentOS上需要如下rpm包
        autoconf-2.63-5.1.el6.noarch
        automake-1.11.1-4.el6.noarch
        gcc-c++-4.4.7-3.el6.i686
        libcom_err-devel-1.41.12-14.el6.i686
        libstdc++-devel-4.4.7-3.el6.i686
        libtool-2.2.6-15.5.el6.i686
        libuuid-2.17.2-12.9.el6.i686
        libuuid-devel-2.17.2-12.9.el6.i686
        uuid-1.6.1-10.el6.i686
        uuid-devel-1.6.1-10.el6.i686
    
    在64位CentOS上需要如下rpm包
        autoconf-2.63-5.1.el6.noarch
        automake-1.11.1-4.el6.noarch
        e2fsprogs-devel-1.41.12-14.el6.x86_64
        gcc-c++-4.4.7-3.el6.x86_64
        libcom_err-devel-1.41.12-14.el6.x86_64
        libstdc++-devel-4.4.7-3.el6.x86_64
        libtool-2.2.6-15.5.el6.x86_64
        libuuid-2.17.2-12.9.el6.x86_64
        libuuid-devel-2.17.2-12.9.el6.x86_64
        uuid-1.6.1-10.el6.x86_64
        uuid-devel-1.6.1-10.el6.x86_64
HostName            IP                Soft                        Process
storm1              192.168.1.61      Storm,Zookeeper             QuorumPeerMain、Nimbus、Supervisor、Core、Drcp、Logviewer
storm2              192.168.1.62      Storm,Zookeeper             QuorumPeerMain、Supervisor、Logviewer
storm3              192.168.1.63      Storm,Zookeeper             QuorumPeerMain、Supervisor、Logviewer
##修改storm1的主机名
vi /etc/sysconfig /network
HOSTNAME=h1
esc,shift+zz
##修改storm1的主机映射文件
vi /etc/hosts
192.168.1.61 storm1
192.168.1.62 storm2
192.168.1.63 storm3
esc,shift+zz
##关闭storm1的防火墙
service iptables stop
chkconfig iptables off
chkconfig --list | grep iptables
##在storm1上安装32位Jdk-6u45
cd /usr/java/
chmod u+x jdk-6u45-linux-i586.bin
./jdk-6u45-linux-i586.bin
mv jdk1.6.0_45/ java
##在storm1上配置JAVA_HOME
vi /etc/profile
export JAVA_HOME=/usr/java
export PATH=.:$JAVA_HOME/bin:$PATH
esc,shift+zz
source /etc/profile
##验证storm1上的JDK安装是否成功
java -version
##复制storm1虚拟机两个,分别改名为storm2和storm3。将storm2主机IP改为192.168.1.42,将storm3主机IP改为192.168.1.43
##配置SSH免密码登陆(使用rsa非对称加密方式)
[root@storm1 .ssh]# ssh-keygen -t rsa三次回车
[root@storm2 .ssh]# ssh-keygen -t rsa三次回车
[root@storm3 .ssh]# ssh-keygen -t rsa三次回车
[root@storm1 .ssh]# ssh-copy-id root@h1,输入yes,输入密码
[root@storm2 .ssh]# ssh-copy-id root@h1,输入yes,输入密码
[root@storm3 .ssh]# ssh-copy-id root@h1,输入yes,输入密码
[root@storm1 .ssh]# scp authorized_keys root@storm2:/root/.ssh/,输入yes,输入密码
[root@storm1 .ssh]# scp authorized_keys root@storm3:/root/.ssh/,输入yes,输入密码
##验证SSH免密码登陆
各个机器相互登陆到其他机器,首次会提示输入密码
ssh storm1
ssh n ...
##在storm1上配置安装zookeeper-3.4.5.tar.gz到/cloud/
tar -zxvf zookeeper-3.4.5.tar.gz -C /cloud
mv zookeeper-3.4.5.tar.gz zk
##在storm1上配置Zookeeper
mv /cloud/zk/conf/zoo_examp.cfg /cloud/zk/conf/zoo.cfg
vi /cloud/zk/conf/zoo.cfg
dataDir=/cloud/zk/data
server.1=storm1:2888:3888
server.2=storm2:2888:3888
server.3=storm3:2888:3888
esc
shift+zz
在zk下创建data文件夹,该文件夹里有个myid,值为1
##在storm1上配置ZOOKEEPER_HOME
vi /etc/profile
export ZOOKEEPER_HOME=/usr/java
export PATH=.:ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
esc,shift+zz
source /etc/profile
##将storm1上的zk复制到storm2和storm3上
scp -r /cloud/zk root@storm2:/cloud/    ###/cloud/zk/data/myid的值改为2
scp -r /cloud/zk root@storm3:/cloud/    ###/cloud/zk/data/myid的值改为3
##将storm1上的/etc/profile复制到storm2和storm3上
scp /etc/profile root@storm2:/etc/
scp /etc/profile root@storm3:/etc/
##安装apache-storm-0.9.3.tar.gz到/cloud/
tar -zxvf apache-storm-0.9.3.tar.gz -C /cloud
mv apache-storm-0.9.3 storm
vi /cloud/storm/conf/storm.yaml
/cloud/storm/conf/storm.yaml配置如下
storm.zookeeper.servers:
- "storm1"
- "storm2"
- "storm3"
nimbus.host: "storm1"
drpc.servers:
- "storm1"
esc
shift+zz
##将storm1上配置好的storm复制到storm2和storm3上
scp -r /cloud/storm root@storm2:/cloud/
scp -r /cloud/storm root@storm3:/cloud/
##启动storm集群
在storm1上:
    nohup storm nimbus >/dev/null 2>&1 &
    nohup storm supervisor >/dev/null 2>&1 &
    nohup storm ui >/dev/null 2>&1 &
    nohup storm drpc >/dev/null 2>&1 &
    nohup storm logviewer >/dev/null 2>&1 &
在storm2上:
    nohup storm supervisor >/dev/null 2>&1 &
    nohup storm logviewer >/dev/null 2>&1 &
在storm3上:
    nohup storm supervisor >/dev/null 2>&1 &
    nohup storm logviewer >/dev/null 2>&1 &
##验证集群启动状态
1:
[root@storm1 soft]# for i in storm1 storm2 storm3; do echo $i; ssh $i `which jps`; done
storm1
4606 Jps
2516 core
2346 QuorumPeerMain
2408 nimbus
2311 supervisor
4684 drpc
2466 logviewer
storm2
2336 QuorumPeerMain
2388 supervisor
2407 logviewer
4535 Jps
storm3
5705 QuorumPeerMain
5798 supervisor
2962 logviewer
7945 Jps
2:
192.168.1.41:8080

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号