見:http://lxw1234.com/archives/2016/11/795.htm
如果你已經按照《寫給大數據開發初學者的話3》中第五章和第六章的流程認真完整的走了一遍,那么你應該已經具備以下技能和知識點:
- 為什么Spark比MapReduce快。
- 使用SparkSQL代替Hive,更快的運行SQL。
- 使用Kafka完成數據的一次收集,多次消費架構。
- 自己可以寫程序完成Kafka的生產者和消費者。
從前面的學習,你已經掌握了大數據平臺中的數據采集、數據存儲和計算、數據交換等大部分技能,而這其中的每一步,都需要一個任務(程序)來完成,各個任務之間又存在一定的依賴性,比如,必須等數據采集任務成功完成后,數據計算任務才能開始運行。如果一個任務執行失敗,需要給開發運維人員發送告警,同時需要提供完整的日志來方便查錯。
第七章:越來越多的分析任務
不僅僅是分析任務,數據采集、數據交換同樣是一個個的任務。這些任務中,有的是定時觸發,有點則需要依賴其他任務來觸發。當平臺中有幾百上千個任務需要維護和運行時候,僅僅靠crontab遠遠不夠了,這時便需要一個調度監控系統來完成這件事。調度監控系統是整個數據平臺的中樞系統,類似于AppMaster,負責分配和監控任務。
7.1 Apache Oozie
1.?? ?Oozie是什么?有哪些功能?
2.?? ?Oozie可以調度哪些類型的任務(程序)?
3.?? ?Oozie可以支持哪些任務觸發方式?
4.?? ?安裝配置Oozie。
7.2 其他開源的任務調度系統
Azkaban:
https://azkaban.github.io/
light-task-scheduler:
https://github.com/ltsopensource/light-task-scheduler
Zeus:
https://github.com/alibaba/zeus
等等……
另外,我這邊是之前單獨開發的任務調度與監控系統,具體請參考《大數據平臺任務調度與監控系統》.
?
如果你認真完成了上面的學習和實踐,此時,你的”大數據平臺”應該是這樣的:
第八章:我的數據要實時
在第六章介紹Kafka的時候提到了一些需要實時指標的業務場景,實時基本可以分為絕對實時和準實時,絕對實時的延遲要求一般在毫秒級,準實時的延遲要求一般在秒、分鐘級。對于需要絕對實時的業務場景,用的比較多的是Storm,對于其他準實時的業務場景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話,也可以自己寫程序來做。
8.1 Storm
1.?? ?什么是Storm?有哪些可能的應用場景?
2.?? ?Storm由哪些核心組件構成,各自擔任什么角色?
3.?? ?Storm的簡單安裝和部署。
4.?? ?自己編寫Demo程序,使用Storm完成實時數據流計算。
8.2 Spark Streaming
1.?? ?什么是Spark Streaming,它和Spark是什么關系?
2.?? ?Spark Streaming和Storm比較,各有什么優缺點?
3.?? ?使用Kafka + Spark Streaming,完成實時計算的Demo程序。
?
如果你認真完成了上面的學習和實踐,此時,你的”大數據平臺”應該是這樣的:
?
以下章節正在整理中,請持續關注?lxw的大數據田地
?
第九章:我的數據要對外
第十章:牛逼高大上的機器學習
?
寫給大數據開發初學者的話1
寫給大數據開發初學者的話2
第三章:把別處的數據搞到Hadoop上
第四章:把Hadoop上的數據搞到別處去
寫給大數據開發初學者的話3
第五章:快一點吧,我的SQL
第六章:一夫多妻制
寫給大數據開發初學者的話4
第七章:越來越多的分析任務
第八章:我的數據要實時
寫給大數據開發初學者的話5
第九章:我的數據要對外
第十章:牛逼高大上的機器學習