您的位置:首页 > 其它

Storm-0.8.1集群部署

2014-09-24 15:36 204 查看
1、配置Zookeeper集群配置

安装配置参照:f.dataguru.cn/thread-333245-1-1.html

2、下载storm-0.8.1.zip

3、用unzip解压缩

[root@S1PA124 storm-0.8.1]# ls
bin  CHANGELOG.md  conf  lib  LICENSE.html  log4j  logs  public  README.markdown  RELEASE  storm-0.8.1.jar


4、在Storm的主目录下的conf下的storm.yaml配置文件添加如下配置

(1)nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件

(2)supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口。

nimbus.host: "S1PA124"

storm.local.dir: "/app/storm/data"

ui.port: 8080 这几个配置项冒号后面不是紧跟着Value,否则也会报错

storm.zookeeper.servers:
     - "S1PA124"
     - "fulfillment"
     - "fk01"

nimbus.host: "S1PA124"
storm.local.dir: "/app/storm/data"
ui.port: 8080
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
5、在/etc/profile文件里配置环变量

export STORM_HOME=/root/install/storm-0.8.1
export PATH=$PATH:$STORM_HOME/bin


6、启动Storm后台的进程

(1)在Storm主控节点启动Nimbus进程

nohup bin/storm nimbus > /dev/null 2>&1 &
(2)在其它的Storm工作节点启动Supervisor进程

nohup bin/storm supervisor > /dev/null 2>&1 &
(3)在主控制节点启动UI进程

nohup bin/storm ui > /dev/null 2>&1 &



(4)启动logviewer

nohup bin/storm logviewer > /dev/null 2>&1 &


问题总结及疑问:

1、zeromq 和JZMQ不用安装好像也能正常运行,网上有很多storm安装的文章,基本上都涉及到这两个软件的安装和配置

2、我配置UI端口的时候不生效,还是用了默认的端口8080,是因为我配置的时候ui.port:这后面不能紧跟着,而是有tab(还是空格我还没来得急测试,直接到storm核心jar包里把default.yaml对应配置项拷过来改就好了)

3、当时我的环境是python3.3,当执行bin/storm启动脚本时发现报错,后来我在启动脚本上把python版本指定为2.4.3之后就好了

4、当配置storm.yaml文件时注意参数配置顺序,这里我好像也遇到过问题。

5、java.lang.RuntimeException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar

解决办法:删除storm核心jar包中的default.yaml文件

再次运行:storm jar storm-wordcount.jar com.panguoyuan.storm.clusterremote.WordCountStart /root/inputfile.txt

storm jar命令的第一个参数是执行的主类全路径,第二个开始才是要传给main方法args的参数。

6、当因为电脑断电,没有正常退出storm引起的错误,解决办法:删除storm配置文件中storm.local.dir所指向的supervisor目录

2014-11-15 18:47:44 b.s.event [ERROR] Error when processing event
java.lang.RuntimeException: java.io.EOFException
        at backtype.storm.utils.Utils.deserialize(Utils.java:93) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
        at backtype.storm.utils.LocalState.snapshot(LocalState.java:45) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
        at backtype.storm.utils.LocalState.get(LocalState.java:56) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
        at backtype.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:207) ~[storm-core-0.9.2-incubating.jar:0.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: