Centos7搭建Apache Storm 集群运行环境

文章目录

    • [1. 安装 Java](#1. 安装 Java)
    • [2. 下载并解压 Storm](#2. 下载并解压 Storm)
    • [3. 配置环境变量](#3. 配置环境变量)
    • [4. 配置 ZooKeeper](#4. 配置 ZooKeeper)
    • [5. 配置 Storm](#5. 配置 Storm)
    • [6. 启动 Storm 集群](#6. 启动 Storm 集群)
    • [7. 验证](#7. 验证)

1. 安装 Java

Storm 运行在 Java 平台上,因此需要先安装 Java。你可以使用以下命令安装 OpenJDK 8:

shell 复制代码
sudo yum install java-1.8.0-openjdk

2. 下载并解压 Storm

你可以从 Storm 的官方网站下载 Storm。在本教程中,我们将使用 Storm 2.2.0 版本。你可以使用以下命令下载 Storm:

shell 复制代码
wget https://archive.apache.org/dist/storm/apache-storm-2.2.0/apache-storm-2.2.0.tar.gz

下载完成后,你可以使用以下命令解压 Storm:

shell 复制代码
tar -xvf apache-storm-2.2.0.tar.gz

解压完成后,你可以将 Storm 移动到 /usr/local 目录下:

shell 复制代码
sudo mv apache-storm-2.2.0 /usr/local/

3. 配置环境变量

为了方便使用 Storm,你需要设置一些环境变量。首先,你需要打开 /etc/profile 文件:

shell 复制代码
sudo nano /etc/profile

在文件的末尾添加以下内容:

shell 复制代码
export STORM_HOME=/usr/local/apache-storm-2.2.0
export PATH=$PATH:$STORM_HOME/bin

保存后,使用以下命令使环境变量生效:

shell 复制代码
source /etc/profile

4. 配置 ZooKeeper

Storm 需要使用 ZooKeeper 来协调集群中的节点。你可以使用以下命令安装 ZooKeeper:

shell 复制代码
sudo yum install zookeeper

安装完成后,你需要启动 ZooKeeper 服务:

shell 复制代码
sudo systemctl start zookeeper

为了让 ZooKeeper 服务在系统启动时自动启动,你可以使用以下命令将其添加到系统服务中:

shell 复制代码
sudo systemctl enable zookeeper

5. 配置 Storm

Storm 的配置文件位于 $STORM_HOME/conf 目录下。你可以使用以下命令进入该目录:

shell 复制代码
cd $STORM_HOME/conf

在该目录下,有三个文件需要进行配置:

storm.yaml

该文件是 Storm 的主要配置文件,你可以使用以下命令创建该文件:

shell 复制代码
sudo cp storm.yaml.example storm.yaml

然后使用以下命令打开该文件:

shell 复制代码
sudo nano storm.yaml

在文件中添加以下内容:

shell 复制代码
storm.zookeeper.servers:
  - "localhost"

nimbus.seeds: ["localhost"]

storm.local.hostname: "localhost"

自定义 storm.yaml

一般我们只需要配置上面的就ok了,如果你想自定义一些参数可以参考下面的,我加了注释方便于你理解。

yaml 复制代码
# 配置 ZooKeeper 服务器地址
storm.zookeeper.servers:
  - "localhost"

# 指定 Storm 集群所使用的本地目录
storm.local.dir: "/mnt/storm"

# 指定 Nimbus 的种子节点地址
nimbus.seeds: ["localhost"]

# 指定 Storm 使用的 Thrift 传输插件
storm.thrift.transport: "org.apache.storm.security.auth.SimpleTransportPlugin"

# 指定 Storm 使用的消息传输插件
storm.messaging.transport: "org.apache.storm.messaging.netty.Context"

# 指定 Storm 消息服务器使用的工作线程数
storm.messaging.netty.server_worker_threads: 1

# 指定 Storm 消息客户端使用的工作线程数
storm.messaging.netty.client_worker_threads: 1

# 指定 Storm 消息缓冲区的大小
storm.messaging.netty.buffer_size: 1024

# 指定 Storm 消息传输失败时的最大重试次数
storm.messaging.netty.max_retries: 10

# 指定 Storm 消息传输重试时的最大等待时间
storm.messaging.netty.max_wait_ms: 1000

# 指定 Storm 消息传输重试时的最小等待时间
storm.messaging.netty.min_wait_ms: 100

storm-env.sh

该文件是 Storm 的环境变量配置文件,你可以使用以下命令创建该文件:

shell 复制代码
sudo cp storm-env.sh.example storm-env.sh

然后使用以下命令打开该文件:

shell 复制代码
sudo nano storm-env.sh

在文件中添加以下内容:

shell 复制代码
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

上述配置将 Java 的安装路径设置为 /usr/lib/jvm/java-1.8.0-openjdk

logback/cluster.xml

该文件是 Storm 的日志配置文件,你可以使用以下命令打开该文件:

shell 复制代码
sudo nano logback/cluster.xml

找到以下内容:

xml 复制代码
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>${storm.log.dir}/nimbus.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>${storm.log.dir}/nimbus.log.%d{yyyy-MM-dd-HH}</fileNamePattern>
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

将其中的 ${storm.log.dir} 替换为 /var/log/storm,这样 Storm 的日志将会被记录在 /var/log/storm/nimbus.log 文件中。

6. 启动 Storm 集群

在完成以上配置后,你可以使用以下命令启动 Storm 集群:

启动了 Nimbus、Supervisor 和 UI 三个进程。& 符号表示将进程放到后台运行。

shell 复制代码
storm nimbus &
storm supervisor &
storm ui &

7. 验证

已经成功地在 CentOS 7 上安装和配置了 Storm 环境,并启动了 Storm 集群。可以访问 http://localhost:8080/ 来查看 Storm UI

相关推荐
ZStack开发者社区4 小时前
青海交科携手云轴科技ZStack为青海交控集团打造智慧物流大数据平台
大数据·服务器·科技·云计算·gpu算力
PH = 74 小时前
K8S集群部署Dashboard
云原生·容器·kubernetes
发哥来了4 小时前
六款开源大模型中文长文本处理能力横向评测
大数据·人工智能·机器学习·ai·开源·aigc
追逐时光者4 小时前
2026 年 .NET 客户端常用 MVVM 框架推荐
后端·.net
_Evan_Yao4 小时前
长上下文模型(1M token)会杀死RAG吗?—— 理性分析
人工智能·后端
AI职业加油站5 小时前
从“取数工具人”到“数据决策者”:传统数据分析师的技能跃迁之路
大数据·人工智能·数据分析
Rik5 小时前
Cursor Rules 深度玩法:从全局配置到项目级规则,让 AI 真正理解你的项目
前端·后端
TYKJ0235 小时前
Day4、10个排查网络问题的命令行工具:每个配真实输出,建议收藏
后端
renhailab5 小时前
被免费星巴克咖啡"骗"进 TRAE SOLO,却意外解锁了移动端 AI 办公新姿势
后端
米饭不加菜5 小时前
Git 从入门到精通:系统性的学习与实践指南
大数据·elasticsearch·搜索引擎