Linux环境下分布式实时数据计算系统Storm集群的安装与配置

建议安装之前先了解Storm的一些概念,比如主节点Nimbus, 工作节点Supervisor, 任务拓扑Topology, 发射组件Spout, 执行组件Bolt 以及Storm的工作机制等。安装所需软件:JDK, Zookeeper, Storm, Python(Linux系统自带)。如果条件允许所有软件安装最新版本即可,我当时安装的是JDK-1.8,Zookeeper-3.3.6,Storm-1.0.1, Python-2.7。


第一步 :安装JDK

2. 进入压缩包所在文件夹解压缩 eg : sudo tar -zxvf jdk-1.8.0_111.tar。
3. 配置环境变量  命令行输入sudo gedit /etc/profile 打开环境变量配置页面,在下面输入:
                          
                           export JAVA_HOME=/usr/local/jdk/jdk1.8.0_111
                           export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
                           export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
                         
        *红色字体是我自己的安装路径,大家根据自己的安装路径填写,第二行等号后面的“.”不能少。
        * 完成后点击保存并在命令行输入:source /etc/profile来保存配置,可以输入javac来查看是否安装成功。

第二步 :安装Zookeeper

1.下载Zookeeper并解压缩,  下载地址 http://zookeeper.apache.org/releases.html#download
2.配置环境变量 打开环境变量配置界面(同上),在下面输入:

                        export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.3.6
                        export PATH=$PATH:$ZOOKEEPER_HOME/bin
                       
                       * 输完同样需要在命令source /etc/profile来保存配置


3.修改zookeeper配置文件 进入zookeeper目录中的conf文件夹,把zoo_sample.cfg复制一份改名为zoo.cfg并打开,
                   
                    tickTime=2000  (zookeeper一个工作时间单元)
                     initLimit=10   (各节点启动时间限制)
                     syncLimit=5   (信息同步时间限制)
                    dataDir=/usr/local/zookeeper/zookeeper-3.3.6/data  (存储快照文件的目录)
                    clientPort=2181  (对外服务端口)
                    server.1=192.168.1.106:2287:2287  (节点1的IP以及连接端口号)
                    server.2=192.168.1.107:2288:3388  (节点2的IP以及连接端口号)
                    server.3=192.168.1.113:2289:3389  (节点3的IP以及连接端口号)

         *只需要修改红色部分,dataDir是存放快照文件的目录,根据自己的安装目录修改。server是zookeeper集群所有节点的IP           和其开放端口,如上表示集群中一共三个节点,1号节点IP为...,端口为...;2号节点...;3号节点...。其他配置参数不用改。

4.修改完配置文件后在dataDir定义的目录下创建文件命名为myid,并根据本机IP在配置文件中的server序号输入相应数字1~N(意为本机在集群中的id号)。

5.对所有节点进行IP映射,命令行 sudo gedit/etc/hosts 打开IP配置文件,把里面原来的第二行加#注释掉,然后一次加入所有节点的IP和主机名(如图一),配置完后命令行sudo /etc/init.d/networking restart进行重启。
Linux环境下分布式实时数据计算系统Storm集群的安装与配置
                                                                                 图一    IP映射

 至此,zookeeper集群安装完成,可以在每个节点通过命令 zkServer.sh start 和 zkServer.sh status 启动。

第三步 安装Storm

1.下载Storm并解压缩  下载地址 - http://storm.apache.org/downloads.html

2.配置环境变量 打开环境变量配置界面(同上),在下面输入:

                           export STORM_HOME=/usr/local/storm/apache-storm-1.0.1
                           export PATH=$PATH:$STORM_HOME/bin

3.修改conf文件夹中的storm.yaml配置文件,加入相应的节点IP和端口号即可。
                  
Linux环境下分布式实时数据计算系统Storm集群的安装与配置
                                                                        图二   storm配置

如图二所示,只需要修改粉色部分。其中storm.zookeeper.servers是服务器列表(各节点IP),storm.zookeeper.port是服务器端口(zookeeper配置文件指定的端口,一般为2181),supervisor.slots.ports为supervisor插槽端口,storm.local.dir用来存放本地日志文件,nimbus.seeds为主节点IP。注意:storm配置文件对格式要求很严格,需要修改某一行时只用把前面#改成空格然后修改,删除的#个数要和空格个数相同。

4.在storm.local.dir指定目录下创建data文件夹存放本地日志。

至此,Storm集群已经完成安装。

Storm启动:(1)首先在每个节点通过命令zkServer.sh start 和 zkServer.sh status 启动zookeeper集群。(2)zookeeper集群启动成功后,先在主节点启动通过storm nimbus命令启动nimbus,然后在各工作节点通过storm supervisor命令启动Supervisor,最后在主节点storm ui启动UI(图三),并在浏览器输入http://localhost:8080启动UI监控界面(图四)。Linux环境下分布式实时数据计算系统Storm集群的安装与配置
                                                                                 图三  启动storm

Linux环境下分布式实时数据计算系统Storm集群的安装与配置
                                                                                     图四  UI界面                                            

Storm任务提交:在主节点nimbus上通过storm jar命令提交任务拓扑。eg: storm jar /usr/local/storm/examples/firsttopology.jar org.apache.storm.starter.WordCount  前面为拓扑包所在位置,后面为拓扑主类入口。

以上是我自己看了各个大神文章然后各种安装失败后总结出来的storm安装步骤,有大家认为不对或者不清楚的地方希望可以提出来一起探讨。