Hadoop 任務排程分析啟動篇

2021-09-30 10:38:57 字數 1071 閱讀 1232

學習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...