1.准备三个虚拟机搭建Storm集群
安装步骤参考2018-12-02-VirtualBox安装CentOS6.7
2.配置集群Hosts
所有的虚拟机上都需要配置hosts
1 2 3 4 5
| vi /etc/hosts
#192.168.239.128 storm01 zk01 hadoop01 #192.168.239.129 storm02 zk02 hadoop02 #192.168.239.130 storm03 zk03 hadoop03
|
3.服务器间免密码登录[可选]
配置免密码登陆,在所有机器上执行以下命令
1
| ssh-keygen -t rsa (四个回车)
|
生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),使用下面命令将公钥拷贝到要免密登陆的目标机器上
1
| ssh-copy-id {其他机器的hostname}
|
4.关闭服务器的防火墙
1 2
| service iptables stop chkconfig iptables off
|
5.创建服务器上的统一工作目录
1 2 3
| mkdir /export mkdir /export/servers chmod 755 -R /export
|
6.配置JDK
安装jdk8具体步骤不做详述
7.下载storm安装包
1
| wget http://124.202.164.6/files/1139000006794ECA/apache.fayea.com/storm/apache-storm-0.9.5/apache-storm-0.9.5.tar.gz
|
8.解压安装包
1 2 3
| tar -zxvf apache-storm-0.9.5.tar.gz -C /export/servers/ cd /export/servers/ ln -s apache-storm-0.9.5 storm
|
9.修改配置文件
1 2
| mv /export/servers/storm/conf/storm.yaml /export/servers/storm/conf/storm.yaml.bak vi /export/servers/storm/conf/storm.yaml
|
参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| storm.zookeeper.servers: - "storm1" - "storm2" - "storm3" #指定storm本地状态保存地址 storm.local.dir: "/export/servers/storm/workdir" #指定storm集群中的nimbus节点所在的服务器 nimbus.host: "storm1" #指定nimbus启动JVM最大可用内存大小 nimbus.childopts: "-Xmx1024m" #指定supervisor启动JVM最大可用内存大小 supervisor.childopts: "-Xmx1024m" #指定supervisor节点上,每个worker启动JVM最大可用内存大小 worker.childopts: "-Xmx768m" #指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。 ui.childopts: "-Xmx768m" #指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
|
10.分发
1 2 3 4
| scp -r /export/servers/apache-storm-0.9.5 storm02:/export/servers # 然后分别在各机器上创建软连接 cd /export/servers/ ln -s apache-storm-0.9.5 storm
|
11.启动
在nimbus.host所属的机器上启动 nimbus服务
1 2
| cd /export/servers/storm/bin/ nohup ./storm nimbus &
|
在nimbus.host所属的机器上启动ui服务
1 2
| cd /export/servers/storm/bin/ nohup ./storm ui &
|
在其它个点击上启动supervisor服务
1 2
| cd /export/servers/storm/bin/ nohup ./storm supervisor &
|
12.查看集群
访问nimbus.host:/8080,即可看到storm的ui界面
13.Storm常用操作命令
有许多简单且有用的命令可以用来管理拓扑,它们可以提交、杀死、禁用、再平衡拓扑。
提交任务命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
1
| bin/storm jar examples/storm-starter/storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology wordcount
|
杀死任务命令格式:storm kill 【拓扑名称】 -w 10(执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间)
1
| storm kill topology-name -w 10
|
停用任务命令格式:storm deactivte 【拓扑名称】
1
| storm deactivte topology-name
|
我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是spouts的nextTuple方法不会被调用。销毁一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,在等待拓扑消息的时间段内允许拓扑完成当前的数据流。
启用任务命令格式:storm activate【拓扑名称】
1
| storm activate topology-name
|
重新部署任务命令格式:storm rebalance 【拓扑名称】
1
| storm rebalance topology-name
|
再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。