天天看點

大資料流式計算第一課---從Storm開始

大資料流式計算第一課—從Storm開始

## **前言** ##    
           
大資料(Big Data)又稱為巨量資料,指需要新處理模式才能具有更強的決策力、洞察力和流程優化能力的海量、高增長率和多樣化的資訊資産。“大資料”概念最早由維克托·邁爾·舍恩伯格和肯尼斯·庫克耶在編寫《大資料時代》中提出,指不用随機分析法(抽樣調查)的捷徑,而是采用所有資料進行分析處理。大資料有4V特點,即Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)——來自互動百科
這幾天在老師指導下,開始對大資料流式計算進行初步接觸了。因為結合着目前大資料發展方向以及常見問題,選擇了研究大資料分布式計算中的實時資料處理方面的内容,有别于基于Hadoop等引領的大資料批量計算,在此主要應用Storm來分析其不能解決的流式計算問題(主要考慮資料的實時性問題)。
   流式大資料的主要特征有:
         - 實時性
         - 易失性
         - 無序性
         - 突發性
         - 無限性
   普遍的研究問題無非是,找到一個“低延遲、高吞吐、持續穩定性、彈性可伸縮”的理想模型,在這個基礎上優化各層結構或者算法實作,來實作正确或者是說更加優化的、合理的流式計算結果。當然,大資料分析計算本來就是通過分析和計算資料,擷取大資料得來的價值所在。
   Storm采用主從式的系統架構,是一個免費開源、分布式、高容錯的實時計算系統。介紹可參考:[參考](http://xiaoxin2009.github.io/storm--%E6%9C%80%E7%81%AB%E7%9A%84%E6%B5%81%E5%BC%8F%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F.html%20%E2%80%9C%E5%8F%82%E8%80%83%E2%80%9D)
           
## Storm 環境搭建##

    在了解了基本的Storm系統結構及其元件後,我花了幾天時間反複在自己的PC機上倒騰,最後總算勉強搭建好了Storm的基本環境了。Storm系統涉及到本地和叢集模式,這裡是安裝本地示例(單機版)。
    首先我的電腦是win10系統,而由于前期學習開發Android及Java等,配置好了java環境。當時的jdk版本為1.8版本的,而後來在網上各種部落格或者網站上逛完之後,發現Storm環境很有可能不相容jdk1.8及以上的,隻有1.7(含)版本以下才可。老師一開始告訴說,我也發現現在Storm叢集環境基本上是全平台相容的,但無奈Windows環境的各種環境變量太過麻煩,嘗試過多次之後選擇了在虛拟機中Linux系統中搭載該環境了。我這裡用的是CentOS 7版本的,若有其他版本的系統自行斟酌,大同小異而已。
           

特别說明:這裡列出兩種系統環境下搭建Storm環境的參考方法,也感謝兩位的部落格。

win環境下搭載Storm

CentOS環境下搭載Storm

需要安裝的包及工具

- CentOS 7

- JDK 1.7

- Storm 0.9.6

- Zookeeper 3.4.9

- Python 2.7 (CentOS 7預設安裝)

## 安裝java環境 ##
           

CentOS 7中預設已經安裝好了jdk是1.6及1.7,為了差別其預設安裝的是jdk還是jre,這裡在終端中繼續使用yum指令安裝(普通使用者登入即可)

預設安裝在:/usr/lib/jvm/java-1.7.0-openjdk. 然後我們配置一下JAVA_HOME環境變量,這裡顯然比win下要友善的多:

更改最後一行加入代碼:

export JAVA_HOME=/usr/lib/jvm/java-.-openjdk
           

如下儲存即可:

大資料流式計算第一課---從Storm開始

接着在終端實作效果,輸入:

source ~/.bashrc
           

至此Java環境配置完畢,可以輸入用 “java –verion”檢查。

大資料流式計算第一課---從Storm開始
## 安裝Zookeeper ##
           

進入Apache官網可以下載下傳Zookeeper的官方安裝包(Zookeeper -3.4.9.tar.gz):

http://mirrors.cnnic.cn/apache/zookeeper/stable/

直接在CentOS系統下載下傳,下載下傳後預設儲存,執行如下指令(此處切換回root使用者,切記!!!):

sudo tar -zxf ~/下載下傳/zookeeper-..tar.gz -C  -/usr/local        ##若有别的版本(如3.4.8)将名字對應更換即可
cd /usr/local
sudo mv zookeeper-* zookeeper
sudo chown -R (括号這裡輸入你的系統普通使用者名即可) ./zookeeper    
           

然後切換回普通使用者,執行:

cd /usr/local/zookeeper
mkdir tmp
cp ./conf/zoo_sample.cfg ./conf/zoo.cfg
vim ./conf/zoo.cfg
           

我們在這裡将文檔當中的 dataDir=/tmp/zookeeper 路徑更改為 dataDir=/usr/local/zookeeper/tmp .

大資料流式計算第一課---從Storm開始

接着執行:

如果出現如下界面,則表示配置成功:

大資料流式計算第一課---從Storm開始
## 安裝Storm ##
           

我們下載下傳并安裝Storm,下載下傳位址:

http://www.apache.org/dyn/closer.lua/storm/apache-storm-0.9.6/apache-storm-0.9.6.tar.gz。

下載下傳後執行如下指令進行安裝Storm(此處切換回root使用者):

sudo tar -zxf ~/下載下傳/apache-storm-..tar.gz -C /usr/local
cd /usr/local
sudo mv apache-storm-. storm
sudo chown -R (括号這裡填系統的普通使用者名即可) ./storm #此指令為檔案授權   
           

接着配置Storm(切換回普通使用者):

cd /usr/local/storm
vim ./conf/storm.yaml
           

打開文檔後,修改其中的 storm.zookeeper.servers 和 nimbus.host 兩項,取消掉注釋且都修改值為 127.0.0.1,如下:

大資料流式計算第一課---從Storm開始

配置完成後,輸入指令啟動Storm。先啟動 nimbus 背景程序:

./bin/storm nimbus
           

效果:

大資料流式計算第一課---從Storm開始

再打開另一個終端,執行 supervisor 背景程序:

/usr/local/storm/bin/storm supervisor
           

效果:

大資料流式計算第一課---從Storm開始

此指令啟動後,終端也将被占用。我們用 jps 指令在另一個終端中來檢查是否成功啟動,若成功則如下圖效果。(QuorumPeeMain 是 zookeeper 的背景程序,若顯示 config_value 表明 nimbus 或 supervisor 還在啟動中):

大資料流式計算第一課---從Storm開始

至此,本地Storm環境已經搭建完畢!

Storm環境搭建好以後,就可以執行一些經典執行個體了,而今後的進一步課題研究也将從這裡開始,這裡就不再贅述了,自行尋找在Linux上運作Storm的方式方法。

參考來源:

http://www.powerxing.com/install-storm/

http://xiaoxin2009.github.io/storm–%E6%9C%80%E7%81%AB%E7%9A%84%E6%B5%81%E5%BC%8F%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F.html

繼續閱讀