MapReduce如何工作
(圖片來(lái)源網(wǎng)絡(luò ),作┐(′ー`)┌原侵刪)MapReduce 是理及令使一種編程模型,用于大規模數據集(大于1TB)的其命并行運算,其基本思想是用??方將問(wèn)題分而治之,將大問(wèn)題分解成小問(wèn)題,法詳然后分別求(′?ω?`)解,最后再合并結果,MapReduce的工作過(guò)程可以分為以下幾個(gè)步驟:
1、數據輸入
數據讀取:從HDFS中讀取文件,數據讀取組件是TextInputFormat和LineRecordReader。
數據分片:調用Job.steInputFormaiClass,將輸入文件劃分為大小相等的小數據塊。
2、
格式化??數據源:輸入Map階段的數據源,必須經(jīng)過(guò)分片和格式化操作。
執行Mapper函數:對每個(gè)小數??據塊執行ヽ(′ー`)ノMapper函數,生成一系列鍵值對。
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)3、
排序:對Mapper(′▽?zhuān)?輸出的鍵值對進(jìn)行排序。
分組:將具有相同鍵的值放在(′?`*)一起,為Reduce階段做準備。
4、Reduce階段
執行Reducer函數:對每個(gè)鍵,執行Reducer函數??,合并鍵相同的值(zhi),生成另外一系列鍵值對。
輸出結果:將Reducer的輸出寫(xiě)入HDFS。
如何使用MapReduce命令
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)使用MapReduce命令主要包括以下步ヽ(′?`)ノ驟:
1、準備環(huán)境
安裝Hadoop:首先需要在計算機上安裝Hadoop環(huán)境。
配置環(huán)境變量:配置HAD(???)OOP_HOME和PATH環(huán)境變量,確??梢栽诿钚兄羞\行Hadoop命令。
2、編寫(xiě)MapR??educe程(′ω`)序
編(′?ω?`)寫(xiě)Mapper類(lèi):定義一個(gè)繼承自Mapper的類(lèi),重寫(xiě)map方法,實(shí)現映射邏輯。
3、編譯打包
編譯Java程序:使用Java編譯器編譯編寫(xiě)的MapReduce程序。
打包成JAR文件:使用jar命令將編譯后的class文件打包成一個(gè)JAR文件。
4、運行MapReduce作業(yè)
上傳JAR文件到H??DFS:使用hadoop fs put命令將JAR文件(jian)上傳到HDFS。
運行MapR(?Д?)educe作業(yè):使用hadoop jar命令運行MapReduce作業(yè),指定主類(lèi)、JAR文件和輸入輸出路徑。
MapReduce是(╬?益?)一種強大的分布式計算模型,通過(guò)將大問(wèn)題分解成小問(wèn)題,分??別求解后再合并結果,可以處理大規模數據集(ji),使用MapReduce命令需要編寫(xiě)Maヽ(′▽?zhuān)?ノpReduce程序,編譯打包后上傳到HDFS,然后使用hヽ(′ー`)ノadoop jar命令運行,通過(guò)學(xué)(xue)習和實(shí)踐,可以更好地理解和掌握MapReduce的使用。
Copyright ? 2012-2018 天津九安特機電工程有限公司 版權所有 備案號: