日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce架构设计

發布時間:2023/12/18 编程问答 42 如意码农
生活随笔 收集整理的這篇文章主要介紹了 MapReduce架构设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MapReduce采用Master/Slave的架構,其架構圖如下:

它主要有以下4個部分組成:

1)Client

2)JobTracker

JobTracke負責資源監控和作業調度。JobTracker 監控所有TaskTracker 與job的健康狀況,一旦發現失敗,就將相應的任務轉移到其他節點;同時,JobTracker 會跟蹤任務的執行進度、資源使用量等信息,并將這些信息告訴任務調度器,而調度器會在資源出現空閑時,選擇合適的任務使用這些資源。在Hadoop 中,任務調度器是一個可插拔的模塊,用戶可以根據自己的需要設計相應的調度器。

3)TaskTracker

TaskTracker 會周期性地通過Heartbeat 將本節點上資源的使用情況和任務的運行進度匯報給JobTracker,同時接收JobTracker 發送過來的命令并執行相應的操作(如啟動新任務、殺死任務等)。TaskTracker 使用“slot”等量劃分本節點上的資源量。“slot”代表計算資源(CPU、內存等)。一個Task 獲取到一個slot 后才有機會運行,而Hadoop 調度器的作用就是將各個TaskTracker 上的空閑slot 分配給Task 使用。slot 分為Map slot 和Reduce slot 兩種,分別供MapTask 和Reduce Task 使用。TaskTracker 通過slot 數目(可配置參數)限定Task 的并發度。

4)Task

Task 分為Map Task 和Reduce Task 兩種,均由TaskTracker 啟動。HDFS 以固定大小的block 為基本單位存儲數據,而對于MapReduce 而言,其處理單位是split。split 是一個邏輯概念,它只包含一些元數據信息,比如數據起始位置、數據長度、數據所在節點等。它的劃分方法完全由用戶自己決定。但需要注意的是,split 的多少決定了Map Task 的數目,因為每個split 只會交給一個Map Task 處理。Split 和 Block的關系如下圖所示:

Map Task 執行過程如下圖 所示。由該圖可知,Map Task 先將對應的split 迭代解析成一個個key/value 對,依次調用用戶自定義的map() 函數進行處理,最終將臨時結果存放到本地磁盤上,其中臨時數據被分成若干個partition,每個partition 將被一個Reduce Task 處理。

Reduce Task 執行過程下圖所示。該過程分為三個階段:

①從遠程節點上讀取MapTask 中間結果(稱為“Shuffle 階段”);

②按照key 對key/value 對進行排序(稱為“Sort 階段”);

③依次讀取<key, value list>,調用用戶自定義的reduce() 函數處理,并將最終結果存到HDFS 上(稱為“Reduce 階段”)。

轉載地址:http://www.open-open.com/lib/view/open1370958898835.html

總結

以上是生活随笔為你收集整理的MapReduce架构设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。