Storm 0.9.2安装指南
0 Storm0.9的亮点
引用网上的描写叙述:
“Storm 0.9.0.1版本号的第一亮点是引入了netty transport。Storm网络传输机制实现可插拔形式,当前包括两种方式:原来的0mq传输,以及新的netty实现。在早期版本号中(0.9.x之前的版本号),Storm仅仅支持0mq传输,因为0MQ是一个本地库(native library),对平台的依赖性较高,要全然正确安装还是有一定挑战性。而且版本号之间的差异也比較大。Netty Transport提供了纯JAVA的替代方案。消除了Storm的本地库依赖,且比0MQ的网络传输性能快一倍以上。
“Storm 0.9.0.1版本号提供了有助于调试和检測拓扑结构的新特性:logviewer(守护进程名)
你如今能够在Storm UI通过点击相应的Woker来查看相应的工作日志。
有点相似于hadoop的那种日志查看机制。
“安全性、认证以及授权已经并将继续成为将来的重要特点重点领域。
Storm 0.9.0.1版本号引入了一个可插拔的序列化元组API以及实现一个基于blowfish加密方法对敏感数据进行加密的用例。
1 依赖包安装
Storm依赖包有JDK, Python和Zookeeper。
1.1 JDK和Python
JDK和Python很easy,在Yum库中就有安装包。
> yum install java-1.7.0-openjdk.i386
> yum install python.i386
1.2 ZooKeeper
Zookeeper须要手动下载安装。首先下载解压:
> wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
> tar -xzvf zookeeper-3.4.6.tar.gz
> chown -R root:root zookeeper-3.4.6
然后配置:
> cd zookeeper-3.4.6
> cp conf/zoo_sample.cfg conf/zoo.cfg
> export ZOOKEEPER_HOME=/usr/local/src/zookeeper-3.4.5
> export PATH=$ZOOKEEPER_HOME/bin:$PATH
最后启动服务器。并用客户端连上去測试:
> bin/zkServer.sh start
> bin/zkCli.sh -server 127.0.0.1:2181
2 Storm安装
> wget
> tar -xzvf apache-storm-0.9.2-incubating.tar.gz
在/conf/storm.yaml中配置Storm为单机模式。而且通过Netty通信(Storm 0.9新功能。否则还要依照ZeroMQ):
storm.zookeeper.servers:
- "localhost"
nimbus.host : "localhost"
storm.local.dir : "/var/storm"
ui.port : 8088
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全部后台服务:
> bin/storm nimbus >/dev/null 2>&1 &
> bin/storm supervisor>/dev/null 2>&1 &
> bin/storm ui >/dev/null 2>&1 &
> bin/storm logviewer > /dev/null 2>&1 &
正常的訪问日志应该是这种:
訪问UI http://localhost:8080 就能看到监控页面了。
3 常见问题
3.1 Python版本号问题
注意:yum install的可能是低版本号的Python。像我的CentOS 5.5给我装的就是2.3。
后面启动storm时直接就报错了。
能够使用这个方案安全地升级Python到2.7:
> wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
> cd Python-2.7.8
> ./configure –prefix=/usr/local/python
> make
> make install
覆盖老版本号文件(老文件要保留,否则Yum就没法用了!)
> mv /usr/bin/python /usr/bin/python_old
> ln -s /usr/local/python/bin/python /usr/bin
将/usr/bin/yum脚本中的第一行改为:#!/usr/bin/python_old
大功告成!
如今敲Python命令进入的就是2.7版本号了,而且Yum命令也好使。
3.2 ZooKeeper连接问题
当storm.yaml中nimbus和zookeeper的IP地址配置成虚拟机实际IP时。启动nimbus就会报错:KeeperErrorCode = ConnectionLoss for /storm … 都改为localhost就能够了。
其它问题还有:忘记启动ZooKeeper服务,没有关防火墙(service iptables stop)等。