因为工作需要,需要使用jstorm 现在把jstorm的安装过程和大家分享一下,我是参照https://github.com/alibaba/jstorm 上面和百度进行安装的.
安装jstorm前需要安装jdkzookeeper建议较新版本 我用的是3.4.6 参考其他日志,这里不再赘述
八台服务器 CentOS 7
1.python
python需要至少2.6版本以上,
python-v查看版本
2.安装zeromq
wgethttp://download.zeromq.org/zeromq-2.1.7.tar.gz
tarzxfzeromq-2.1.7.tar.gz
cdzeromq-2.1.7
./configure
make
sudomakeinstall
sudoldconfig
这里遇到了一个uuid未安装的问题
configure:error:cannotlinkwith-luuid,installuuid-dev.
百度了一下,解决办法
yuminstalllibuuid-devel
3.安装jzmq
gitclonegit://github.com/nathanmarz/jzmq.git
cdjzmq
./autogen.sh
./configure
make
makeinstall
这里遇到了两个问题
具体的make错误信息:
make[1]:***Noruletomaketarget`classdist_noinst.stamp',neededby`org/zeromq/ZMQ.class'.Stop.
解决方法:手动创建classdist_noinst.stamp空文件。
touchsrc/classdist_noinst.stamp
具体的make错误信息:
error:cannotaccessorg.zeromq.ZMQclassfilefororg.zeromq.ZMQnotfound
javadoc:error-Classorg.zeromq.ZMQnotfound.
解决方法:手动编译,然后重新make即可通过。
cdsrc
javac-d.org/zeromq/*.java
cd..
3.安装jstorm
这里以jstorm-0.9.6.2.zip为例
复制到/usr/local下
unzipjstorm-0.9.6.2.zip
配置环境变量
vi/etc/profile
exprotJSTOM_HOME=/usr/local/jstorm-0.9.62
exportPATH=$JSTORM_HOME/bin:$PATH
vi$JSTORM_HOME/conf/storm.yaml
配置zookeeper节点
storm.zookeeper.servers:
-“xxx.xxx.xxx.xxx”
-“xxx.xxx.xxx.xxx”
-“xxx.xxx.xxx.xxx”
配置主节点
nimbus.host:“xxx.xxx.xxx.xxx”
在主节点使用nohupjstormnimbus&命令启动
在从节点使用nohupjstormsupervisor&命令启动
这里遇到一个问题:配置nimbus.host时:与“xxx.xxx.xxx.xxx”要有空格否则报错
4.启动JStormUI
mkdir~/.jstorm
cp-f$JSTORM_HOME/conf/storm.yaml ~/.jstorm
这部要注意 在哪个节点上提交storm任务 就要在哪个节点进行复制操作
下载tomcat7.x(以apache-tomcat-7.0.37为例)
tar-xzfapache-tomcat-7.0.37.tar.gz
cdapache-tomcat-7.0.37
cdwebapps
cp$JSTORM_HOME/jstorm-ui-0.9.6.2.war./
mvROOTROOT.old
ln-sjstorm-ui-0.9.6.2ROOT
这个地方可能变化,是根据你的jstorm版本来确定,比如当0.9.6.1时,是ln-sjstorm-0.9.6.1ROOT
另外不是ln-sjstorm-ui-0.9.6.2.warROOT这个要小心
cd../bin
./startup.sh
这里遇到一个问题python占用了8080在tomcat/bin下的server.xml修改端口即可
5.关于操作命令
启动一个topology
bin/jstorm jar xxxx.jar com.xxxxx.jstorm.xxx.TestTopologyparameter
注: jar包名 你的包名+类名 parameter为参数
查看一个topology
jstormlist|grep“wordcount”
kill掉一个topology
jstormkillXXXXXX
XXXXXX为topology提交时的name