訊息佇列:
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