storm集群安装

pfjia 2013-08-02

虚拟linux环境安装

第一步:安装zookeeper3.4.5

自动下载:wgethttp://ftp.meisei-u.ac.jp/mirror/apache/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

手动下载:http://mirrors.cnnic.cn/apache/zookeeper/stable/

tar-xvfzookeeper-3.4.5.tar.gz

vi.bash_profile

exportZOOKEEPER_HOME=/home/tp/zookeeper-3.4.5

exportPATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

mvzoo_sample.cfgzoo.cfg

vizoo.cfg

dataDir=/home/tp/zookeeper-3.4.5/data

启动zookeeper

netstat-an|grep2181#查看zookeeper端口

netstat-nat#查看端口信息

./zkServer.shstart#启动

jps#查看启动的服务名称

./zkServer.shstop#关闭

启动后要检查Zookeeper是否已经在服务,可以通过netstat-at|grep2181命令查看是否有clientPort端口号在监听服务。

第二步:安装ZMQ2.1.7

wgethttp://download.zeromq.org/zeromq-2.1.7.tar.gz

tar-xvfzeromq-2.1.7.tar.gz

cdzeromq-2.1.7

./configure

make,若报错,先安装

sudomakeinstall

第三步:安装jzmq

gitclonehttps://github.com/nathanmarz/jzmq.git

cdjzmq

./autogen.sh

autogen.sh:error:couldnotfindpkg-config.pkg-configisrequiredtorunautogen.sh

sudoapt-getinstallpkg-config

./configure

make

具体的make错误信息:

make[1]:***Noruletomaketarget`classdist_noinst.stamp',

neededby`org/zeromq/ZMQ.class'.Stop.

touchsrc/classdist_noinst.stamp

make[1]:***Noruletomaketarget`org/zeromq/ZMQ$Context.class',neededby`all'.Stop.

cdsrc

javac-d.org/zeromq/*.java

sudomakeinstall

第四步,安装Storm

unzipstorm-0.8.2.zip

mvstorm-0.8.2/usr/local/

ln-s/home/tp/storm-0.8.2//home/tp/storm建立软连接

vim/etc/profile

exportSTORM_HOME=/home/tp/storm-0.8.2

exportPATH=$PATH:$STORM_HOME/bin

1.启动zookeeper./zkServer.shstart#启动

2.配置storm:

文件在/home/tp/storm-0.8.2/conf/storm.yaml

内容:

storm.zookeeper.servers:

-127.0.0.1

storm.zookeeper.port:2181

nimbus.host:"127.0.0.1"

storm.local.dir:"/home/tp/storm-0.8.2/tmp/storm"

supervisor.slots.ports:

-6700

-6701

-6702

-6703

配置时一定注意在每一项的开始时要加空格,冒号后也必须要加空格,否则storm就不认识这个配置文件了。

说明一下:storm.local.dir表示storm需要用到的本地目录。nimbus.host表示那一台机器是master机器,即nimbus。storm.zookeeper.servers表示哪几台机器是zookeeper服务器。storm.zookeeper.port表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配superevisor.slot.port,supervisor.slots.ports表示supervisor节点的槽数,就是最多能跑几个worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。

执行:

#bin/stormnimbus(启动主节点)

#bin/stormsupervisor(启动从节点)

执行命令:#stormjarStormStarter.jarstorm.starter.WordCountTopologytest

此命令的作用就是用storm将jar发送给storm去执行,后面的test是定义的toplogy名称。

搞定,任务就发送到storm上运行起来了,还可以通过命令:

#bin/stormui

启动ui,可以通过ip:8080/查看运行i情况。

启动Storm各个后台进程

最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。

以下是启动Storm各个后台进程的方式:

Nimbus:在Storm主控节点上运行"bin/stormnimbus>/dev/null2>&1&"启动Nimbus后台程序,并放到后台执行;

Supervisor:在Storm各个工作节点上运行"bin/stormsupervisor>/dev/null2>&1&"启动Supervisor后台程序,并放到后台执行;

UI:在Storm主控节点上运行"bin/stormui>/dev/null2>&1&"启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbushost}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。

注意事项:

Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。

为了方便使用,可以将bin/storm加入到系统环境变量中。

至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

相关推荐