自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

技術(shù)分享:Hadoop框架

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

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

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

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

接著給出Hadoop各組件依賴共存關(guān)系: 


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

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

NameNode

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

DataNode

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

Client

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

以下來說明HDFS如何進(jìn)行文件的讀寫操作: 

文件寫入

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

文件讀取

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

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

下圖是MapReduce的處理過程: 

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

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

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

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

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

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

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

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

責(zé)任編輯:未麗燕 來源: 搜狐
相關(guān)推薦

2010-06-03 19:02:31

Hadoop集群搭建

2010-06-03 18:54:57

Hadoop

2015-07-29 10:36:05

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

2010-06-29 14:51:26

UML建模技術(shù)

2017-10-19 15:34:52

Hadoop技術(shù)機(jī)制學(xué)習(xí)

2009-10-23 15:50:07

接入技術(shù)

2013-01-21 13:22:56

IBMdW

2016-03-21 10:05:18

2015-04-15 13:19:52

Chinapub讀書會(huì)

2010-07-07 18:00:44

UML類圖建模

2021-12-01 15:03:56

Java開發(fā)代碼

2017-07-03 13:11:39

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

2018-06-14 09:38:53

Linux多核編程

2012-03-28 09:37:15

以太網(wǎng)網(wǎng)絡(luò)設(shè)備PoE

2012-06-15 09:54:19

FacebookHadoop

2010-06-02 16:09:05

SVN協(xié)議

2010-05-18 12:50:47

Subversion配

2010-07-15 15:21:07

Perl線程

2010-07-28 12:41:18

Flex組件

2015-04-28 14:55:01

HadoopSpark技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)