Apache Storm系列 之二( 輕鬆搞定 Storm 安裝與啓動)


Storm 是開源免費的分佈實時計算系統(Apache Storm is a free and open source distributed realtime computation system)。這裏提到了兩個關鍵詞:html

  • 分佈式
  • 實時

一、分佈式意味着 Storm 是部署在多臺主機上,它解決併發性(多機資源同時做業)以及可用性(一臺主機出現問題,計算任務移交到其餘機器)問題java

分佈式天然而然讓咱們聯想到了須要一個協調服務,這裏提到的就是 zookeeper。zookeeper 用於協調 Nimbus、Supervisor。git

二、實時則區別於 Mapreduce 的批處理github

至於如何從原理上理解 Storm 的特性,我會在後面的文章中具體介紹。本文則簡單介紹如何安裝以及啓動 Storm, 先將其完整的運做起來可以幫助咱們理解以及創建信心。這裏爲何說是簡單介紹呢,由於安裝並啓動一個 Storm 運行環境確實很簡單。apache

安裝 Storm 以前請確保你已經安裝好:vim

  • jdk
  • zookeeper

部署示例

storm部署圖

  • 三臺主機 mini01 + mini02 + mini03
  • zookeeper 部署在三臺主機上
  • mini01 上部署 nimbus 並啓動 UI
  • supervisor 部署在 mini02 和 mini03 上

安裝

zookeeper 集羣安裝

參見 zookeeper 集羣安裝配置 ,固然你能夠安裝單節點的 zookeeperbash

storm 安裝 & 配置

下載解壓

訪問官網,下載你須要的版本,本文使用的是 1.0.6 版本(apache-storm-1.0.6.tar.gz)。 將 apache-storm-1.0.6.tar.gz 拷貝到三臺主機上並解壓。微信

cd /home/app
tar -zxvf apache-storm-1.0.6.tar.gz
複製代碼

增長 Storm 環境變量

修改/etc/profile,將 Storm 加入環境變量併發

vim /etc/profile
複製代碼

/etc/profile 文件以下app

export STORM_HOME=/home/app/apache-storm-1.0.6
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$STORM_HOME/bin:$PATH
複製代碼

生效/etc/profile

source /etc/profile
複製代碼

修改 Storm 配置文件

cd apache-storm-1.0.6/conf
vim storm.yaml
複製代碼

配置每臺主機上的 storm.yaml 文件,配置內容以下

storm.zookeeper.servers:
        - "mini01"
        - "mini02"
        - "mini03"

storm.local.dir: "/home/app/apache-storm-1.0.6/data"

nimbus.seeds: ["mini01"]

supervisor.slots.ports:
        - 6700
ui: 8088
複製代碼

其中:

  • storm.zookeeper.servers: 配置 zookeeper 的服務節點,由於這裏使用 zookeeper 的默認端口(2181),因此 zookeeper 的端口就不須要特別指定
  • storm.local.dir: Nimbus 和 upervisor 須要一個本地目錄存放少許狀態(例如 Jar 包或者配置文件之類)。用戶首先須要建立這個目錄。
  • nimbus.seeds:nimbus 節點地址,這裏 mini01 主機做爲主節點
  • supervisor.slots.ports:配置supervisor,開啓幾個端口插槽,就開啓幾個對應的worker進程
  • ui: 設置Storm Web UI 的 http 端口(可選,本文中咱們只在 mini01 上配置該屬性,由於咱們訪問的是 mini01:8088)

特別注意,配置項冒號後面須要接一個空格

這裏只列出了幾個能保證服務正常運行的配置項,Storm 提供了不少其餘配置項,感興趣的能夠看看 Storm 配置文件源碼

啓動

mini01 上 啓動 nimbus 以及 Storm UI

nohup storm nimbus &
nohup storm ui &
複製代碼

mini02 和 mini03 上啓動 supervisor

nohup storm supervisor &
複製代碼

驗證

jps

mini01 上能夠看到 zookeeper(QuorumPeerMain) 以及 nimnus 進程

[root@mini01 5257]# jps
4810 QuorumPeerMain
5257 core
5206 nimbus
5410 Jps
複製代碼

mini02 和 mini03 上能夠看到 supervisor 進程

[root@mini02 bin]# jps
2823 QuorumPeerMain
3100 Supervisor
3191 Jps
複製代碼

Storm Web UI

訪問 mini01:8088

Storm UI

Tips

在安裝啓動時可能會有一些報錯(例以下面):

  • storm nimbus not a leader
  • java.util.zip.ZipException: Not in GZIP format
  • org.apache.storm.shade.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode

請確保:

  • 防火牆沒有阻止端口,包括 zookeeper 和 storm。
  • zookeeper 正常啓動。
  • /etc/hosts 配置正確。

不能正常運行,查看以下幾個日誌,對症下藥便可:

  • zookeeper 報錯請查看 ZK_HOME/bin/zookeeper.out;
  • nimbus 報錯請查看 STORM_HOME/logs/nimbus.log;
  • supervisor 報錯請查看 STORM_HOME/logs/supervisor.log

掃碼關注微信公衆號
掃碼關注微信公衆號"Kooola大數據",聊人生|聊技術
相關文章
相關標籤/搜索