1. 环境信息
2. 安装Zookeeper集群
参考上一节
3. 安装Storm集群
log1、log2和log3部署storm集群,log1作为Nimbus节点,log2和log3作为surpervisor节点。
(1)下载安装软件并解压
[root@log1 local]# wget https://www.apache.org/dyn/closer.lua/storm/apache-storm-1.2.1/apache-storm-1.2.1.tar.gz
[root@log1 local]# tar zxf apache-storm-1.2.1.tar.gz
(2)配置storm
[root@log1 ~]# cd /usr/local/apache-storm-1.2.1/
[root@log1 apache-storm-1.0.0]# vim conf/storm.yaml
配置Zookeeper地址(配置Zookeeper的主机名,注意: 如果Zookeeper集群使用的不是默认端口,那么还需要配置storm.zookeeper.port)
storm.local.dir: The Nimbus and Supervisor daemons require a directory on the local disk to store small amounts of state (like jars, confs, and things like that).
在配置文件里添加一行:
storm.local.dir: "/usr/local/apache-storm-1.0.0/status"
这个status目录在storm启动的时候会自动创建,当然也可以提前创建好。
配置nimbus.seeds:用于配置主控节点的地址,可以配置多个。
配置supervisor.slots.ports
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
配置工作节点上的进程端口。你配置一个端口,意味着工作节点上启动一个worker,在实际的生产环境中,我们需要根据实际的物理配置以及每个节点上的负载情况来配置这个端口的数量。在这里每个节点我象征性的配置4个端口。
注意:以上配置,凡是有冒号的地方,冒号后都要有个空格。
log2和log3主机也是同样的配置。拷贝这台机器的storm包到log2和log3主机:
[root@log1 local]# scp -pr apache-storm-1.0.0 root@114.55.29.241:/usr/local/
[root@log1 local]# scp -pr apache-storm-1.0.0 root@114.55.253.15:/usr/local/
对于两台supervisor node,我们额外开启JMX支持,在配置文件中加入如下配置:
supervisor.childopts: -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=9998
(3)配置storm环境变量
[root@log1 apache-storm-0.10.0]# vim /etc/profile
export STORM_HOME=/usr/local/apache-storm-0.10.0
export PATH=$STORM_HOME/bin:$PATH
[root@log1 apache-storm-0.10.0]# source /etc/profile
启动storm ui、Nimbus和Supervisor
log1节点启动nimbus和storm ui:
[root@log1 ~]# nohup storm ui >/dev/null 2>&1 &
[root@log1 ~]# nohup storm nimbus >/dev/null 2>&1 &
log2和log3主机启动Supervisor节点:
[root@log2 ~]# nohup storm supervisor >/dev/null 2>&1 &
[root@log3 ~]# nohup storm supervisor >/dev/null 2>&1 &
访问ui页面: http://114.55.29.86:8080/
界面简单介绍:
Used slots:使用的worker数。
Free slots:空闲的worker数。
Executors:每个worker的物理线程数。