大資料6.1 - 實時分析(storm和kafka)

項羽齊發表於2018-04-08

訊息佇列:

  kafka只有一種模式:topic主題模式

  kafka已經成為大資料業界主流

 

storm簡介

  storm是一個分散式的實時資料分析系統,底層基於zeroMQ做資料傳輸。使用clojure語言開發核心模組

  storm速度非常快,能達到亞秒級(200sm)

   同類產品:

    sparkStreaming:也是做實時分析的,速度是秒級:1s-5s。

  

 

  問題:

    flume連線kafka?

    kafka連線storm?

  storm元件:

    Nimbus:老大,storm的發號施令者。(相當於hadoop中的namenode)

    Supervisor(管理人,檢查員):小弟,具體業務執行者。(相當於hadoop中的datanode)

    zookeeper:叢集資源管理者,監聽整個叢集的健康狀態。

 

  核心四大要素

   

    

    

 

    topology:拓撲,代表整修同整個資料處理過程

    spout:噴嘴,就是資料來源

    tuple:資料載體,內部類似map(key,value),value型別一旦定義,不能存放其他型別的資料。Tuple不太一樣,key一般是string型別,value型別不定,資料結構不定。

        Tuple的切割時間不是任意確定的。需要經過多次的嘗試。沒有最好的時間,只有最合適的時間。

    bolt:(閃電)運算元,內部需要我們自己定義一些處理邏輯,而且一個topology中可以有多個bolt。並且一個bolt可以接受多個資料來源,並且有多個出處。

     

 

 

    

 

     jvm?java虛擬機器,隨著技術的發展,java有很多衍生語言。scala、clojure。同樣編譯成.class,通過jvm來執行。

 

  1、安裝storm

    解壓即可

cd /usr/local/src/storm/apache-storm-0.9.3/conf
vi storm.yaml
storm.zookeeper.servers:
- "hadoop01" - "hadoop02" - "hadoop03" # nimbus.host: "hadoop01" storm.local.dir: "/usr/local/src/storm/apache-storm-0.9.3/tmp"

    引數說明:

      strom.zookeeper.servers 配置zk叢集

      nimbus.host 配置numbus所在伺服器

      storm.local.dir 配置臨時檔案所在路徑

    

  啟動storm

      1、啟動主伺服器,Nimbus

        cd /usr/local/src/storm/apache-storm-0.9.3/bin

        ./storm ui >/dev/null 2>&1 &         #啟動UI Web介面,訪問埠8080

        ./storm nimbus >/dev/null 2>&1 &       #啟動nimbus服務

      

    附:配置從機(supervisor

      1、複製storm到從機

      cd /usr/local/src

        scp -r storm root@hadoop02:/usr/local/src/

        scp -r storm root@hadoop03:/usr/local/src/

      2、複製配置檔案到從機

        scp /etc/profile root@hadoop02:/etc/profile

        scp /etc/profile root@hadoop03:/etc/profile

      3、啟動supervisor

           ./storm supervisor >/dev/null 2>&1 &

  檢視狀態:

      http://hadoop01:8080/index.html

      

      

 

 

  kafka的安裝

    1、下載kafka

      下載地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

    2、注:kafka需要zookeeper監控,所以需要先行安裝zookeeper

      解壓kafka

      cd /usr/local/src/kafka/kafka_2.10-0.10.0.1/config

      vi server.properties

broker.id=0                                     #當前server編號
log.dirs=/usr/local/src/kafka/kafka_2.10-0.10.0.1/tmp/kafka-logs       #日誌儲存目錄
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181         #配置zookeeper叢集
advertised.host.name=hadoop01                          #配置當前host
advertised.port=9092

 

 

 

 

 

 

 

 

 

 

 

相關文章