溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-12-04 09:12:56 來源:億速云 閱讀:218 作者:小新 欄目:云計算
# 如何搭建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集群搭建的所有關鍵步驟和注意事項??筛鶕嶋H環境調整IP地址、版本號等參數。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女