大資料開發的MapReduce的程式設計怎麼弄?5步解決!

很多人都是“一看就會,一做就廢”眼睛:我會了,我們開始吧!手:你會了我還沒會呢!在之前的Hadoop是什麼中已經說過MapReduce採用了分而治之的思想,MapReduce主要分為兩部分,一部分是Map——分,一部分是Reduce——合,那麼MapReduce的程式設計該怎麼弄呢?下面5個步驟告訴你!

大資料開發的MapReduce的程式設計怎麼弄?5步解決!

一、概念複習!

(1)客戶端(Client):編寫mapreduce程式,配置作業,提交作業,這就是程式設計師完成的工作

(2)JobTracker:JobTracker是一個後臺服務程序,啟動之後,會一直監聽並接收來自各個TaskTracker傳送的心跳資訊,包括資源使用情況和任務執行情況等資訊。

1。作業控制:在hadoop中每個應用程式被表示成一個作業,每個作業又被分成多個任務,2。JobTracker的作業控制模組則負責作業的分解和狀態監控。

狀態監控:主要包括TaskTracker狀態監控、作業狀態監控和任務狀態監控。主要作用:容錯和為任務排程提供決策依據。

3。JobTracker只有一個,他負責了任務的資訊採集整理,你就把它當做包工頭把,這個和採用Master/Slave結構中的Master保持一致

4。JobTracker 對應於 NameNode

5。一般情況應該把JobTracker部署在單獨的機器上

(3)TaskTracker:TaskTracker是JobTracker和Task之間的橋樑。TaskTracker與JobTracker和Task之間採用了RPC協議進行通訊。

1。從JobTracker接收並執行各種命令:執行任務、提交任務、殺死任務等

2。將本地節點上各個任務的狀態透過心跳週期性彙報給JobTracker,節點健康情況、資源使用情況,任務執行進度、任務執行狀態等,比如說map task我做完啦,你什麼時候讓reduce task過來拉資料啊

3。TaskTracker是執行在多個節點上的slaver服務。TaskTracker主動與JobTracker通訊,接收作業,並負責直接執行每一個任務。

4。TaskTracker都需要執行在HDFS的DataNode上

(4)HDFS:儲存作業的資料、配置資訊等等,最後的結果也是儲存在hdfs上面

1。NameNode: 管理檔案目錄結構,接受使用者的操作請求,管理資料節點(DataNode)

2。DataNode:是HDFS中真正儲存資料的

3。Block:是hdfs讀寫資料的基本單位,預設64MB大小,就是說如果你有130MB資料,那就要分成三個block,兩個存放64MB,最後一個存放2MB資料,雖然最後一個block塊是64MB,但實際上佔用空間為2MB

4。Sencondary NameNode:它的目的是幫助 NameNode 合併編輯日誌,減少 NameNode 啟動時間,在檔案系統中設定一個檢查點來幫助NameNode更好的工作。它不是要取代掉NameNode也不是NameNode的備份。

大資料開發的MapReduce的程式設計怎麼弄?5步解決!

認真複習了嗎?複習好了嗎?接下來就開始動手操作吧!

二、

五步走!

整個MapReduce程式,所有資料以(key,value)形式流動

第一步:

input

正常情況下不需要寫程式碼

僅僅在MapReduce程式執行的時候指定一個路徑即可

第二步:

map(核心)

map(key,value,output,context)

key:每行資料的偏移量——基本沒用

value:每行資料的內容——真正需要處理的內容

第三步:

shuffle

不需要寫程式碼

第四步:

reduce(核心)

reduce(key,value,output,context)

key:業務需求中的key

value:要聚合的值

第五步:

output

正常情況下不需要寫程式碼

僅僅在MapReduce程式執行的時候指定一個路徑即可

大資料開發的MapReduce的程式設計怎麼弄?5步解決!

比想象的要簡單許多吧,只要多動手練習一下,這些都不難,如果一次沒成功,那就再練習一次。

本期的內容就是這些了,要多加練習,一遍一遍的敲程式碼,然後執行。光靠眼睛會了還不行,手也得會!大資料開發之路,期待你的成長!

希望大家點個關注,及時收取最新文章推送,想了解更多敬請諮詢加米穀大資料。

有問題的歡迎在評論區留言,如有侵權請告知。