我是hadoop的新手,我讀了許多hadoop mapreduce和hdfs的頁面,但仍然無法清除一個概念。Hadoop如何在多個數據節點上分發數據和mapreduce任務
可能是這個問題是愚蠢的或不尋常的,如果它是這樣比這麼抱歉。 我的問題是,假設我爲hadoop中的1 GB大小的文件創建了一個字數統計程序,其中map函數將每行作爲輸入和輸出作爲鍵值對,並且reduce函數將輸入 作爲輸入鍵值對,並簡單地迭代列表並計算單詞在該文件中出現的總次數。
現在我的問題是,因爲這個文件存儲在多個數據節點的塊中,並且map-reduce並行地在每個數據節點上執行。假設我的文件存儲在兩個datanode上,第一個數據節點上的文件包含5個字「hadoop」,第二個數據節點上的文件包含7個字「hadoop」。因此基本上 整個地圖的縮小處理輸出爲:
的hadoop:7
的hadoop:5
爲2地圖,減少功能在2個不同的數據節點上執行平行, 但輸出應該是在兩個文件「的hadoop」字的計數的總和與那就是: hadoop:13
那麼我該如何實現或者我在這裏錯過了一些概念。請幫助我對這個概念非常困惑,如果我無法讓你明白我想問什麼,我很抱歉。
好的非常感謝您的post.Now我的概念已清除。非常感謝您 –
@yogeshmeghnani不客氣。 :) – philantrovert