Hadoop簡(jiǎn)介
Hadoop是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu)卦绣,主要解決海量數(shù)據(jù)的存儲(chǔ)和分析計(jì)算的問題遭垛。Hadoop已經(jīng)形成了其自己的生態(tài)圈。
Hadoop誕生
誕生于谷歌的三篇論文GFS,MapReduce,BigTable
Hadoop優(yōu)勢(shì)
- 高可靠性
單節(jié)點(diǎn)宕機(jī)堤魁,數(shù)據(jù)可回復(fù) - 高擴(kuò)展性
可以動(dòng)態(tài)的擴(kuò)展結(jié)點(diǎn) - 高效性
并行工作,加快任務(wù)處理速度 - 高容錯(cuò)性
能夠自動(dòng)將失敗的任務(wù)重新分配
Hadoop組成
HDFS概述
HDFS由三部分組成
- NameNode(nn):存儲(chǔ)文件的元數(shù)據(jù)(文件名返十,文件目錄屬性妥泉,文件屬性,文件的塊列表和塊所在的DataNode)
- DataNode(dn):再本地文件系統(tǒng)存儲(chǔ)文件塊數(shù)據(jù)吧慢,一級(jí)塊數(shù)據(jù)的校驗(yàn)和
-
SecondaryNode(2nn):每段時(shí)間對(duì)nn的元數(shù)據(jù)進(jìn)行復(fù)制
image.png
Yarn概述
Yet Another Resource Negotiator簡(jiǎn)稱YARN 涛漂,另一種資源(CPU,內(nèi)存等)協(xié)調(diào)者检诗,是Hadoop的資源管理器匈仗。
MapReduce概述
MapReduce將計(jì)算過程分為兩個(gè)階段:Map和Reduce
1)Map階段并行處理輸入數(shù)據(jù)
2)Reduce階段對(duì)Map結(jié)果進(jìn)行匯總
HDFS,MapReduce逢慌,Yarn直接的協(xié)作
大數(shù)據(jù)生態(tài)體系
圖中涉及的技術(shù)名詞解釋如下:
1)Sqoop:Sqoop是一款開源的工具悠轩,主要用于在Hadoop、Hive與傳統(tǒng)的數(shù)據(jù)庫(MySQL)間進(jìn)行數(shù)據(jù)的傳遞攻泼,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(例如 :MySQL火架,Oracle 等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中忙菠。
2)Flume:Flume是一個(gè)高可用的何鸡,高可靠的,分布式的海量日志采集牛欢、聚合和傳輸?shù)南到y(tǒng)骡男,F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)傍睹;
3)Kafka:Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)隔盛;
4)Spark:Spark是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架∈拔龋可以基于Hadoop上存儲(chǔ)的大數(shù)據(jù)進(jìn)行計(jì)算吮炕。
5)Flink:Flink是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架。用于實(shí)時(shí)計(jì)算的場(chǎng)景較多访得。
6)Oozie:Oozie是一個(gè)管理Hadoop作業(yè)(job)的工作流程調(diào)度管理系統(tǒng)龙亲。
7)Hbase:HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫悍抑。HBase不同于一般的關(guān)系數(shù)據(jù)庫鳄炉,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫。
8)Hive:Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具传趾,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表迎膜,并提供簡(jiǎn)單的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行浆兰。其優(yōu)點(diǎn)是學(xué)習(xí)成本低磕仅,可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用簸呈,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析榕订。
9)ZooKeeper:它是一個(gè)針對(duì)大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)蜕便、名字服務(wù)劫恒、分布式同步、組服務(wù)等。