學習hadoop已有一段時間, 從最初的搭建環境, 配置環境, 編寫mapreduce應用, 到基於hive的查詢, 慢慢的開始喜歡和習慣它的這種模式, 最近對hadoop集群環境執行原理很感興趣, 很想知道它究竟是怎麼做到這種分步式的運算與協調, 也很想能夠從事這方面的工作. 學習了董西成的《深入解析mapreduce架構設計與實現原理》一書後, 慢慢的為我揭開了hadoop的蓋頭, 通過分析原始碼的實現, 從中也深刻的體會到架構設計的美, 配置的靈活, 構思的巧妙. 本篇主要針對hadoop的核心--任務排程進行分析, 通過**的分析, 去理解它的設計,這是一種深入學習hadoop的方式.
在這裡我使用的hadoop版本為1.1.2 , 針對任務排程主要會整理以下流程, 並去分析各個實現細節, 中間有錯誤和模糊的地方還請給予指摘, 歡迎交流.
我會以作業提交為起點進行分析:
一》 分析jobtracker的初始化工作和作業的提交和初始化過程,這主要觀注於job初始化都做了那些事, 及狀態的變化佇列管理等.
二》 分析jobtracker的心跳接收與響應, taskscheduler是如何組織和分配不同的taskaction命令的, 都採用了那種分配策略.以及tasktrackerstatus的在jt側的更新.
三》 分析tasktracker的的初始化與根據心跳應答啟動task, 這主要會分析任務的行為和啟動過程分析.
四》 分析task的執行過程和中間的一些細節.
五》 分析task和job的清理過程.
以上會重點關注任務的排程的分析, 這主要會分析capacitytaskscheduler的實現. 通過以上的分析, 對於mapreduce應用的整個執行過程會有乙個清晰的理解. 針對各個引數的配置會有更明確的理解.
這中間會分析一些hadoop內部使用的技術點
一》 rpc的實現機制.
二》 jvmmanager的管理.
三》 資源管理的分配策略.
四》 安全管理.
特此宣告: 本篇可能不會過多涉及hadoop的理論實現. 重點分析具體的**實現及其細節.
如有了解的請參考hadoop官網, hadoop權威指南和深入解析mapreduce架構設計與實現原理.
Hadoop 任務排程系統比較
在hadoop應用,隨著業務指標的迭代,而使其日趨複雜化的時候,管理hadoop的相關應用會變成一件頭疼的事情,如 作業的依賴排程,任務的運 況的監控,異常問題的排查等,這些問題會是的我們日常的工作變得複雜。那麼,在沒有條件和精力去開發一套排程系統的情況下,我們去選擇一款第三方開源的排程系統,來盡量...
Hadoop離線 oozie的任務排程
1.任務排程 在oozie當中,主要是通過coordinator 來實現任務的定時排程,與workflow類似的,coordinator 這個模組也是主要通過xml來進行配置即可,接下來就來看看如何配置coordinator 來實現任務的定時排程 coordinator 的排程主要可以有兩種實現方式...
python任務排程例項分析
方法1 import sched,time import os s sched.scheduler time.time,time.sleep scheduler的兩個引數用法複雜,程式設計客棧可以不做任何更改 def playmusic x os.system x def jobtodo tmlis...