storm1.x支持主节点nimbus高可用 多master集群部署

来源:互联网 发布:mac后台怎么关闭 编辑:程序博客网 时间:2024/05/17 06:03

storm集群搭建
storm集群也是由主节点和从节点组成的。
storm版本的变更:
storm0.9.x
storm0.10.x
storm1.x
前面这些版本里面storm的核心源码是由java+clojule组成的。
storm2.x
后期这个版本就是全部用java重写了。
(阿里在很早的时候就对storm进程了重写,提供了jstorm,后期jstorm也加入到apachestorm
负责使用java对storm进行重写,这就是storm2.x版本的由来。)
注意:
在storm0.9.x的版本中,storm集群只支持一个nimbus节点,主节点是存在问题。
在storm0.10.x以后,storm集群可以支持多个nimbus节点,其中有一个为leader,负责真正运行,其余的为offline。


主节点(控制节点 master)【主节点可以有一个或者多个】
职责:负责分发代码,监控代码的执行。
nimbus:
ui:可以查看集群的信息以及topology的运行情况
logviewer:因为主节点会有多个,有时候也需要查看主节点的日志信息。

从节点(工作节点 worker)【从节点可以有一个或者多个】
职责:负责产生worker进程,执行任务。
supervisor:
logviewer:可以通过webui界面查看topology的运行日志


规划一下集群部署情况
主节点:
192.168.1.100
nimbus
ui
logviewer
192.168.1.101
nimbus
logviewer
从节点
192.168.1.101
supervisor
logviewer
192.168.1.102
supervisor
logviewer
开始部署storm集群(centos6.8):
部署之前需要确认一下服务器的基本环境
storm集群部署需要依赖如下环境:
=======================================
python2.6.6及以上【centos6.8自带】
jdk1.7【需要安装】
集群节点之间ssh免密码登陆【需要配置】
zookeeper【storm集群是依赖于zookeeper的,需要安装】
=======================================
jdk的安装【集群的所有节点都需要安装】
1:下载jdk1.7的压缩包。解压。
2:在/etc/profile文件中配置JAVA_HOME环境变量
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
集群节点之间ssh免密码登陆
建议百度一下 ssh免密码登陆
zookeeper的安装【建议先安装一个单机的服务】
1:首先下载zookeeper的安装包 zookeeper-3.4.6.tar.gz
2:上传到192.168.1.100这台服务器的/usr/local目录下
3:解压,重命名
cd /usr/local
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
4:修改配置文件
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/usr/local/zookeeper/data
5:启动zk单机服务
cd zookeeper
bin/zkServer.sh start
开始安装storm集群
1:下载storm的安装包apache-storm-1.0.2.tar.gz
2:上传到192.168.1.100这台服务器的/usr/local目录下
3:解压,重命名
tar -zxvf apache-storm-1.0.2.tar.gz
mv apache-storm-1.0.2 storm
4:修改配置文件
cd storm/conf
vi storm.yaml
storm.zookeeper.servers:
- "192.168.1.100"
nimbus.seeds: ["hadoop100","hadoop101"]
##注意:nimbus.seeds指定的时候最好指定主机名,否则在webui界面查询的时候会重复显示节点信息。
storm.local.dir: "/usr/local/storm/tmp"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
【注意:yaml文件的格式,属性必须顶格,缩进只能使用空格,一点不能使用制表符。】
5:把修改后的storm目录拷贝到其他所有主从节点【主从节点配置完全一样】
scp -rq /usr/local/storm 192.168.1.101:/usr/local
scp -rq /usr/local/storm 192.168.1.102:/usr/local
6:分别启动主从节点的进程
192.168.1.100
nimbus:nohup bin/storm nimbus >/dev/null 2>&1 &
ui:nohup bin/storm ui >/dev/null 2>&1 &
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
192.168.1.101
nimbus:nohup bin/storm nimbus >/dev/null 2>&1 &
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &
192.168.1.102
supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &
logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
7:访问storm的ui界面来查看集群信息
http://192.168.1.100:8080/
问题排查:
1:如果发现无法在webui界面查看日志信息
只可能是两个问题
一:可能是logviewer进程没启动
二:主机名和ip的映射关系没有配置
2:服务器的8080端口被占用导致ui进程启动失败
修改storm.yaml文件
ui.port: 8081
最完整的属性配置在storm-core.jar中的defaults.yaml文件中