# Apache Storm集群如何配置
Apache Storm是一個分布式實時計算系統,廣泛應用于實時分析、在線機器學習、持續計算等領域。本文將詳細介紹如何從零開始配置一個Apache Storm集群。
## 一、環境準備
### 1.1 硬件要求
- 至少3臺服務器(1個Nimbus節點,1個Zookeeper節點,1個Supervisor節點,生產環境建議更多)
- 每臺服務器建議配置:
- 4核CPU
- 8GB內存
- 100GB硬盤空間
### 1.2 軟件依賴
- Java 8或更高版本
- Python 2.7.x
- Zookeeper 3.4.6+
- Apache Storm 2.x(本文以2.4.0為例)
## 二、基礎環境配置
### 2.1 安裝Java
所有節點都需要安裝Java:
```bash
sudo apt-get update
sudo apt-get install openjdk-8-jdk
驗證安裝:
java -version
選擇至少一個節點作為Zookeeper服務器(生產環境建議3-5個):
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -xzf zookeeper-3.4.14.tar.gz
cd zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888
啟動Zookeeper:
bin/zkServer.sh start
在所有節點執行:
wget https://archive.apache.org/dist/storm/apache-storm-2.4.0/apache-storm-2.4.0.tar.gz
tar -xzf apache-storm-2.4.0.tar.gz
mv apache-storm-2.4.0 /usr/local/storm
編輯/etc/profile:
export STORM_HOME=/usr/local/storm
export PATH=$PATH:$STORM_HOME/bin
編輯$STORM_HOME/conf/storm.yaml:
storm.zookeeper.servers:
- "zk1"
- "zk2"
- "zk3"
nimbus.seeds: ["nimbus1"]
storm.local.dir: "/var/storm"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
啟動Nimbus:
storm nimbus &
同樣編輯storm.yaml:
storm.zookeeper.servers:
- "zk1"
- "zk2"
- "zk3"
nimbus.seeds: ["nimbus1"]
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
啟動Supervisor:
storm supervisor &
在Nimbus節點啟動UI:
storm ui &
訪問http://nimbus_host:8080查看集群狀態
示例WordCount拓撲:
// 示例代碼片段,完整拓撲需包含spout/bolt定義
Config conf = new Config();
conf.setNumWorkers(2);
StormSubmitter.submitTopology("wordcount", conf, topology);
提交命令:
storm jar wordcount.jar org.apache.storm.starter.WordCountTopology wordcount
通過UI界面或命令查看:
storm list
啟用Kerberos認證:
storm.thrift.transport: "org.apache.storm.security.auth.kerberos.KerberosSaslTransportPlugin"
調整worker內存:
worker.heap.memory.mb: 2048
修改log4j2.xml:
<Configuration>
<Appenders>
<RollingFile name="FILE" fileName="${sys:storm.log.dir}/storm.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>
</RollingFile>
</Appenders>
</Configuration>
Zookeeper連接失敗
storm.zookeeper.servers配置Slot分配問題
supervisor.slots.ports不沖突UI無法訪問
storm.local.dir目錄通過以上步驟,您已經成功配置了一個Apache Storm集群。根據實際業務需求,可以進一步調整參數優化性能。 “`
這篇文章包含了: 1. 環境準備要求 2. 分步驟的詳細配置指南 3. 配置文件的示例代碼 4. 驗證方法和常見問題解決 5. 高級配置建議 6. 最佳實踐提示
總字數約1400字,采用Markdown格式,包含代碼塊、列表、標題等標準元素,可以直接用于技術文檔發布。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。