问题导读:
1.对于storm0.9.0.1,配置文件需要做哪些修改?
2.如何启动storm?
3.storm0.9.0.1和storm0.8.1相比有哪些的变化和改进?
在前面的一篇中讲述了《centos6.4 下storm-0.8.1 安装记录》中,我们描述了如何安装storm0.8.1版本,安装这个版本是因为在https://github.com/nathanmarz/storm中,只能下载到这个版本,经过了各种折腾安装好了以后,发现原来这儿没有最新版本。现在最新的版本是storm0.9.0.1。看了介绍,改进了不少,所以赶紧将版本升级为最新版本。完成后,发现0.9.0.1因为可以不使用zeroMQ,安装过程比0.8.1版本要简单了很多。下面描述一下。升级具体环境见《centos6.4 下storm-0.8.1 安装记录》。
安装步骤
第一步下载storm0.9.0.1.tar.gz
下载到namenode.hadoop2的storm用户的home目录下,下载的地址在这里。顺被吐一下槽,这个storm的信息分布在三个地方分别是github,storm-project.org以及apache的孵化项目中,搞得我困惑了好久。基本上文档在github上,下载最新的版本去storm-project.org,目前看,apache网站目前还是打酱油的。
第二步解压storm0.9.9.1.tar.gz
执行如下命令解压文件,形成storm0.9.0.1目录
- gzip –d storm0.9.0.1.tar.gz
- tar -xvf storm0.9.0.1.tar
复制代码
配置storm的配置文件。
参考《centos6.4 下storm-0.8.1 安装记录》博文中storm0.8.1中的配置文件,storm0.8.1的配置文件如下所示
- ########### These MUST be filled in for a storm configuration
- storm.zookeeper.servers:
- - "namenode.hadoop2"
- # - "server2"
- storm.local.dir: "/home/storm/stormlocale2"
- nimbus.host: "namenode.hadoop2"
- #
- #
- # ##### These may optionally be filled in:
- #
- ## List of custom serializations
- # topology.kryo.register:
- # - org.mycompany.MyType
- # - org.mycompany.MyType2: org.mycompany.MyType2Serializer
- #
- ## List of custom kryo decorators
- # topology.kryo.decorators:
- # - org.mycompany.MyDecorator
- #
- ## Locations of the drpc servers
- # drpc.servers:
- # - "server1"
- # - "server2"
复制代码
针对storm0.9.0.1,需要增加如下的配置
- storm.messaging.transport: "backtype.storm.messaging.netty.Context"
- storm.messaging.netty.server_worker_threads: 1
- storm.messaging.netty.client_worker_threads: 1
- storm.messaging.netty.buffer_size: 5242880
- storm.messaging.netty.max_retries: 100
- storm.messaging.netty.max_wait_ms: 1000
- storm.messaging.netty.min_wait_ms: 100
复制代码
这主要是为了将storm的消息传送机制更改为netty。同时为了避免和原版本的冲突,将storm.local.dir的配置值更改为/home/storm/stormlocale2。同时在/home/storm目录下执行如下命令
复制代码 建立storm临时文件存储路径
第三步更改path环境变量
将执行storm0.8.1安装目录的bin目录的path更改为执行storm0.9.0.1的bin目录下,我是修改用户home目录的.bash_profile如下
- PATH=/home/storm/storm-0.9.0.1/bin:$PATH:$HOME/bin
-
- export PATH
复制代码
第四步,同步文件
将storm0.9.0.1目录、临时存储目录和用户profile文件同步到supervisor机器上,执行如下命令
- #同步storm安装目录
- scp -r ~/storm-0.9.0.1 datanode1.hadoop2:~/
- scp -r ~/storm-0.9.0.1 datanode2.hadoop2:~/
- scp -r ~/storm-0.9.0.1 datanode3.hadoop2:~/
- scp -r ~/storm-0.9.0.1 datanode4.hadoop2:~/
- #同步临时存储路径
- scp -r ~/stormlocale2 datanode1.hadoop2:~/
- scp -r ~/stormlocale2 datanode2.hadoop2:~/
- scp -r ~/stormlocale2 datanode3.hadoop2:~/
- scp -r ~/stormlocale2 datanode4.hadoop2:~/
- #同步用户profile文件
- scp ~/.bash_profile datanode1.hadoop2:~/
- scp ~/.bash_profile datanode2.hadoop2:~/
- scp ~/.bash_profile datanode3.hadoop2:~/
- scp ~/.bash_profile datanode4.hadoop2:~/
复制代码
因为前文中免密码ssh登陆已经设置好了,所以这里命令能够执行成功。
对于这里如果真正生产,可以参考
服务器批量执行工具 PSSH
集群批量配置多(台PC机)节点的ssh无密码互通
第五步启动storm
在nimbus机器(namenode.hadoop2)上执行如下命令
- #启动storm nimbus进程
- nohup storm nimbus &
- #启动storm ui监控界面进程
- nohup storm ui &
复制代码
在supervisor机器(datanode1.hadoop2、datanode2.hadoop2、datanode3.hadoop2、datanode4.hadoop2)执行如下命令
- #启动storm supervisor进程
- nohup storm supervisor &
- #启动storm 日志监控进程。启动该进程,可以在storm ui界面上看各个supervisor节点上日志
- nohup storm logviewer &
复制代码
新版本的变化
最后说一下storm0.9.0.1和storm0.8.1相比有下面的变化和改进
消息通知机制变更消息通知机制支持netty。这是这个版本最大的变化了,因为netty是java开发的,免除了zeroMQ编译,安装的繁琐过程。对比storm0.8.1安装过程可以看到减少了zeroMQ和他的支持库jzmq占据了大量的 篇幅。当然这个版本还可以支持zeroMQ,但是不建议再使用了
UI的变更支持topology控制命令在UI上可以支持rebalance了,看UI界面,发现多了这样的内容
可以看到,多了activate、deactivate、rebalance、kill的命令,这些操作以前都必须通过storm的命令行工具来操作。但是rebalance选项我没有发现正确的用法,因为点击后,只接受一个integer参数,应该是值得执行rebalance等待的时间的秒数,但是不能指定topology的worker的数量和各个计算组件的executor的数量。不知道是bug还是有其他的使用方式。有人知道的话请告知一下。
支持查看nimbus和topology的配置值,如下所示
支持UI上查看各个work的日志。原来要查看topology的某个计算组件的日志,需要在UI上找到该计算组件对应的work所在的supervisor节点work的端口号,然后登陆到这个supervisor节点上,在去通过tail -f work-[port].log的方式去查看,现在直接在UI上点击该计算节点对应的work名称就可以了。这个是另一个重大的改变。方便了不少
默认acker配置更改在以前的版本中,acker的executor的数量和task的数量默认是1个,现在根据你指定的topology的worker的数量来决定。即使你指定的worker数量超出了集群可分配worker的最大数量导致你的worker实际分配数量小于指定的数量,topology的acker分配的executor的数量和task的数量还是按照你指定的数值来分配。当然,你还是可以通过rebalance来重新分配acker的executor的数量。
目前从表面上看能看到这么些变化。这些变化带来的好处完全值得大家升级到storm0.9.0.1或者直接安装storm0.9.0.1 ,不用再考虑0.8的版本了。
http://blog.csdn.net/ygc/article/details/18517573
|