Centos7搭建Apache Storm 集群运行环境

news/2024/10/22 4:24:30/

文章目录

    • 1. 安装 Java
    • 2. 下载并解压 Storm
    • 3. 配置环境变量
    • 4. 配置 ZooKeeper
    • 5. 配置 Storm
      • storm.yaml
      • 自定义 `storm.yaml`
      • storm-env.sh
      • logback/cluster.xml
    • 6. 启动 Storm 集群
    • 7. 验证

在这里插入图片描述

1. 安装 Java

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

sudo yum install java-1.8.0-openjdk

2. 下载并解压 Storm

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

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

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

tar -xvf apache-storm-2.2.0.tar.gz

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

sudo mv apache-storm-2.2.0 /usr/local/

3. 配置环境变量

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

sudo nano /etc/profile

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

export STORM_HOME=/usr/local/apache-storm-2.2.0
export PATH=$PATH:$STORM_HOME/bin

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

source /etc/profile

4. 配置 ZooKeeper

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

sudo yum install zookeeper

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

sudo systemctl start zookeeper

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

sudo systemctl enable zookeeper

5. 配置 Storm

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

cd $STORM_HOME/conf

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

storm.yaml

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

sudo cp storm.yaml.example storm.yaml

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

sudo nano storm.yaml

在文件中添加以下内容:

storm.zookeeper.servers:- "localhost"nimbus.seeds: ["localhost"]storm.local.hostname: "localhost"

自定义 storm.yaml

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

# 配置 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 的环境变量配置文件,你可以使用以下命令创建该文件:

sudo cp storm-env.sh.example storm-env.sh

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

sudo nano storm-env.sh

在文件中添加以下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

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

logback/cluster.xml

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

sudo nano logback/cluster.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 三个进程。& 符号表示将进程放到后台运行。

storm nimbus &
storm supervisor &
storm ui &

7. 验证

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


http://www.ppmy.cn/news/1000620.html

相关文章

[RK3568 Android11] 开发之默认授予系统预置的APP权限

[RK3568 Android11] 开发之默认授予系统预置的APP权限 [RK3568 Android11] 开发之默认授予系统预置的APP权限_rk3568 授予所有文件的管理权限_~未来可期~的博客-CSDN博客

Flink程序富函数中使用定时任务查询mysql

Flink程序富函数中使用定时任务查询mysql出现内存堆积 问题描述 flink程序在跑的过程中&#xff0c; 发现跑几天就停掉了&#xff0c; 看日志发现是代码中的ResultSet和Statement堆积的太多&#xff0c;引起的内存溢出&#xff0c;但是代码中确实已经关闭了ResultSet和Statem…

使用变量作为参数的CSS rgba()函数详解

系列文章目录 文章目录 系列文章目录前言一、rgba()函数简介二、使用变量设置透明度三、动态调整透明度总结前言 CSS的rgba()函数用于设置颜色值的透明度。在实际开发中,我们可能希望通过变量来动态设置颜色透明度,以实现更灵活的样式效果。本文将详细介绍如何在rgba()函数中…

Linux 9的repo for OVS build

源码中自带RPM包spec文件 cd /root/rpmbuild/SOURCES/openvswitch-2.17.7/rhel rpmbuild -bb openvswitch.spec ## 按提示解决&#xff0c;不好解决的依赖可以试试下面的repo 方法 error: File /root/rpmbuild/SOURCES/openvswitch-2.17.7.tar.gz: No such file or direct…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板4

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

软考A计划-系统集成项目管理工程师-项目合同管理-下

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

vscode如何包含第三方库

方法1&#xff1a;使用C Extension 在include 的 rapidjson的头文件时&#xff0c;vscode会提示找不到的问题 悬停&#xff0c;点击黄色提示 Edit "includePath" setting Include Path&#xff0c;输入rapidjson的include路径 /Users/xxx/workspaces/rapidjson-1.1.…

【考古】Java8 集合工具类Arrays

文章目录 一、概述二、常用方法三、简单使用3.1 Arrays的sort排序3.2 Arrays的binarySearch查找3.3 Arrays的fill填充3.4 Arrays的copyOf复制数组3.5 Arrays的copyOfRange复制部分Arrays的asList数组转链表 四、总结 一、概述 在 Java 的util包中提供了一个Arrays工具类用来操作…