易學筆記-第2章 關於MapReduce 阿新 • • 發佈:2018-11-12 第2章 關於MapReduce/2.1 氣象資料集 MapReduce主流語言版本,可運行於不同的Hadoop版本 Java Ruby Python C++ 氣象資料集 例子: 需求: 氣溫的資料格式: 第2章 關於MapReduce/2.2 使用Unix工具來分析資料 使用Unix工具來分析資料 需求: 傳統的awk分析: 遍歷整個資料檔案,找到一年中最高的那個氣溫: 並行處理 將任務劃分為大小相同的作業,每一個作業由獨立的程序處理。由於每一個作業資料檔案存在差異性,所以有些作業時間少,有些作業時間多,最後的時間還是取決於最慢的作業 合併各個獨立作業的執行結果,然後繼續排序 受限於單臺計算機的計算能力。如果資料處理量超過計算機能力,也將大大拖累整個任務完成效果 多個任務存在協調性和可靠性問題,比如失敗的程序怎麼處理 第2章 關於MapReduce/2.3 使用Hadoop來分析資料/2.3.1 map和reduce map和reduce 概念:兩者都是以鍵值對的方式作為輸入輸出的,其中 map:資料準備,比如將文字的每一行作為輸入,由於只關心年份和氣溫,所以只需要取出年份和氣溫值即可 reduce:資料處理,比如找出每一年的最高氣溫 舉例: map: 輸入: 輸出:通過對鍵值進行排序和處理後得出結果,該結果作為reduce的輸入 reduce : 輸入:map處理後的資料: 輸出:找出每一個年份最大值: 整個資料流過程: 原始資料-->map輸入 (鍵值對):行偏移量:每行資料-->多個單行(年份,氣溫)-->按年份排序並彙集氣溫-->map輸出-->reduce每一行取最大值-->reduce輸出