hyj 发表于 2014-6-11 16:44:55

从storm0.8.1升级到storm0.9.0.1实践


问题导读:
1.对于storm0.9.0.1,配置文件需要做哪些修改?
2.如何启动storm?
3.storm0.9.0.1和storm0.8.1相比有哪些的变化和改进?


static/image/hrline/4.gif





在前面的一篇中讲述了《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目录下执行如下命令
mkdir stormlocale2建立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-.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

jorney2014 发表于 2014-7-17 16:58:35

顶一个,写的不错

lbwahoo 发表于 2014-7-17 21:13:00


顶一个,写的不错

lbwahoo 发表于 2014-7-17 21:19:37

顶一个,写的不错
页: [1]
查看完整版本: 从storm0.8.1升级到storm0.9.0.1实践