如何搭建Storm完全分布式集群

发布时间:2021-12-04 09:12:56 作者:小新
来源:亿速云 阅读:199
# 如何搭建Storm完全分布式集群

## 一、Storm简介

Apache Storm是一个开源的分布式实时计算系统,由Twitter开源后成为Apache顶级项目。它具有以下核心特点:

- **低延迟**:可达到毫秒级响应
- **高容错**:自动重启故障节点
- **可扩展**:线性扩展计算能力
- **可靠处理**:保证每条消息至少处理一次

典型应用场景包括:实时分析、在线机器学习、持续计算等。

## 二、环境准备

### 2.1 硬件要求

| 角色       | 数量 | 配置要求          |
|------------|------|-------------------|
| Nimbus节点 | 1    | 4核CPU, 8GB内存   |
| Supervisor | ≥2   | 8核CPU, 16GB内存  |
| Zookeeper  | ≥3   | 2核CPU, 4GB内存   |

### 2.2 软件要求

- 操作系统:Linux(推荐CentOS 7+或Ubuntu 16.04+)
- Java:JDK 1.8+
- Zookeeper:3.4.6+
- Python:2.7.x
- Storm:2.4.0(本文示例版本)

## 三、集群架构设计

典型的三节点架构示例:

192.168.1.101 Nimbus + Zookeeper 192.168.1.102 Supervisor + Zookeeper 192.168.1.103 Supervisor + Zookeeper


> 注意:生产环境建议Zookeeper集群至少3个节点且独立部署

## 四、详细搭建步骤

### 4.1 基础环境配置

**所有节点执行:**

1. 配置主机名和hosts
```bash
# 编辑/etc/hosts
192.168.1.101 storm01
192.168.1.102 storm02
192.168.1.103 storm03
  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 安装JDK
yum install -y java-1.8.0-openjdk-devel

4.2 Zookeeper集群部署

所有节点执行:

  1. 下载安装
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/
  1. 配置zoo.cfg
# /opt/zookeeper-3.4.14/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=storm01:2888:3888
server.2=storm02:2888:3888
server.3=storm03:2888:3888
  1. 创建myid文件
# 分别在对应节点执行
mkdir -p /var/lib/zookeeper
echo "1" > /var/lib/zookeeper/myid  # storm01
echo "2" > /var/lib/zookeeper/myid  # storm02
echo "3" > /var/lib/zookeeper/myid  # storm03
  1. 启动服务
/opt/zookeeper-3.4.14/bin/zkServer.sh start

4.3 Storm集群部署

Nimbus节点(storm01)执行:

  1. 下载安装
wget https://archive.apache.org/dist/storm/apache-storm-2.4.0/apache-storm-2.4.0.tar.gz
tar -zxvf apache-storm-2.4.0.tar.gz -C /opt/
  1. 配置storm.yaml
# /opt/apache-storm-2.4.0/conf/storm.yaml
storm.zookeeper.servers:
  - "storm01"
  - "storm02"
  - "storm03"

nimbus.seeds: ["storm01"]

storm.local.dir: "/var/storm"

supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703

Supervisor节点(storm02,storm03)执行:

  1. 同Nimbus节点安装步骤
  2. 修改storm.yaml配置:
supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703

4.4 启动集群

Nimbus节点:

/opt/apache-storm-2.4.0/bin/storm nimbus &
/opt/apache-storm-2.4.0/bin/storm ui &

Supervisor节点:

/opt/apache-storm-2.4.0/bin/storm supervisor &

五、集群验证

  1. 访问Web UI:

    http://storm01:8080
    
  2. 提交测试拓扑:

/opt/apache-storm-2.4.0/bin/storm jar \
examples/storm-starter/storm-starter-topologies-*.jar \
org.apache.storm.starter.WordCountTopology wordcount

六、常见问题解决

  1. Zookeeper连接失败

    • 检查防火墙状态
    • 验证myid文件是否正确
    • 查看zookeeper日志:tail -f zookeeper.out
  2. Worker启动失败

    • 检查端口冲突
    • 确保所有节点时间同步(NTP服务)
  3. UI无法访问

    • 确认nimbus服务已启动
    • 检查8080端口是否监听

七、性能优化建议

  1. 调整worker数量:

    topology.workers: 3
    
  2. 配置消息可靠性:

    builder.setSpout("spout", new RandomSentenceSpout(), 1)
          .setNumTasks(2)
          .setMaxSpoutPending(1000);
    
  3. 启用GC日志监控:

    export STORM_JVM_OPTS="-Xmx2g -Xloggc:/var/log/storm/gc.log"
    

八、总结

本文详细介绍了Storm完全分布式集群的搭建过程,包含: - 环境准备与规划 - Zookeeper集群部署 - Storm核心组件配置 - 集群验证与排错方法

实际生产环境中还需考虑: - 监控告警(Prometheus + Grafana) - 日志集中管理(ELK) - 自动化部署(Ansible) “`

注:本文实际约1350字,完整包含了Storm集群搭建的所有关键步骤和注意事项。可根据实际环境调整IP地址、版本号等参数。

推荐阅读:
  1. 简易storm集群搭建
  2. Hadoop2.7.4完全分布式集群如何构建

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

storm

上一篇:ADO.NET使用访问方法是什么

下一篇:网页里段落的html标签是哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》