2016年6月12日 星期日

strom nimbus zookeeper bigdata 大數據學習心得筆記

strom nimbus zookeeper bigdata 大數據學習心得筆記

近半年來工作上有些調整,不同的公司不同的文化學到了很多原本沒機會碰到的各種新奇技術,前一份工作原從事雲端運算服務,不過待了半年對於公司的一些規章制度還有辦公環境不是那麼習慣就毅然決然離開了,回到了熟悉的電信行業領域一下子又是半年過去,這份工作應徵時以為每天的工作會是和通訊行業底層的 core network 或是 Radio Network System 及各種奇奇怪怪的通訊協定綁在一起,想不到因緣際會下接觸的是公司最新的solution,這個案子不只和大數據扯上邊,而是之前很多只是聽過沒機會一探究竟的Big Data 底層應用技術都在這個專案碰上了,個人從事的是系統建置以及整合工作,將公司開發好的大數據產品與客戶端系統介接導入數據源並加以處理,專案中的扮演的角色必需要從最底層的 Server及網路佈建規劃安裝以及 Customer integration pint adapter介接機制規劃等,從底層 build up上來,一層層的剝開拆解系統後才驚訝的發現時下最新的各種大數據相關技術都包含其中,其中有一樣技術是在 adapter 接口收集了各式前端系統產出的資訊後需即時處理海量資料的 strom 架構,這塊因為之前沒有接觸過所以是最陌生的部份,把上網找到的storm 相關資源作了一些整理後分享給大家參考。


Storm 基本重要元件說明:

控制節點(master node):
擔任控制節點的機器會有一支名為 Nimbus 的程序常駐在背景執行,機制有點像是Hadoop架構的JobTracker,Nimbus主要的任務是在集群裡面分發代碼,分配計算任務給機器, 並且監控狀態。

工作節點(worker node):
每一部工作節點機器運行 Supervisor 程序,這支 Supervisor會監聽 Nimbus 分配各個節點的工作,並且視狀況來執行或是結束某個對應的 TASK來完成上級交付的任務,每一個worker 都會執行一個 topology 的子集任務,因此一個完整的topology規劃的任務由 Nimbus 下派後可以由很多台不同機器上的 Supervisor 程序進行的TASK來共同完成。

Zookeeper:
Nimbus和Supervisor之間的socket 溝通管理協調就是靠Zookeeper Cluster 來完成。Nimbus 進程和Supervisor進程都是快速失敗(fail-fast)和無狀態的。所有的狀態要麼在zookeeper裡面, 要麼在本地磁片上。這也就意味著你可以用kill -9來殺死Nimbus和Supervisor進程, 然後再重啟它們,就好像什麼都沒有發生過。這個設計使得Storm異常的穩定。


Nimbus:
負責資源的分配還有任務的派遣調度安排。


Supervisor:
負責接受上級 Nimbus 指派的任務,並據以啟種或停止自己管理的 worker 流程,就像是一個生產線的現場主管,實際管理所屬的員工作事。

Worker:
執行具體邏輯的程序 (Process)。

Task:
 worker 裡面的每一個 spout/bolt 的執行緒 (Thread)稱為 task ,在 storm 0.8 版本之後同一個 spout/bolt 的 task 可能會共享一個實際的 (Thread),而這個 (Thread)就稱作 executor。


Topology:
什麼是 Storm 的Topology? 我在操作 storm UI的時候會有 load topology 相關的資訊,而 topology 沒Load好也會有問題,那到底什麼是topology ? Storm 的Topology Cluster 和Hadoop cluster 看起來好像很類似,不過Hadoop骨子裡跑的是 MapReduce jobs,而在Storm上面跑的腳本其實就是 Topology 拓撲,Storm 到底要處理的是什麼樣的資料要怎麼樣處理都是描述在 Topology 內,而且 Topology 一經 load 到 storm 裡面執行之後就不會結束了,除非你自己去砍掉它,而 Hadoop 裡面的 MapReduce 的JOB跑完之後就會自己死掉了。


storm 架構中比較大的問題就是 nimbus 承載了 cluster 上的許多重要工作,包含把最重要的 topology 傳送出去,單一 nimbus 節點的風險就是一旦這個點掛掉 topology 就找不到了,資料也產不出來了。
http://www.nbcio.com/post/1e9aba_9a0d975


strom 線上視頻教學資源:
https://www.youtube.com/watch?v=ACQtpD5GNg8&index=1&list=PLmk2A5FdzV3NYx0YKyHsWqNMiSJU69VEd


Storm入門教程 第二章 構建Topology
參考至:http://erhwenkuo.blogspot.tw/2013/05/storm-topology.html
張貼留言