本文內(nèi)容主要在于,整體把握Hadoop體系各個(gè)組成部分,及其各個(gè)組件的功能,宏觀上闡述,為進(jìn)一步學(xué)習(xí)hadoop,打下基礎(chǔ)。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、雷州網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、雷州網(wǎng)絡(luò)營(yíng)銷、雷州企業(yè)策劃、雷州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供雷州建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:aaarwkj.com
1.開源免費(fèi),因?yàn)殚_源,所以用的也放心。
2.社區(qū)活躍,容易溝通
3.設(shè)計(jì)分布式存儲(chǔ)和計(jì)算的方方面面
4.已經(jīng)在企業(yè)中良好運(yùn)作
Hadoop目前已經(jīng)更新到二代,較之一代有很大改進(jìn):
最為主要的區(qū)別就是在HDFS之上和MapReduce之間添加了一個(gè)新的參與則YARN。
到這里,首先說(shuō)明一下,Hadoop最為重要的就兩部分:一分布式存儲(chǔ)(HDFS)二大數(shù)據(jù)計(jì)算(MapRudece)。一代Hadoop運(yùn)行在FDHS之上的計(jì)算框架只有MapReduce,應(yīng)用受到了很大限制,到了二代,YARN就橫空出世。
這里可以簡(jiǎn)單理解YARN就像一個(gè)擴(kuò)展巢,在YARN上面可以運(yùn)行很多的計(jì)算框架了。YARN負(fù)責(zé)集群資源的統(tǒng)一管理和調(diào)度
1分布式存儲(chǔ)系統(tǒng)HDFS(Hadoop Distributed FileSystem)
分布式存儲(chǔ)系統(tǒng)
提供了高可靠性、高擴(kuò)展性和高吞吐率的數(shù)據(jù)存儲(chǔ)服務(wù)
2.資源管理系統(tǒng)YARN(Yet Another Resource Negotiator):
負(fù)責(zé)集群資源統(tǒng)一管理和調(diào)度
3.分布式計(jì)算框架 MapReduce
分布式計(jì)算框架
具有易于編程、高容錯(cuò)性和高擴(kuò)展性等優(yōu)點(diǎn)
簡(jiǎn)單分層模型如下圖所示:
HDFS特點(diǎn):
良好的擴(kuò)展性
高容錯(cuò)性
適合PB級(jí)以上的海量數(shù)據(jù)的存儲(chǔ)
基本原理:
將文件切割分成瞪大的數(shù)據(jù)塊,存儲(chǔ)到多臺(tái)機(jī)器上
將數(shù)據(jù)切分、容錯(cuò),負(fù)責(zé)均衡等功能對(duì)用戶透明化(具體如何實(shí)現(xiàn),不用開發(fā)者過(guò)問(wèn)) 可將HDFS看成一個(gè)容量巨大,且具有高容錯(cuò)性的磁盤
上圖所展示的就是HDFS的工作劃分:可以看出,HDFS主要有兩個(gè)部分組成:
NAMENODE節(jié)點(diǎn)(NN)和DATA NODE(DN)節(jié)點(diǎn)
大數(shù)據(jù)中,HDFS集群以Master-Slave模式運(yùn)行,主要有兩類節(jié)點(diǎn):一個(gè)Namenode(即Master)和多個(gè)Datanode(即Slave)。Namenode管理者文件系統(tǒng)的Namespace。它維護(hù)著文件系統(tǒng)樹(filesystem tree)以及文件樹中所有的文件和文件夾的元數(shù)據(jù)(metadata)。
以上還能看出,ZooKeeper在這里扮演者調(diào)度管理者,同時(shí)也在監(jiān)控著HDFS各個(gè)節(jié)點(diǎn)的狀態(tài)。
因?yàn)?,本文主要是宏觀說(shuō)Haoop這里不不展開說(shuō)了
Hadoop2.0新增的一個(gè)角色
負(fù)責(zé)集群的資源管理和調(diào)度
使得多種計(jì)算框架可以運(yùn)行在一個(gè)集群中
Yarn的特點(diǎn):
良好的擴(kuò)展性,高可用性
對(duì)多種類型的應(yīng)用程序進(jìn)行統(tǒng)一的管理和調(diào)度
自帶了多種多用戶調(diào)度器,適合共享集群環(huán)境
上圖比較直觀反映了,在這個(gè)集群上,不同時(shí)段上
Hadoop(主要指MapReduce) Spark(基于內(nèi)存的計(jì)算框架, in-memory) MPI(也是一種計(jì)算框架)三者上都有性能不足時(shí)候,這樣通過(guò)YARN可以進(jìn)行干預(yù),讓他們之間互補(bǔ),如在MapReduce性能不能完全發(fā)揮是,可以分配少一點(diǎn)資源,讓Spark頂上去,協(xié)調(diào)集群的資源調(diào)度。
上圖,則反映YARN的工作機(jī)制,依然能看出Master-Slave的模式運(yùn)行機(jī)制
這張圖更為直觀,顯示,YARN就像插排一一樣,上面可以擴(kuò)展多種分布式計(jì)算框架,
如批處理的MapReduce、交互式的Tez、流式處理的Storm,圖處理的Giraph,內(nèi)存處理計(jì)算的Spark等等
良好的擴(kuò)展性
高容錯(cuò)性
適合PB級(jí)以上海量數(shù)據(jù)的離線處理
上圖,可以看出 MapReduce工作分成兩塊,Map 和 Rudece:
首先用戶書寫程序,經(jīng)由master分配工作,首先將用戶提交的數(shù)據(jù)Split成若干塊,每塊放入一個(gè)MapWorker作業(yè),這樣就可以并行處理數(shù)據(jù),這個(gè)過(guò)程可以看成分發(fā)處理;處理的結(jié)果先放入本地磁盤中,然后再由 Reduce部分中的worker在計(jì)算,最終輸出結(jié)果,傳入HDFS中去。這里值得注意的是,輸入的文件格式和最終處理的格式始終保持一致的,這也包括中間處理的結(jié)果文件格式。
這張圖,反映的是MapReduce對(duì)文件中出現(xiàn)的單詞統(tǒng)計(jì)的程序,先將文件中的詞拆分幾個(gè)部分,然后在Map作業(yè)處理統(tǒng)計(jì),經(jīng)shuff洗牌,然后交由Rudce處理作業(yè),這個(gè)時(shí)候可以看出,中間處理的數(shù)據(jù)已經(jīng)有所變化,已經(jīng)做了歸并的處理,這個(gè)時(shí)候只要在歸并的基礎(chǔ)上再進(jìn)行統(tǒng)計(jì),將最終的結(jié)果輸出。
下面我們通過(guò)兩張Hadoop生態(tài)系統(tǒng)總圖來(lái)比交一下1.0和2.0的差異:
Hadoop1.0
Hadoop2.0
簡(jiǎn)單說(shuō)明:
各個(gè)組件功能圖中都有標(biāo)明,這里不贅述了。
主要說(shuō)一下Hive,Pig,Mahout
首先,我們要處理數(shù)據(jù),一般是通過(guò)書寫MapReduce程序來(lái)處理輸入的數(shù)據(jù),其代碼是有java書寫。這樣就導(dǎo)致了那些沒(méi)有java基礎(chǔ)但又想要做大數(shù)據(jù)處理的工作者犯難了。
這樣Hive和Pig就登場(chǎng)了,這里可以理解他們是兩位翻譯官。
Hive(Facebook提出)提供了一種類似于傳統(tǒng)Sql語(yǔ)句的Hql語(yǔ)言,來(lái)書寫要處理的數(shù)據(jù)代碼。通過(guò)Hive就可以實(shí)現(xiàn)將Hql寫的代碼,自動(dòng)轉(zhuǎn)變成MapReduce程序。
同理,Pig提出了一種新PigLatin的語(yǔ)言,書寫處理數(shù)據(jù)的程序。他也能轉(zhuǎn)成MapReduce程序
Mahout提供了數(shù)據(jù)挖掘庫(kù),這里包含了大量算法,主要包括三大類:
推薦(Recommendation)
聚類(Clustering)
分類(Classification)
這樣,開發(fā)人員就不發(fā)費(fèi)大量時(shí)間在構(gòu)筑算中,提高工作效率。
Oozie它使得開發(fā)人員能夠調(diào)度電子郵件通知方面的重復(fù)作業(yè),或者調(diào)度使用 Java、UNIX Shell、Apache Hive、Apache Pig和 Apache Sqoop等各種編程語(yǔ)言編寫的重復(fù)作業(yè)。
目前計(jì)算框架和作業(yè)繁多:
MapReduce Storm Hive Pig等
這樣就會(huì)存在以下問(wèn)題:
1. 不同作業(yè)之間存在依賴關(guān)系(DAG)
2. 有的作業(yè)周期執(zhí)行
3. 有的作業(yè)需要定時(shí)執(zhí)行
4. 作業(yè)執(zhí)行狀態(tài)需要監(jiān)控與報(bào)警(發(fā)郵件,短信)
這個(gè)時(shí)候就需要Oozie進(jìn)行統(tǒng)一管理和調(diào)度
HBase:Hadoop的數(shù)據(jù)庫(kù)
高可靠性
高性能
面向列
良好的擴(kuò)展性
組成:
Table表:類似傳統(tǒng)數(shù)據(jù)中的表
ColumnFamily:列族
table在水平方向有一個(gè)或者多個(gè)Column Family組成
一個(gè)column family中可以由任意多個(gè)Column組成
RowKey:行鍵
Table的主鍵
Table中的記錄按照RowKey排序
TimeStamp:時(shí)間戳
每個(gè)行數(shù)據(jù)均對(duì)應(yīng)一個(gè)時(shí)間戳
版本號(hào)
Zookeeper:它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。
ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
覆蓋范圍:HDFS YARN Storm HBaseFlume Dubbo(阿里巴巴) Metaq(阿里巴巴)
Sqoop:(數(shù)據(jù)同步工具)
連接Hadoop與傳統(tǒng)數(shù)據(jù)庫(kù)之間的橋梁
支持多種數(shù)據(jù)庫(kù),包括MySQL、DB2等
插拔式,用戶可根據(jù)需要支持新的數(shù)據(jù)庫(kù)
本質(zhì)上一個(gè)MapReduce程序:
充分利用MapReduce分布式并行的特點(diǎn)MapReduce容錯(cuò)性
Flume(日志搜集工具):
分布式
高可靠性
高容錯(cuò)性
易于定制與擴(kuò)展
分享題目:生態(tài)系統(tǒng)概述
標(biāo)題路徑:http://aaarwkj.com/article38/pcsdsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、軟件開發(fā)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)