Apache Storm 2.x集群部署

Apache Storm简介

Apache Storm 是一个开源的分布式实时计算框架,可以以简单、可靠的方式进行大数据流的处理。通常用于实时分析,在线机器学习、持续计算、分布式 RPC、ETL 等场景。Apache Storm 的前身是Twitter Storm平台,采用Clojure开发,目前已经归于 Apache 基金会管辖。

在这里插入图片描述

Storm集群环境搭建

参考:https://storm.apache.org/releases/2.2.0/Setting-up-a-Storm-cluster.html

这里搭建一个 3 节点的 Storm 集群:三台主机上均部署SupervisorLogViewer服务。同时为了保证高可用,除了在 hadoop001 上部署主Nimbus服务外,还在 hadoop002 上部署备用的Nimbus服务。Nimbus服务由 Zookeeper 集群进行协调管理,如果主Nimbus不可用,则备用Nimbus会成为新的主Nimbus

在这里插入图片描述

Storm 运行依赖于 Java 8+ 和 Python 2.7.x +,所以需要预先安装这两个软件。同时为了保证高可用,这里我们不采用 Storm 内置的 Zookeeper,而采用外置的 Zookeeper 集群。

java安装参考:https://blog.csdn.net/networken/article/details/105084857
zookeeper安装参考:https://blog.csdn.net/networken/article/details/116207969

集群搭建

下载storm

wget https://archive.apache.org/dist/storm/apache-storm-2.2.0/apache-storm-2.2.0.tar.gz

解压安装

tar -zxvf apache-storm-2.2.0.tar.gz -C /opt/
mv /opt/apache-storm-2.2.0/ /opt/storm

配置环境变量

cat > /etc/profile.d/storm.sh <<'EOF'
export STORM_HOME=/opt/storm
export PATH=$STORM_HOME/bin:$PATH
EOF

source /etc/profile

集群配置

修改${STORM_HOME}/conf/storm.yaml文件,配置如下:

cat > $STORM_HOME/conf/storm.yaml <<EOF
storm.zookeeper.servers:
     - "hadoop01"
     - "hadoop02"
     - "hadoop03"
storm.zookeeper.port: 2181
storm.local.dir: "/opt/storm/stormLocal"
nimbus.seeds: ["hadoop01","hadoop02"]
supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000
ui.port: 8081
EOF

参数说明:

  • supervisor.slots.ports 参数用来配置 workers 进程接收消息的端口,默认每个 supervisor 节点上会启动 4 个 worker,当然你也可以按照自己的需要和服务器性能进行设置,假设只想启动 2 个 worker 的话,此处配置 2 个端口即可。
  • storm.local.dir Nimbus和Supervisor需要使用本地磁盘上来存储少量状态(如jar包,配置文件等),需手动创建
  • nimbus.seeds Nimbus的节点列表

配置文件参考:https://github.com/apache/storm/blob/v2.2.0/conf/defaults.yaml

启动Storm集群

hadoop01 & hadoop02 :

因为要启动多个进程,所以统一采用后台进程的方式启动。进入到${STORM_HOME}/bin目录下,

cd ${STORM_HOME}/bin

执行下面的命令:

# 启动主节点 nimbus
nohup sh storm nimbus &

# 启动从节点 supervisor 
nohup sh storm supervisor &

# 启动UI界面 ui  
nohup sh storm ui &

# 启动日志查看服务 logviewer 
nohup sh storm logviewer &

hadoop03 :

hadoop003 上只需要启动supervisor服务和logviewer服务:

# 启动从节点 supervisor 
nohup sh storm supervisor &

# 启动日志查看服务 logviewer 
nohup sh storm logviewer &

查看集群

使用jps查看进程,三台服务器的进程应该分别如下:

hadoop01节点

[root@hadoop01 ~]# jps
10288 Main
27555 LogviewerServer
2580 ZooKeeperMain
2262 QuorumPeerMain
29081 Jps
27386 Nimbus
27451 Supervisor
27503 UIServer

hadoop02节点

[root@hadoop02 ~]# jps
19904 Supervisor
2160 QuorumPeerMain
19960 UIServer
20011 LogviewerServer
20636 Jps
19853 Nimbus

hadoop03节点

[root@hadoop03 ~]# jps
20598 Supervisor
21303 Jps
2124 QuorumPeerMain
20621 LogviewerServer

访问 hadoop001 或 hadoop002 的8081端口,界面如下。可以看到有一主一备 2 个Nimbus和 3 个Supervisor,并且每个Supervisor有四个slots,即四个可用的worker进程,此时代表集群已经搭建成功。

在这里插入图片描述

高可用验证

这里手动模拟主Nimbus异常的情况,在 hadoop01 上使用kill命令杀死Nimbus的线程,

[root@hadoop01 ~]# ps -ef |grep nimbus

[root@hadoop01 ~]# kill -9 19853

此时可以看到 hadoop01 上的Nimbus已经处于offline状态,而 hadoop02 上的Nimbus则成为新的Leader

在这里插入图片描述
参考:https://github.com/heibaiying/BigData-Notes/tree/master/notes/installation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willops

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值