1、
map的數量是什麼決定的,
reduce的數量是什麼決定的
mapreduce的中間發生了什麼
請用例項舉例
1、map的數量怎麼決定:
splitsize = max (minsize, min(goalsize, dfs.block.size))
第一種情況:
3.1.1 輸入檔案size巨大,但不是小檔案 增大
mapred.min.split.size
的值3.1.2 輸入檔案數量巨大,且都是小檔案
combinefileinputformat 使用這個類
即減小blocksize或者減小mapred.min.split.size的值。
2、reduce的數量 。
預設值是1。
3、map和reduce之間發生了什麼?
shuufle的過程
map端
1、 整個流程我分了四步。簡單些可以這樣說,每個map task都有乙個記憶體緩衝區,儲存著map的輸出結果,當緩衝區快滿的時候需要將緩衝區的資料以乙個臨時檔案的方式存放到磁碟,當整個map task結束後再對磁碟中這個map task產生的所有臨時檔案做合併,生成最終的正式輸出檔案,然後等待reduce task來拉資料。
reduce端
2、1. copy過程
2. merge階段
3. reducer的輸入檔案
3、說出hadoop需要改進的地方,並且提出建議
1、map reduce兩個階段都產生的臨時資料都需要寫入磁碟,然後在從磁碟讀取資料,增加了磁碟的io效能,導致任務執行緩慢
對於可以裝入記憶體的資料,不需要寫入磁碟了,直接從記憶體進行處理
2、預設mapreduce是對key進行排序的, 而有些任務是不需要排序這個要求的,影響任務的速度
對於不需要排序的任務,可以進行不排序。
3、 不適合事務/單一請求處理
4、.不能隨即讀取
5、以蠻力代替索引
6、1、資料必須先儲存,才能運算。
一 hadoop和spark的區別
hadoop是基於磁碟的,它的運算結果儲存在磁碟當中 而spark的運算是基於記憶體的。因此spark的運算速度是 hadoop的100倍 即使在磁碟當中運算,spark也是hadoop的10倍左右,原因就是spark具有優秀的作業排程策略。故spark的速度快與hadoop的兩個原因 1 spar...
Spark中的一些概念
一次action操作會觸發rdd的延遲計算,我們把這樣的一次計算稱作乙個job。窄依賴指的是 每個parent rdd 的 partition 最多被 child rdd的乙個partition使用 寬依賴指的是 每個parent rdd 的 partition 被多個 child rdd的part...
hadoop的一些基本用法
1 檢視指定目錄下內容 hadoop dfs ls 檔案目錄 eg hadoop dfs ls user 2 開啟某個已存在檔案 hadoop dfs cat file path eg hadoop dfs cat user susu 3 將本地檔案儲存至hadoop hadoop fs put 本...