? Hadoop 實(shí)戰(zhàn)訓(xùn)練(一)?

Hadoop 簡介

Hadoop是Apache旗下的一款開源分布式計算平臺,它通過以分布式文件系統(tǒng)HDFS和MapReduce為核心,為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)。

Hadoop 結(jié)構(gòu)

  • HDFS:它是一個分布式文件系統(tǒng),以高容錯性為設(shè)計原則,所以可以設(shè)計部署在低廉的硬件上。
HDFS設(shè)計目標(biāo):
1.檢測和快速恢復(fù)硬件故障。
2.流式的數(shù)據(jù)訪問。
3.簡化一致性模型。
4.通信協(xié)議。
  • MapReduce:它是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。

  • Core/Common:為其他子項(xiàng)目提供支持,主要包括FileSystem、RPC和串行化庫。

  • Avro:用于數(shù)據(jù)序列化系統(tǒng)。

Avro的支持:
1.提供豐富的數(shù)據(jù)結(jié)構(gòu)類型。
2.快速可壓縮的二進(jìn)制數(shù)據(jù)格式。
3.存儲持久性數(shù)據(jù)的文件集。
4.遠(yuǎn)程調(diào)用RPC的功能和簡單的動態(tài)語言集成功能。
  • Chukwa:是開源的數(shù)據(jù)收集系統(tǒng),用于監(jiān)控和分析大型分布式系統(tǒng)的數(shù)據(jù)。

  • Hive:建立在Hadoop基礎(chǔ)上的數(shù)據(jù)倉庫,提供了一些用于數(shù)據(jù)整理、特殊查詢和分析存儲在Hadoop文件中的數(shù)據(jù)集的工具。

  • HBase:是一個分布式的、面向列的開源數(shù)據(jù)庫。

  • Pig:是一個對大型數(shù)據(jù)集進(jìn)行分析和評估的平臺。

Hadoop核心之HDFS

HDFS采用了主從結(jié)構(gòu)模型(Master/Slave),一個HDFS集群是由一個NameNode和若干個DataNode組成的。其中NameNode作為主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對文件的訪問操作;集群中的DataNode管理存儲的數(shù)據(jù),由NameNode統(tǒng)一調(diào)度。

  • 文件寫入
1.Client向NameNode發(fā)起文件寫入請求。
2.NameNode根據(jù)文件大小和文件塊的配置情況,返回給Client它所管理的DataNode的信息。
3.Client將文件劃分為多個Block,根據(jù)DataNode的地址信息,按順序?qū)⑵鋵懭朊恳粋€DataNode中。
  • 文件讀取
1.Client向NameNode發(fā)起讀取文件的請求。
2.NameNode返回文件存儲的DataNode信息。
3.Client讀取文件信息。
  • 文件塊復(fù)制
1.NameNode發(fā)現(xiàn)部分文件的Block不符合最小復(fù)制數(shù)這一要求或部分DataNode失效。
2.通知DataNode相互復(fù)制Block。
3.DataNode開始直接相互復(fù)制Block。

Hadoop核心之MapReduce

MapReduce是一種并行編程模式,由一個單獨(dú)運(yùn)行在主節(jié)點(diǎn)上的JobTracker和運(yùn)行在每個集群從節(jié)點(diǎn)上的TaskTracker共同組成的。主節(jié)點(diǎn)負(fù)責(zé)調(diào)度構(gòu)成一個作業(yè)的所有任務(wù),這些任務(wù)分布在不同的從節(jié)點(diǎn)上。主節(jié)點(diǎn)監(jiān)控他們的執(zhí)行情況,并且重新執(zhí)行之前失敗的任務(wù);從節(jié)點(diǎn)僅負(fù)責(zé)由主節(jié)點(diǎn)指派的任務(wù)。當(dāng)一個Job被提交時,JobTracker接收到提交作業(yè)和配置信息之后,就會將配置信息等分發(fā)給從節(jié)點(diǎn),同時調(diào)度任務(wù)并監(jiān)控TaskTracker的執(zhí)行。

MapReduce數(shù)據(jù)流圖.jepg

基本原理

1. 數(shù)據(jù)分布存儲 (HDFS)
2. 分布式并行計算 (JobTracker & TaskTracker)
3. 本地計算 
4. 任務(wù)粒度 (默認(rèn) block 64MB)
5. 數(shù)據(jù)分割 (Partition)
6. 數(shù)據(jù)合并 (Combine)
7. Reduce 
8. 任務(wù)管道 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容