Storm 知識點彙總

2021-07-25 02:49:01 字數 2025 閱讀 3407

storm主要分為兩種元件nimbus和supervisor。這兩種元件都是快速失敗的,沒有狀態。任務狀態和心跳資訊等都儲存在zookeeper上的,提交的**資源都在本地機器的硬碟上。

nimbus負責在集群裡面傳送**,分配工作給機器,並且監控狀態。全域性只有乙個。

supervisor會監聽分配給它那台機器的工作,根據需要啟動/關閉工作程序worker。每乙個要執行storm的機器上都要部署乙個,並且,按照機器的配置設定上面分配的槽位數。

zookeeper是storm重點依賴的外部資源。nimbus和supervisor甚至實際執行的worker都是把心跳儲存在zookeeper上的。nimbus也是根據zookeerper上的心跳和任務執行狀況,進行排程和任務分配的。

storm提交執行的程式稱為topology。

topology處理的最小的訊息單位是乙個tuple,也就是乙個任意物件的陣列。

topology由spout和bolt構成。spout是發出tuple的結點。bolt可以隨意訂閱某個spout或者bolt發出的tuple。spout和bolt都統稱為component。

下圖是乙個topology設計的邏輯圖的例子。

storm的每乙個supervisor節點內部執行多個work程序,每個work程序內部有多個executor執行緒,每個執行緒內部還可以跑乙個類的多個task例項

storma集群的安裝及配置

1、安裝乙個zookeeper集群

2、上傳storm的安裝包,解壓(storm是clojur語言編寫的 --->基於jvm的語言   scala也是基於jvm的語言)

3、修改配置檔案/home/hadoop-node-01/apache-storm-0.9.2-incubating/conf/storm.yaml

#所使用的zookeeper集群主機

storm.zookeeper.servers:

- "hadoop-01-server"

- "hadoop-02-server"

- "hadoop-03-server"

#nimbus所在的主機名

nimbus.host: "hadoop-01-server"

#此處配置的是supervisor節點上work程序的埠號,可配可不配,若不配則預設就是前4個埠

supervisor.slots.ports    

-6701

-6702

-6703

-6704

-6705

-6706

4、將配置好的storm複製到其他兩台機器上

scp /home/hadoop-node-01/apache-storm-0.9.2-incubating hadoop-02-server:/home/hadoop-node-01/

scp /home/hadoop-node-01/apache-storm-0.9.2-incubating hadoop-03-server:/home/hadoop-node-01/

storm的集群的啟動(storm可以執行在yarn集群上,也可以單獨執行。)

1.啟動zookeeper

storm是依賴於zookeeper,所以需要選啟動zookeeper。

2.啟動storm

在nimbus主機上

bin/storm nimbus 1>/dev/null 2>&1 &

bin/storm ui 1>/dev/null 2>&1 &

在supervisor主機上

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

(1>/dev/null 2>&1 & 的意思是把該服務啟動為後台程序)

storm的深入學習:

storm on  yarn 

分布式共享鎖的實現----zookeeper

事務topology的實現機制及開發模式(難度較大的一塊)

在具體場景中的跟其他框架的整合(flume《資料收集》/activemq/kafka(分布式的訊息佇列系統)       /redis/hbase/mysql cluster)

演算法知識點彙總

1.求陣列元素之間相鄰的元素個數或者求字串的長度 指向同乙個陣列的不同元素的兩個指標可以相減,其差便是兩個指標之間相隔的元素個數。例如在乙個字串中,讓乙個指向該串的首元素,讓另乙個指向字串的結束符,兩個指標相減,其差便是字串的長度 2.怎樣判斷兩個指標指向的是陣列的同乙個元素?指標可以互相比較。如指...

小知識點彙總

1 為什麼乙個數的各位數之和可以被3整除時,這個數就可以被3整除 設乙個n位數number,從個位起每一位為a1 an 則number a1 a2 10 a3 10 2 an 10 n 1 1 先證必要性 如果number的各位數之和是3的倍數,則a1 a2 an 3k k為正整數 2 由 2 得a...

Hadoop ZooKeeper知識點彙總

echo 顯示出jdk的安裝目錄 echo 2 myid 把2寫到myid檔案 覆蓋原內容 cat myid 檢視myid檔案的內容 zkserver.sh start 啟動zookeeper zkserver.sh status 檢視zookeeper的啟動狀態 netstat nltp 檢視埠占...