偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

技術分享:Hadoop框架

大數(shù)據(jù) Hadoop
Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成員組成,其中最基礎最重要元素為底層用于存儲集群中所有存儲節(jié)點文件的文件系統(tǒng)HDFS(Hadoop Distributed File System)來執(zhí)行MapReduce程序的MapReduce引擎。

Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成員組成,其中最基礎最重要元素為底層用于存儲集群中所有存儲節(jié)點文件的文件系統(tǒng)HDFS(Hadoop Distributed File System)來執(zhí)行MapReduce程序的MapReduce引擎。 

  • Pig是一個基于Hadoop的大規(guī)模數(shù)據(jù)分析平臺,Pig為復雜的海量數(shù)據(jù)并行計算提供了一個簡單的操作和編程接口
  • Hive是基于Hadoop的一個工具,提供完整的SQL查詢,可以將sql語句轉(zhuǎn)換為MapReduce任務進行運行
  • ZooKeeper:高效的,可拓展的協(xié)調(diào)系統(tǒng),存儲和協(xié)調(diào)關鍵共享狀態(tài);
  • HBase是一個開源的,基于列存儲模型的分布式數(shù)據(jù)庫;
  • HDFS是一個分布式文件系統(tǒng),有著高容錯性的特點,適合那些超大數(shù)據(jù)集的應用程序;
  • MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。

下圖是一個典型的Hadoop集群的部署結(jié)構: 

接著給出Hadoop各組件依賴共存關系: 


HDFS是一個高度容錯性的分布式文件系統(tǒng),可以被廣泛的部署于廉價的PC上。它以流式訪問模式訪問應用程序的數(shù)據(jù),這大大提高了整個系統(tǒng)的數(shù)據(jù)吞吐量,因而非常適合用于具有超大數(shù)據(jù)集的應用程序中。

HDFS的架構如圖所示。HDFS架構采用主從架構(master/slave)。一個典型的HDFS集群包含一個NameNode節(jié)點和多個DataNode節(jié)點。NameNode節(jié)點負責整個HDFS文件系統(tǒng)中的文件的元數(shù)據(jù)的保管和管理,集群中通常只有一臺機器上運行NameNode實例,DataNode節(jié)點保存文件中的數(shù)據(jù),集群中的機器分別運行一個DataNode實例。在HDFS中,NameNode節(jié)點被稱為名稱節(jié)點,DataNode節(jié)點被稱為數(shù)據(jù)節(jié)點。DataNode節(jié)點通過心跳機制與NameNode節(jié)點進行定時的通信。 

NameNode

NameNode可以看作是分布式文件系統(tǒng)中的管理者,存儲文件系統(tǒng)的meta-data,主要負責管理文件系統(tǒng)的命名空間,集群配置信息,存儲塊的復制。

DataNode

DataNode是文件存儲的基本單元。它存儲文件塊在本地文件系統(tǒng)中,保存了文件塊的meta-data,同時周期性的發(fā)送所有存在的文件塊的報告給NameNode。

Client

Client就是需要獲取分布式文件系統(tǒng)文件的應用程序。

以下來說明HDFS如何進行文件的讀寫操作: 

文件寫入

  1. Client向NameNode發(fā)起文件寫入的請求
  2. NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
  3. Client將文件劃分為多個文件塊,根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€DataNode塊中。 

文件讀取

  1. Client向NameNode發(fā)起文件讀取的請求
  2. NameNode返回文件存儲的DataNode的信息
  3. Client讀取文件信息

MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行運算。Map(映射)和Reduce(化簡),采用分而治之思想,先把任務分發(fā)到集群多個節(jié)點上,并行計算,然后再把計算結(jié)果合并,從而得到最終計算結(jié)果。多節(jié)點計算,所涉及的任務調(diào)度、負載均衡、容錯處理等,都由MapReduce框架完成,不需要編程人員關心這些內(nèi)容。

下圖是MapReduce的處理過程: 

用戶提交任務給JobTracer,JobTracer把對應的用戶程序中的Map操作和Reduce操作映射至TaskTracer節(jié)點中;輸入模塊負責把輸入數(shù)據(jù)分成小數(shù)據(jù)塊,然后把它們傳給Map節(jié)點;Map節(jié)點得到每一個key/value對,處理后產(chǎn)生一個或多個key/value對,然后寫入文件;Reduce節(jié)點獲取臨時文件中的數(shù)據(jù),對帶有相同key的數(shù)據(jù)進行迭代計算,然后把終結(jié)果寫入文件。

如果這樣解釋還是太抽象,可以通過下面一個具體的處理過程來理解:(WordCount實例) 

Hadoop的核心是MapReduce,而MapReduce的核心又在于map和reduce函數(shù)。它們是交給用戶實現(xiàn)的,這兩個函數(shù)定義了任務本身。

map函數(shù):接受一個鍵值對(key-value pair)(例如上圖中的Splitting結(jié)果),產(chǎn)生一組中間鍵值對(例如上圖中Mapping后的結(jié)果)。Map/Reduce框架會將map函數(shù)產(chǎn)生的中間鍵值對里鍵相同的值傳遞給一個reduce函數(shù)。

reduce函數(shù):接受一個鍵,以及相關的一組值(例如上圖中Shuffling后的結(jié)果),將這組值進行合并產(chǎn)生一組規(guī)模更小的值(通常只有一個或零個值)(例如上圖中Reduce后的結(jié)果)

但是,Map/Reduce并不是***的,適用于Map/Reduce計算有先提條件:

  • 待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集
  • 每一個小數(shù)據(jù)集都可以完全并行地進行處理

若不滿足以上兩條中的任意一條,則不適合適用Map/Reduce模式。

責任編輯:未麗燕 來源: 搜狐
相關推薦

2010-06-03 19:02:31

Hadoop集群搭建

2010-06-03 18:54:57

Hadoop

2010-06-29 14:51:26

UML建模技術

2009-10-23 15:50:07

接入技術

2015-07-29 10:36:05

hadoop數(shù)據(jù)挖掘

2017-10-19 15:34:52

Hadoop技術機制學習

2021-12-01 15:03:56

Java開發(fā)代碼

2015-04-15 13:19:52

Chinapub讀書會

2016-03-21 10:05:18

2010-07-07 18:00:44

UML類圖建模

2013-01-21 13:22:56

IBMdW

2018-06-14 09:38:53

Linux多核編程

2012-03-28 09:37:15

以太網(wǎng)網(wǎng)絡設備PoE

2010-07-28 12:41:18

Flex組件

2010-07-15 15:21:07

Perl線程

2010-06-02 16:09:05

SVN協(xié)議

2010-05-18 12:50:47

Subversion配

2017-07-03 13:11:39

大數(shù)據(jù)Hadoop模塊介紹

2011-03-24 11:37:41

Hibernate

2015-04-28 14:55:01

HadoopSpark技術
點贊
收藏

51CTO技術棧公眾號