storm集群安装

虚拟linux环境安装

第一步:安装zookeeper3.4.5
自动下载:wget http://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 -xvf zookeeper-3.4.5.tar.gz
vi .bash_profile

export ZOOKEEPER_HOME=/home/tp/zookeeper-3.4.5
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/home/tp/zookeeper-3.4.5/data

启动zookeeper
netstat -an|grep 2181 #查看zookeeper端口
netstat -nat #查看端口信息
./zkServer.sh start #启动
jps #查看启动的服务名称
./zkServer.sh stop #关闭

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

第二步:安装ZMQ 2.1.7
wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar -xvf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7
./configure
make,若报错,先安装

sudo make install


第三步:安装jzmq
git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
autogen.sh: error: could not find pkg-config.  pkg-config is    required to run autogen.sh
sudo apt-get install pkg-config
./configure
    make
具体的make错误信息:

make[1]: *** No rule to make target `classdist_noinst.stamp',
needed by `org/zeromq/ZMQ.class'. Stop.
touch src/classdist_noinst.stamp

make[1]: *** No rule to make target `org/zeromq/ZMQ$Context.class', needed by `all'.  Stop.
cd src
javac -d . org/zeromq/*.java
sudo make install

第四步,安装Storm
unzip storm-0.8.2.zip
mv storm-0.8.2 /usr/local/
ln -s /home/tp/storm-0.8.2/ /home/tp/storm 建立软连接
vim /etc/profile
export STORM_HOME=/home/tp/storm-0.8.2
export PATH=$PATH:$STORM_HOME/bin


1.启动zookeeper  ./zkServer.sh start #启动

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/storm nimbus(启动主节点)

# bin/storm supervisor(启动从节点)

执行命令:# storm jar StormStarter.jar storm.starter.WordCountTopology test

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

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

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

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

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

Nimbus: 在Storm主控节点上运行"bin/storm nimbus >/dev/null 2>&1 &"启动Nimbus后台程序,并放到后台执行;
Supervisor: 在Storm各个工作节点上运行"bin/storm supervisor >/dev/null 2>&1 &"启动Supervisor后台程序,并放到后台执行;
UI: 在Storm主控节点上运行"bin/storm ui >/dev/null 2>&1 &"启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。
注意事项:

Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
为了方便使用,可以将bin/storm加入到系统环境变量中。
至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

猜你喜欢

转载自tphaofang.iteye.com/blog/1917740