從頭學習大數據培訓課程 hadoop 分散式計算框架(十)mapreducer 編程,任務工作鏈、生產項目打包方式

1. MR任務工作鏈設置流程

配置好任務依賴關係並把任務加到工作鏈中

使用run方法運行

2. 任務工作鏈退出方式

由於job.run是個阻塞方法,所以需要在線程中監控任務的執行結果並調用stop方法修改工作鏈狀態從而使job.run方法跳出阻塞狀態,結束整個程序的運行

3. 任務配置

wordcount任務的配置

maxword任務的配置

sort任務配置

配置任務依賴關係

使用alt+shift+m將任務配置重構成3個方法。以便使主體結構變得整潔些

4. 重構代碼結構,抽象封裝公用mr任務基類

根據代碼結構來看想成為任務工作鏈中的任務就得根據任務配置生成ControlledJob對象,而每個任務的配置都不同。

所以每個任務都需要有返回ControlledJob的方法,和生成自己任務配置的方法

從而可以使用繼承的方法把這兩個方法放到基類中,並把生成任務配置的方法設置成抽象方法交給子類自己實現

由於每個任務的名稱都不同並且任務名稱的設定是必須的,任務的名稱一方法可以方便在yarn上查找使用,一方法可以用作任務的輸出地址,有了任務輸入地址的規定就可以方便後置任務設置輸入地址

基類中還應該規定項目中所有任務的工作路徑,方便以後集群空間的管理

這個基類不但提供了一些實用的方法,還可以用作團隊中編寫mr任務的標準

5. mr任務jar包支持短命令方式運行

使用ProgramDriver類,指定類地址通過反射調用你自己寫的job的main方法

使用ProgramDriver類的優點是可以使任務在命令行提交時變的更簡潔。還可以在項目上線時規定有那些任務可以運行

修改項目pom文件指定maven assembly插件使用的mainclass,這樣生成的jar包就有了默認的主類,並且不在接受輸入類地址調用其它的類

大數據最新資訊關註:「海牛數據」公眾號,更多大數據學習資料:海牛部落


推薦閱讀:

【資料合集】在線大數據技術峰會:講義PDF+活動視頻!
全國第一批特色小鎮
三維激光掃描與大數據
想學習大數據要掌握些什麼知識?
Storm, Spark, Hadoop三個大數據處理工具都是JVM上的語言寫成的,這件事是否能說明什麼?

TAG:大数据 | Hadoop | 大数据处理 |