1. 程式人生 > >Hadoop Core_MapReduce總結(三)

Hadoop Core_MapReduce總結(三)

四、 MapReduce Shell 應用

1、MapReduce 的二級命令

mapred 稱為一級命令,直接輸入 mapred 回車,即可檢視二級命令:

2、MapReduce 的三級命令

輸入一級命令 mapred 後,再任意輸入一個二級命令,即可檢視三級命令:

3、MapReduce shell 應用

   檢視當前正在執行的 job 任務

先提交一個 WordCount 任務,然後使用 mapred job -list 檢視任務列表

  終止(kill)一個任務的執行

  構造場景:先提交一個 WordCount job,然後通過 kill job-id 來終止任務

  檢視一個 job 的日誌

  命令格式為:mapred job -logs job-id

五、 MapReduce 技術特徵

1、向“外”橫向擴充套件,而非向“上”縱向擴充套件

  • 叢集的構建完全選用價格便宜、易於擴充套件的低端商用伺服器,而非價格昂貴不易擴充套件的商用服務
  • 大規模資料處理和大規模資料儲存的需要,講求叢集綜合能力,而非單臺機器處理能力,橫向增加機器節點資料量

 

2、失效被認為是常態

  • 使用大量普通伺服器,節點硬體和軟體出錯是常態
  • 具備多種有效的錯誤檢測和恢復機制,在某個計算節點失效後會自動轉移到別的計算節點。某個任務節點失敗後其他節點能夠無縫接管失效節點的計算任務
  • 當失效節點恢復後自動無縫加入叢集,不需要管理員人工進行系統配置

3、移動計算,把處理向資料遷移(資料本地性)

  • 採用程式碼/資料互定位的功能,計算和資料在同一個機器節點或者是同一個機架中,發揮資料本地化特點
  • 可避免跨機器節點或是機架傳輸資料,提高執行效率

4、順序處理資料、避免隨機訪問資料

  • 磁碟的順序訪問遠比隨機訪問快得多,因此 MapReduce 設計為面向順序式大規模資料的磁碟訪問處理
  • 利用叢集中的大量資料儲存節點同時訪問資料,實現面向大資料集批處理的高吞吐量的並行處理

5、推測執行

  • 一個作業由若干個 Map 任務和 Reduce 任務構成,整個作業完成的時間取決於最慢的任務的完成時間。由於節點硬體、軟體問題,某些任務可能執行很慢
  • 採用推測執行機制,發現某個任務的執行速度遠低於任務平均速度,會為慢的任務啟動一個備份任務,同時執行。哪個先執行完,採用哪個結果。

6、平滑無縫的可擴充套件性

  • 可彈性的增加或減少叢集計算節點來調節計算能力
  • 計算的效能隨著節點數的增加保持接近線性程度的增長

7、為應用開發這隱藏系統底層細節

  • 並行程式設計有很多困難,需要考慮多執行緒中複雜繁瑣的細節,諸如分散式儲存管理、資料分發、資料通訊和同步、計算結果收集等細節問題。
  • MapReduce 提供了一種抽象機制將程式設計師與系統層細節隔離開,程式設計師只需關注業務,其他具體執行交由框架處理即可。