亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MapReduce 實驗 (一) 原理

發布時間:2020-07-22 13:49:59 來源:網絡 閱讀:1447 作者:pcdog 欄目:大數據

官網

http://hadoop.apache.org/

hadoop三大組件

HDFS:分布式存儲系統

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html

MapReduce:分布式計算系統

http://hadoop.apache.org/docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

YARN: hadoop 的資源調度系統

http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/YARN.html

回想起以前做過一個中鐵軌道激光測量軌道平整的項目,一段50KM的數據庫大小是400G,光是找空間復制出來就是頭大,現在有了分布式的數據庫和計算平臺就可以非常方便的進行。

MapReduce 實驗 (一) 原理

MapReduce 實驗 (一) 原理

Mapper

映射器將輸入鍵/值對映射到一組中間鍵/值對中。

  • 映射是將輸入記錄轉換為中間記錄的單個任務。轉換后的中間記錄不需要與輸入記錄相同的類型。給定的輸入對可以映射到零或多個輸出對。
  • Hadoop的MapReduce框架產生一個地圖的任務由每個InputSplit工作InputFormat生成。
  • 總的來說,制圖的實現是通過工作傳遞到工作setmapperclass(類)的方法。框架調用圖(writablecomparable,寫,上下文)每個鍵/值對,任務在InputSplit對。然后應用程序可以覆蓋清除(上下文)方法來執行任何必需的清理工作。
  • 輸出對不需要與輸入對相同的類型。給定的輸入對可以映射到零或多個輸出對。輸出對被調用的上下文所寫(writablecomparable,可寫)。

應用程序可以使用計數器報告其統計數據。

  • 所有與給定輸出鍵相關聯的中間值隨后由框架分組,并傳遞給減速器以確定最終輸出。用戶可以通過指定一個比較器通過工作控制分組。setgroupingcomparatorclass(類)。
  • 對映射器輸出進行排序,然后對每個減速器進行分區。分區的總數與任務的減少任務數相同。用戶可以控制鍵(因此記錄)通過實現一個自定義的分割器去哪。
  • 用戶可以選擇指定一個合成器,通過工作。setcombinerclass(類),執行中間輸出的地方聚集,這有助于減少從制圖到減速器的數據量。
  • 中間排序的輸出總是存儲在一個簡單(鍵、鍵、值、值)格式中。應用程序可以控制的話,又如何,中間輸出被壓縮和compressioncodec可以通過配置。

Reducer

  • 減速減少一組中間值份額較小的一組值的關鍵。
  • 數量減少了工作組通過工作的用戶。setnumreducetasks(int)。
  • 總的來說,減速器的實現是通過崗位工作經工作。setreducerclass(類)方法,可以重寫它初始化自己。框架調用減少(writablecomparable,個<寫>,<上下文)為每個關鍵方法(值列表)>在分組的輸入對。應用程序可以重寫清理(上下文)執行任何所需的清理方法。
  • 減速器有3個主要階段:洗牌,排序和減少。

Shuffle洗牌

  • 輸入減速器的排序輸出的映射。在這一階段的框架帶來的所有映射器輸出相應的分區,通過HTTP。

Partitioner分區

  • partitions空間分區是關鍵。
  • 分區分配的關鍵的中間圖的輸出。“密鑰或密鑰的子集的冰derive)使用的分區,typically A市的哈希函數。的總數partitions冰茶一樣的號碼reduce任務的工作。這hence米,江森自控的reduce任務的中間密鑰和hence記錄)的冰后期兩個還原。
  • hashpartitioner是默認的分區。

Counter計數器

  • 計數器是MapReduce應用程序報告其統計數據的工具。
  • 映射器和減速器實現可以使用計數器報告統計數據。
  • Hadoop的MapReduce的附帶了一個普遍有用的映射器,減速器庫,并計劃。

其實MapReduce講的就是分而治之的程序處理理念,把一個復雜的任務劃分為若干個簡單的任務分別來做。另外,就是程序的調度問題,哪些任務給哪些Mapper來處理是一個著重考慮的問題。MapReduce的根本原則是信息處理的本地化,哪臺PC持有相應要處理的數據,哪臺PC就負責處理該部分的數據,這樣做的意義在于可以減少網絡通訊負擔。最后補上一副經典的圖來做最后的補充,畢竟,圖表往往比文字更有說服力。

MapReduce 實驗 (一) 原理

如果那個400G的數據庫還在,分成400個任務,每個任務進行1g左右數據處理,理論上速度是原來的400倍。

具體請參考google mapreduce

https://wenku.baidu.com/view/1aa777fd04a1b0717fd5dd4a.html

MapReduce如何工作

讓我們用一個例子來理解這一點 –

假設有以下的輸入數據到 MapReduce 程序,統計以下數據中的單詞數量:

Welcome to Hadoop Class

Hadoop is good

Hadoop is bad

MapReduce 實驗 (一) 原理

MapReduce 任務的最終輸出是:

bad

1

Class

1

good

1

Hadoop

3

is

2

to

1

Welcome

1

這些數據經過以下幾個階段

輸入拆分:

輸入到MapReduce工作被劃分成固定大小的塊叫做 input splits ,輸入折分是由單個映射消費輸入塊。

映射 - Mapping

這是在 map-reduce 程序執行的第一個階段。在這個階段中的每個分割的數據被傳遞給映射函數來產生輸出值。在我們的例子中,映射階段的任務是計算輸入分割出現每個單詞的數量(更多詳細信息有關輸入分割在下面給出)并編制以某一形式列表<單詞,出現頻率>

重排

這個階段消耗映射階段的輸出。它的任務是合并映射階段輸出的相關記錄。在我們的例子,同樣的詞匯以及它們各自出現頻率。

Reducing

在這一階段,從重排階段輸出值匯總。這個階段結合來自重排階段值,并返回一個輸出值。總之,這一階段匯總了完整的數據集。

在我們的例子中,這個階段匯總來自重排階段的值,計算每個單詞出現次數的總和。

MapReduce如何組織工作?

Hadoop 劃分工作為任務。有兩種類型的任務:

  1. Map 任務 (分割及映射)
  2. Reduce 任務 (重排,還原)

如上所述

完整的執行流程(執行 Map 和 Reduce 任務)是由兩種類型的實體的控制,稱為

  1. Jobtracker : 就像一個主(負責提交的作業完全執行)
  2. 多任務跟蹤器 : 充當角色就像從機,它們每個執行工作

對于每一項工作提交執行在系統中,有一個 JobTracker 駐留在 Namenode 和 Datanode 駐留多個 TaskTracker。

MapReduce 實驗 (一) 原理

  • 作業被分成多個任務,然后運行到集群中的多個數據節點。
  • JobTracker的責任是協調活動調度任務來在不同的數據節點上運行。
  • 單個任務的執行,然后由 TaskTracker 處理,它位于執行工作的一部分,在每個數據節點上。
  • TaskTracker 的責任是發送進度報告到JobTracker。
  • 此外,TaskTracker 周期性地發送“心跳”信號信息給 JobTracker 以便通知系統它的當前狀態。
  • 這樣 JobTracker 就可以跟蹤每項工作的總體進度。在任務失敗的情況下,JobTracker 可以在不同的 TaskTracker 重新調度它。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大足县| 高雄市| 弥勒县| 神池县| 贞丰县| 武安市| 卢龙县| 莱阳市| 张掖市| 沽源县| 晋中市| 六安市| 金湖县| 越西县| 九龙县| 五莲县| 涿州市| 泸定县| 依兰县| 临汾市| 遂川县| 阿拉善盟| 德令哈市| 光泽县| 黄梅县| 交口县| 北海市| 乌拉特前旗| 金门县| 北流市| 淄博市| 离岛区| 斗六市| 萝北县| 龙海市| 遂昌县| 遂宁市| 团风县| 溧阳市| 临沭县| 永平县|