返回 导航

大数据

hangge.com

Storm - 集群的安装部署教程

作者:hangge | 2025-02-08 09:13
    Apache Storm 是一个开源的、分布式的实时计算系统,用于处理大规模数据流。它提供了强大的实时数据处理能力,使得用户能够高效地处理、分析和响应数据流。本文以 CentOS 系统为例,演示如何在多节点上搭建和部署 Storm 集群。

1,准备工作

(1)首先我们准备三台 linux 服务器进行集群搭建,具体信息如下:
主机名 内网 IP 外网 IP
node1 172.31.4.99 13.211.44.248
node2 172.31.3.72 3.106.170.197
node3 172.31.6.103 3.25.88.196

(2)为方便后续 Kafka 集群的配置,我们在三台服务上均执行如下命令编辑的 host 文件,使得可以通过主机名相互访问:
echo '
172.31.4.99 node1
172.31.3.72 node2
172.31.6.103 node3' >> /etc/hosts

(3)需要在集群中的所有节点上安装配置 JDK。关于 JDK 的安装可以参考我之前写的文章:
注意:
  • Storm 2.5.0 以及之前的版本支持 JDK 1.8
  • Storm 2.6.0 以及之后的版本不再支持 JDK 1.8,最低要求 JDK 11

(4)由于 Storm 需要依赖 ZooKeeper,因此我首先需要准备 ZooKeeper 环境,具体步骤可以参考我之前写的文章:

2,下载并解压 Storm 安装包

(1)我们访问 Storm 的官网获取需要的版本安装包(点击访问),然后将其下载到 node1 服务器上:
注意:这里我下载的是 2.5.0 版本,也是最后一个支持 JDK1.8 的版本,后续版本最低要求 JDK 11
wget https://archive.apache.org/dist/storm/apache-storm-2.5.0/apache-storm-2.5.0.tar.gz

(2)接着执行如下命令解压下载下来的压缩:
tar -zxvf apache-storm-2.5.0.tar.gz

(3)最后将解压出来的文件夹移动到合适的位置,这个可以根据个人习惯修改:
mv apache-storm-2.5.0 /usr/local/storm

3,修改配置文件

(1)进入 Stormconf 目录,并编辑 storm.yaml 配置文件:
cd /usr/local/storm/conf/
vi storm.yaml

(2)文件中添加如下内容:
注意storm.yaml 这个配置文件是 YAML 格式的。使用两个空格作为一级缩进是 YAML 格式的约定,不能使用制表符(Tab)来代替。
# 指定 Storm 集群使用的 Zookeeper 集群的地址
storm.zookeeper.servers:
  - "node1"
  - "node2"
  - "node3"
# 指定 Master 节点信息,可以指定多个以实现 HA,用逗号隔开
nimbus.seeds: ["node1"]
# Storm 集群的工作目录
storm.local.dir: "/data/storm-work"
# 指定 Worker 节点可用的端口,每个端口可以启动一个 Worker Process
# 建议指定的可用端口个数和 Worker 节点的空闲 CPU 数量相等,这样可以发挥集群的最大性能
supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703
# 修改 Storm Web 界面的默认端口,因为 Zookeeper 默认会占用 8080 端口从而导致冲突
ui.port: 8081

(3)最后,将 node1 机器上修改好配置的 Storm 安装包复制到另外两台机器中:
scp -rq /usr/local/storm node2:/usr/local/
scp -rq /usr/local/storm node3:/usr/local/

4,启动集群

(1)依次进入各服务器的 ZooKeeperbin 目录后执行如下命令启动 ZooKeeper 服务:
./zkServer.sh start

(2)接下来启动 Storm 集群。
  • node1 上启动 Nimbus 进程和 UI 进程:
nohup bin/storm nimbus >/dev/null 2>&1 &
nohup bin/storm ui >/dev/null 2>&1 &

nohup bin/storm supervisor >/dev/null 2>&1 &

nohup bin/storm logviewer >/dev/null 2>&1 &

5,验证 Storm 集群

(1)在 node1 上执行 jps 命令,会发现 NimbusUIServerLogviewerServer 这几个 Storm 的进程。

(2)在 node2node3 上执行 jps 命令,会发现 SupervisorLogviewerServer 这两个 Storm 的进程。如果发现 Storm 相关的进程都在,则说明 Storm 集群成功启动了。

(3)Storm 提供了 Web 界面,也可以通过浏览器确认集群是否正常工启动,访问地址为“http://UI节点IP:8081

6,停止 Storm 集群

(1)如果要停止 Storm 集群,则需要使用 jps 命令找到 Storm 集群中所有进程的 PID

(2)然后使用 kill 命令停止进程,因为在 Storm 脚本中没有提供停止命令。每个节点都要进行同样的操作。
kill 2036
kill 2037
kill 2301
评论

全部评论(0)

回到顶部