Hadoop基本概念
Hadoop出現(xiàn)的前提環(huán)境
隨著數(shù)據(jù)量的增大帶來(lái)了以下問(wèn)題:
- 如何存儲(chǔ)大量的數(shù)據(jù)?
- 怎么處理這些數(shù)據(jù)?
- 怎樣高效地分析這些數(shù)據(jù)?
- 在數(shù)據(jù)量增長(zhǎng)的情況下如何構(gòu)建一個(gè)解決方案?
在大數(shù)據(jù)領(lǐng)域提出了兩個(gè)概念:
- 分布式文件系統(tǒng),用于存儲(chǔ)大量的數(shù)據(jù)
- 分布式計(jì)算框架MapReduce,高效地分析數(shù)據(jù)
以上兩個(gè)概念組成了一個(gè)名詞叫Hadoop
Hadoop的起源
谷歌發(fā)布了三篇論文:GFS分布式存儲(chǔ)系統(tǒng)、MapReduce分布式計(jì)算框架、BigTable。
| Hadoop | |
|---|---|
| HDFS | GFS |
| MapReduce | MapReduce |
| Hbase | BigTable |
Hadoop與其他分布式系統(tǒng)比較
- Hadoop集群的數(shù)據(jù)首先先金星分布式的存儲(chǔ)
- Hadoop集群上通過(guò)HDFS分布式文件系統(tǒng),會(huì)把存儲(chǔ)的數(shù)據(jù)復(fù)制多分,保證了數(shù)據(jù)的安全性
- 提供了一個(gè)簡(jiǎn)單的醫(yī)用的分布式計(jì)算框架
- Hadoop擴(kuò)展容易
Hadoop版本
Hadoop1x版本中核心是組建就是HDFS和MapReduce;
Hadoop2x版本中核心中增加了YARN;
YARN介紹
- 云操作系統(tǒng),理解為資源管理器,管理集群中的資源(在增加了YARN操作系統(tǒng)之后,MapReduce任務(wù)就是可以跑在YARN平臺(tái)上,通過(guò)YARN平臺(tái)進(jìn)行MapReduce任務(wù)的管理,資源的分配);
- 也可以通過(guò)YARN平臺(tái)運(yùn)行Spark任務(wù),包括Spark可以讀取HDFS上的數(shù)據(jù)文件;
Hadoop生態(tài)圈介紹
數(shù)據(jù)的來(lái)源,在企業(yè)中一般數(shù)據(jù)的來(lái)源分為兩種,第一種是企業(yè)內(nèi)部的數(shù)據(jù),
例如:業(yè)務(wù)數(shù)據(jù)(保存在關(guān)系型數(shù)據(jù)庫(kù)中),應(yīng)用的服務(wù)器日志(日志文件)。(機(jī)構(gòu)化數(shù)據(jù))
第二種外部渠道獲得,例如:用戶(hù)的行為記錄(推薦系統(tǒng)實(shí)現(xiàn)),通過(guò)搜索的關(guān)鍵字、消費(fèi)記錄、爬蟲(chóng)技術(shù)等(非結(jié)構(gòu)化數(shù)據(jù))。
hive(數(shù)據(jù)要進(jìn)行清洗獲取需要的數(shù)據(jù))
sqoop(數(shù)據(jù)導(dǎo)入導(dǎo)出到傳統(tǒng)數(shù)據(jù)庫(kù)中)
flume(日志收集工具)
hbase(數(shù)據(jù)庫(kù)存儲(chǔ))
hdfs
MapReduce
zookeeper
HDFS架構(gòu)
分布式存儲(chǔ)系統(tǒng),分布式的架構(gòu)上存在主/從的架構(gòu)關(guān)系,在HDFS文件系統(tǒng)存在主節(jié)點(diǎn)和從節(jié)點(diǎn)。
主節(jié)點(diǎn):namenode負(fù)責(zé)管理HDFS集群文件中的元數(shù)據(jù)(文件名、文件位置、文件副本)
-
從節(jié)點(diǎn):datanode負(fù)責(zé)存儲(chǔ)真正的數(shù)據(jù)
image
在HDFS中數(shù)據(jù)的存儲(chǔ)是以塊(block)的方式進(jìn)行存儲(chǔ),默認(rèn)塊的大小為128MB。
YARN架構(gòu)
分布式架構(gòu),分為主從架構(gòu);
- 主節(jié)點(diǎn) ResourceManager,負(fù)責(zé)管理集群中的所有資源(cpu、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)IO)。
- 從節(jié)點(diǎn) NodeManager,負(fù)責(zé)管理集群中每一臺(tái)服務(wù)器的資源。
MapReduce架構(gòu)
核心思想,分而治之
- Map端和Reduce端進(jìn)行數(shù)據(jù)分析
- 數(shù)據(jù)在Map階段進(jìn)行分開(kāi)處理,處理完成之后,再交給Reduce進(jìn)行統(tǒng)計(jì),在Map和Reduce中間的階段通過(guò)shuffle來(lái)進(jìn)行連接
