建议安装之前先了解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
1. 下载JDK,下载地址 -
http://www.oracle.com/technetwork/java/javase/downloads/index.html
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进行重启。
图一 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和端口号即可。
图二 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监控界面(图四)。
图三 启动storm
图四 UI界面
Storm任务提交:在主节点nimbus上通过storm jar命令提交任务拓扑。eg: storm jar /usr/local/storm/examples/firsttopology.jar org.apache.storm.starter.WordCount 前面为拓扑包所在位置,后面为拓扑主类入口。
以上是我自己看了各个大神文章然后各种安装失败后总结出来的storm安装步骤,有大家认为不对或者不清楚的地方希望可以提出来一起探讨。