Storm集群环境搭建
本文于1835天之前发表,文中内容可能已经过时。
一、集群规划
这里搭建一个3节点的Storm集群:三台主机上均部署Supervisor
和LogViewer
服务。同时为了保证高可用,除了在hadoop001上部署主Nimbus
服务外,还在hadoop002上部署备用的Nimbus
服务。Nimbus
服务由Zookeeper集群进行协调管理,如果主Nimbus
不可用,则备用Nimbus
会成为新的主Nimbus
。
二、前置条件
Storm 运行依赖于Java 7+ 和 Python 2.6.6 +,所以需要预先安装这两个软件。同时为了保证高可用,这里我们不采用Storm内置的Zookeeper,而采用外置的Zookeeper集群。由于这三个软件在多个框架中都有依赖,其安装步骤单独整理至 :
三、集群搭建
1. 下载并解压
下载安装包,之后进行解压。官方下载地址:http://storm.apache.org/downloads.html
1 | # 解压 |
2. 配置环境变量
1 |
添加环境变量:
1 | export STORM_HOME=/usr/app/apache-storm-1.2.2 |
使得配置的环境变量生效:
1 | # source /etc/profile |
3. 集群配置
修改${STORM_HOME}/conf/storm.yaml
文件,配置如下:
1 |
|
supervisor.slots.ports
参数用来配置workers进程接收消息的端口,默认每个supervisor节点上会启动4个worker,当然你也可以按照自己的需要和服务器性能进行设置,假设只想启动2个worker的话,此处配置2个端口即可。
4. 安装包分发
将Storm的安装包分发到其他服务器,分发后建议在这两台服务器上也配置一下Storm的环境变量。
1 | scp -r /usr/app/apache-storm-1.2.2/ root@hadoop002:/usr/app/ |
四. 启动集群
4.1 启动ZooKeeper集群
分别到三台服务器上启动ZooKeeper服务:
1 | zkServer.sh start |
4.2 启动Storm集群
因为要启动多个进程,所以统一采用后台进程的方式启动。进入到${STORM_HOME}/bin
目录下,执行下面的命令:
hadoop001 & hadoop002 :
1 |
|
hadoop003 :
hadoop003上只需要启动supervisor
服务和logviewer
服务:
1 |
|
4.3 查看集群
使用jps
查看进程,三台服务器的进程应该分别如下:
访问hadoop001或hadoop002的8080
端口,界面如下。可以看到有一主一备2个Nimbus
和3个Supervisor
,并且每个Supervisor
有四个slots
,即四个可用的worker
进程,此时代表集群已经搭建成功。
五、高可用验证
这里手动模拟主Nimbus
异常的情况,在hadoop001上使用kill
命令杀死Nimbus
的线程,此时可以看到hadoop001上的Nimbus
已经处于offline
状态,而hadoop002上的Nimbus
则成为新的Leader
。