hadoop實戰隨筆_0713

對於比線性鏈更加複雜的問題,會有相關的類庫幫助合理地安排工作流。最簡單的是org.apache.hadoop.mapred.jobcontrol包中的JobControl類。


mapReduce中出傳遞的數據都是<key, value>形式的,並且shuffle排序聚集分發都是按照key值進行的。


map的輸入採用hadoop默認的輸入方式:文件一行作爲value,行號爲key

reduce的輸入爲map輸出聚集後的結果。即<key, value-list>,如<word, {1,1,1…}>


wordCount例子中,map過程切分詞,並將其作爲keyreduce階段按key累加value,兩者之間靠的shufflemap輸出的key合併到一塊,並將其value都添加到value集合中。shuffle過程不需要手動配置,是系統自動完成的。


單表關聯:表變換後自連接

多表關聯:類似單表關聯,通常邏輯更清晰


mapreduce程序的執行包含四個實體:

客戶端:編寫mapreduce代碼,配置作業,提交作業

JobTraker:初始化作業,分配作業,與TaskTraker保持通信,協調整個作業的執行。

TaskTraker: 保持與JobTraker的通信,在分配的數據片上執行MapReduce任務,一個集羣中可以包含多個TaskTraker

HDFS:保存作業的數據、配置信息等,保存作業結果。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章