成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開源框架Hadoop實現分布式計算

開發 架構 分布式 Hadoop
Hadoop相信大家應該有所了解,那么Hadoop的分布式計算你知道嗎,這里就像大家簡單介紹一下分布式計算開源框架Hadoop,歡迎大家一起來學習。

本節和大家一起學習一下分布式計算開源框架Hadoop,本節主要內容有Hadoop概念的介紹和Hadoop相關計算方法,希望通過本節的學習,大家對Hadoop的分布式計算有一定的認識。

分布式計算開源框架Hadoop介紹

引用
Hadoop是Apache開源組織的一個分布式計算開源框架,在很多大型網站上都已經得到了應用,如亞馬遜、Facebook和Yahoo等等。對于我來說,最近的一個使用點就是服務集成平臺的日志分析。服務集成平臺的日志量將會很大,而這也正好符合了分布式計算的適用場景

什么是Hadoop?
搞什么東西之前,***步是要知道What(是什么),然后是Why(為什么),***才是How(怎么做)。但很多開發的朋友在做了多年項目以后,都習慣是先How,然后What,***才是Why,這樣只會讓自己變得浮躁,同時往往會將技術誤用于不適合的場景。

Hadoop框架中最核心的設計就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapReduce就是“任務的分解與結果的匯總”。HDFS是Hadoop分布式文件系統(HadoopDistributedFileSystem)的縮寫,為分布式計算存儲提供了底層支持。

MapReduce從它名字上來看就大致可以看出個緣由,兩個動詞Map和Reduce,“Map(展開)”就是將一個任務分解成為多個任務,“Reduce”就是將分解后多任務處理的結果匯總起來,得出***的分析結果。這不是什么新思想,其實在前面提到的多線程,多任務的設計就可以找到這種思想的影子。不論是現實社會,還是在程序設計中,一項工作往往可以被拆分成為多個任務,任務之間的關系可以分為兩種:一種是不相關的任務,可以并行執行;另一種是任務之間有相互的依賴,先后順序不能夠顛倒,這類任務是無法并行處理的。回到大學時期,教授上課時讓大家去分析關鍵路徑,無非就是找最省時的任務分解執行方式。在分布式系統中,機器集群就可以看作硬件資源池,將并行的任務拆分,然后交由每一個空閑機器資源去處理,能夠極大地提高計算效率,同時這種資源無關性,對于計算集群的擴展無疑提供了***的設計保證。(其實我一直認為Hadoop的卡通圖標不應該是一個小象,應該是螞蟻,分布式計算就好比螞蟻吃大象,廉價的機器群可以匹敵任何高性能的計算機,縱向擴展的曲線始終敵不過橫向擴展的斜線)。任務分解處理以后,那就需要將處理以后的結果再匯總起來,這就是Reduce要做的工作。

MapReduce結構示意圖

集群上的并行計算

MapReduce計算模型非常適合在大量計算機組成的大規模集群上并行運行。圖一中的每一個Map任務和每一個Reduce任務均可以同時運行于一個單獨的計算結點上,可想而知其運算效率是很高的,那么這樣的并行計算是如何做到的呢?

數據分布存儲

Hadoop中的分布式文件系統HDFS由一個管理結點(NameNode)和N個數據結點(DataNode)組成,每個結點均是一臺普通的計算機。在使用上同我們熟悉的單機上的文件系統非常類似,一樣可以建目錄,創建,復制,刪除文件,查看文件內容等。但其底層實現上是把文件切割成Block,然后這些Block分散地存儲于不同的DataNode上,每個Block還可以復制數份存儲于不同的DataNode上,達到容錯容災之目的。NameNode則是整個HDFS的核心,它通過維護一些數據結構,記錄了每一個文件被切割成了多少個Block,這些Block可以從哪些DataNode中獲得,各個DataNode的狀態等重要信息。如果你想了解更多的關于HDFS的信息,可進一步閱讀參考資料:TheHadoopDistributedFileSystem:ArchitectureandDesign

分布式并行計算

Hadoop中有一個作為主控的JobTracker,用于調度和管理其它的TaskTracker,JobTracker可以運行于集群中任一臺計算機上。TaskTracker負責執行任務,必須運行于DataNode上,即DataNode既是數據存儲結點,也是計算結點。JobTracker將Map任務和Reduce任務分發給空閑的TaskTracker,讓這些任務并行運行,并負責監控任務的運行情況。如果某一個TaskTracker出故障了,JobTracker會將其負責的任務轉交給另一個空閑的TaskTracker重新運行。

本地計算

數據存儲在哪一臺計算機上,就由這臺計算機進行這部分數據的計算,這樣可以減少數據在網絡上的傳輸,降低對網絡帶寬的需求。在Hadoop這樣的基于集群的分布式并行系統中,計算結點可以很方便地擴充,而因它所能夠提供的計算能力近乎是無限的,但是由是數據需要在不同的計算機之間流動,故網絡帶寬變成了瓶頸,是非常寶貴的,“本地計算”是最有效的一種節約網絡帶寬的手段,業界把這形容為“移動計算比移動數據更經濟”。

Hadoop分布存儲與并行計算

任務粒度
把原始大數據集切割成小數據集時,通常讓小數據集小于或等于HDFS中一個Block的大小(缺省是64M),這樣能夠保證一個小數據集位于一臺計算機上,便于本地計算。有M個小數據集待處理,就啟動M個Map任務,注意這M個Map任務分布于N臺計算機上并行運行,Reduce任務的數量R則可由用戶指定。

Partition

把Map任務輸出的中間結果按key的范圍劃分成R份(R是預先定義的Reduce任務的個數),劃分時通常使用hash函數如:hash(key)modR,這樣可以保證某一段范圍內的key,一定是由一個Reduce任務來處理,可以簡化Reduce的過程。

Combine

在partition之前,還可以對中間結果先做combine,即將中間結果中有相同key的<key,value>對合并成一對。combine的過程與Reduce的過程類似,很多情況下就可以直接使用Reduce函數,但combine是作為Map任務的一部分,在執行完Map函數后緊接著執行的。Combine能夠減少中間結果中<key,value>對的數目,從而減少網絡流量。

Reduce任務從Map任務結點取中間結果
Map任務的中間結果在做完Combine和Partition之后,以文件形式存于本地磁盤。中間結果文件的位置會通知主控JobTracker,JobTracker再通知Reduce任務到哪一個DataNode上去取中間結果。注意所有的Map任務產生中間結果均按其Key用同一個Hash函數劃分成了R份,R個Reduce任務各自負責一段Key區間。每個Reduce需要向許多個Map任務結點取得落在其負責的Key區間內的中間結果,然后執行Reduce函數,形成一個最終的結果文件。

任務管道

有R個Reduce任務,就會有R個最終結果,很多情況下這R個最終結果并不需要合并成一個最終結果。因為這R個最終結果又可以做為另一個計算任務的輸入,開始另一個并行計算任務。就是MapReduce大致的結構圖,在Map前還可能會對輸入的數據有Split(分割)的過程,保證任務并行效率,在Map之后還會有Shuffle(混合)的過程,對于提高Reduce的效率以及減小數據傳輸的壓力有很大的幫助。后面會具體提及這些部分的細節。

HDFS是分布式計算的存儲基石,Hadoop的分布式文件系統和其他分布式文件系統有很多類似的特質。分布式文件系統基本的幾個特點:
對于整個集群有單一的命名空間。
數據一致性。適合一次寫入多次讀取的模型,客戶端在文件沒有被成功創建之前無法看到文件存在。
文件會被分割成多個文件塊,每個文件塊被分配存儲到數據節點上,而且根據配置會由復制文件塊來保證數據的安全性。本節關于分布式計算開源框架Hadoop方面的內容介紹完畢。

【編輯推薦】

  1. Hadoop概念及其用法專家講解
  2. 專家指導 如何進行Hadoop分布式集群配置
  3. Hadoop集群與Hadoop性能優化
  4. HadoopHBase實現配置簡單的單機環境
  5. Hadoop配置指導手冊

 

責任編輯:佚名 來源: it168.com
相關推薦

2012-09-19 14:09:20

Hadoop開源

2015-10-15 14:05:51

StormSparkMapReduce

2012-05-21 16:28:29

LinuxHadoop

2024-03-01 09:53:34

2017-09-01 05:35:58

分布式計算存儲

2015-06-01 10:31:43

微軟開源rDSN

2015-05-12 13:03:54

開源分布式存儲HDFS

2023-04-19 16:51:54

分布式Primus開源

2011-12-22 09:21:04

云計算Hadoop大數據

2014-07-15 11:15:44

hadoop分布式部署

2019-09-26 15:43:52

Hadoop集群防火墻

2017-08-10 10:17:32

Hadoop分布式搭建

2016-01-06 10:22:18

開源eBayHadoop

2019-11-15 10:16:27

分布式任務框架

2021-12-09 10:45:19

分布式事務框架

2013-03-26 13:43:08

Java分布式計算

2022-06-27 08:21:05

Seata分布式事務微服務

2021-09-09 15:45:17

機器學習人工智能Ray

2023-06-26 00:14:28

Openjob分布式任務

2009-06-19 14:23:41

RMIJava分布式計算
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久免费观看视频 | 黄色毛片视频 | 久久一级 | 亚洲精品av在线 | 97超碰免费 | 国产精品视频97 | 日本午夜精品一区二区三区 | 亚洲精品视频导航 | 欧美一区二区免费 | 在线欧美激情 | 国产免费一区二区三区免费视频 | 羞羞视频在线观看 | 成人性生交大免费 | 亚洲成网站 | 日韩视频中文字幕 | 久久精品黄色 | av一级在线观看 | 国产精品毛片一区二区三区 | 国产欧美一区二区久久性色99 | 91中文字幕在线 | 黄色av大片| 久久免费小视频 | 国产精品久久久久久久免费大片 | 成年人在线 | 欧美精品在线免费 | 国产精品中文字幕在线播放 | 免费看黄视频网站 | 在线国产一区二区 | 高清人人天天夜夜曰狠狠狠狠 | 欧美日韩综合精品 | 成人在线免费 | 亚洲人成在线观看 | 日日噜噜噜夜夜爽爽狠狠视频, | 国产黄视频在线播放 | 久久久精品网 | 一区二区在线 | 隔壁老王国产在线精品 | 精品国产久 | 涩涩视频网站在线观看 | 天天射中文 | 亚洲xxxxx|