# Storm-0.9.3的安裝部署步驟
## 目錄
1. [系統環境準備](#系統環境準備)
2. [依賴組件安裝](#依賴組件安裝)
3. [Storm-0.9.3下載與解壓](#storm-093下載與解壓)
4. [配置文件修改](#配置文件修改)
5. [集群部署與啟動](#集群部署與啟動)
6. [測試驗證](#測試驗證)
7. [常見問題解決](#常見問題解決)
8. [性能優化建議](#性能優化建議)
---
## 系統環境準備
### 硬件要求
- **最低配置**:2核CPU/4GB內存/50GB硬盤
- **生產建議**:8核CPU/16GB內存/SSD存儲
- 網絡要求:集群節點間千兆網絡互通
### 操作系統
```bash
# 檢查系統版本(以CentOS為例)
cat /etc/redhat-release
# 預期輸出:CentOS release 6.5 (Final)
# 關閉防火墻
service iptables stop
chkconfig iptables off
# 禁用SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 修改主機名(所有節點)
vi /etc/sysconfig/network
# 添加:HOSTNAME=nimbus01 # 根據角色修改
# 配置hosts文件
vi /etc/hosts
192.168.1.101 nimbus01
192.168.1.102 supervisor01
192.168.1.103 zookeeper01
# 創建專用用戶組
groupadd storm
useradd -g storm storm
passwd storm # 設置密碼
# 創建安裝目錄
mkdir -p /opt/storm
chown -R storm:storm /opt/storm
# 下載JDK(以jdk-7u80為例)
wget https://repo.huaweicloud.com/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
# 解壓并配置環境變量
tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/
echo 'export JAVA_HOME=/usr/local/jdk1.7.0_80' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
# 驗證安裝
java -version
# 下載安裝
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zxvf zookeeper-3.4.6.tar.gz -C /opt/
# 配置文件修改
cd /opt/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 添加關鍵配置
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=zookeeper01:2888:3888
server.2=zookeeper02:2888:3888
server.3=zookeeper03:2888:3888
# 創建myid文件
mkdir -p /var/lib/zookeeper
echo "1" > /var/lib/zookeeper/myid # 各節點分別寫1,2,3
# 啟動服務
bin/zkServer.sh start
wget https://archive.apache.org/dist/storm/apache-storm-0.9.3/apache-storm-0.9.3.tar.gz
# 校驗文件完整性
md5sum apache-storm-0.9.3.tar.gz
# 預期MD5:ac1a78e55a26e66b3d4b8f6e4b3b4d1e
tar -zxvf apache-storm-0.9.3.tar.gz -C /opt/
cd /opt/apache-storm-0.9.3
# 主要目錄說明
bin/ # 啟動腳本
conf/ # 配置文件
lib/ # 依賴庫
logs/ # 日志目錄
public/ # UI資源
# Nimbus節點配置
storm.zookeeper.servers:
- "zookeeper01"
- "zookeeper02"
- "zookeeper03"
storm.local.dir: "/opt/storm_data"
nimbus.host: "nimbus01"
# Supervisor配置
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
# UI配置(可選)
ui.port: 8080
# 添加STORM_HOME
echo 'export STORM_HOME=/opt/apache-storm-0.9.3' >> /etc/profile
echo 'export PATH=$STORM_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
# Nimbus節點
nohup storm nimbus > /dev/null 2>&1 &
# Supervisor節點
nohup storm supervisor > /dev/null 2>&1 &
# UI服務(通常在Nimbus節點)
nohup storm ui > /dev/null 2>&1 &
# 檢查進程
jps
# 應看到:Nimbus/Supervisor/UI等進程
# 運行WordCount示例
storm jar storm-starter-topologies-0.9.3.jar storm.starter.WordCountTopology test-topology
# 查看拓撲列表
storm list
http://nimbus01:8080
# 查看端口占用
netstat -tunlp | grep 6700
# 修改配置后需重啟服務
supervisor.slots.ports:
- 6800
- 6801
# 錯誤日志示例
Connection refused to host: zookeeper01
解決方案: 1. 檢查ZooKeeper服務狀態 2. 驗證防火墻設置 3. 檢查storm.yaml中的zk配置
# 調整worker內存
worker.childopts: "-Xmx2048m"
# 調整并行度
topology.workers: 4
topology.acker.executors: 2
storm.messaging.transport: "backtype.storm.messaging.netty.Context"
storm.messaging.netty.server_worker_threads: 8
# 集成Ganglia監控
storm.cluster.metrics.consumer.register:
- class: "backtype.storm.metric.GangliaMetricsConsumer"
parallelism.hint: 1
argument: "your.ganglia.host:8649"
注意事項: 1. 生產環境建議使用supervisord管理進程 2. 重要配置變更需滾動重啟集群 3. 日志文件默認位于$STORM_HOME/logs 4. 建議配合Ansible等工具實現批量部署
本文檔最后更新于2023年10月,適用于Storm 0.9.3穩定版部署參考。更高級功能請參考官方文檔:https://storm.apache.org/releases/0.9.3/ “`
注:實際內容約3850字(含代碼塊和格式標記)。如需調整具體細節或補充更多配置示例,可以進一步擴展各章節內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。