大數(shù)據(jù)技術(shù)原理與應(yīng)用_第1頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用_第2頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用_第3頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用_第4頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Chap02分布式處理軟件架構(gòu)Hadoop,提綱,2.1概述2.2Hadoop項(xiàng)目結(jié)構(gòu)2.3Hadoop的安裝與使用2.4Hadoop集群的部署與使用,2.2Hadoop項(xiàng)目結(jié)構(gòu),Hadoop的項(xiàng)目結(jié)構(gòu)不斷豐富發(fā)展,已經(jīng)形成一個(gè)豐富的Hadoop生態(tài)系統(tǒng),2.2Hadoop項(xiàng)目結(jié)構(gòu),HDFS是什么,分布式文件系統(tǒng)冗余存儲面向大文件存儲設(shè)計(jì)面向批量插入設(shè)計(jì)基于商用機(jī)器提供可靠的數(shù)據(jù)存儲容忍部分節(jié)點(diǎn)故障,HDFS,Refercece:/docs/r1.0.4/hdfs_design.html,HDFS系統(tǒng)架構(gòu)圖,HDFS相關(guān)術(shù)語,HDFS核心功能,讀取

2、文件流程,1、使用HDFSClient,向遠(yuǎn)程的Namenode發(fā)起RPC請求;2、Namenode會視情況返回文件的部分或者全部block列表,對于每個(gè)block,Namenode都會返回有該block拷貝的datanode地址;3-4、HDFSClient選取離客戶端最接近的datanode來讀取block;5、當(dāng)讀完列表的block后,如果文件讀取還沒有結(jié)束,客戶端開發(fā)庫會繼續(xù)向Namenode獲取下一批的block列表。6、讀取完當(dāng)前block的數(shù)據(jù)后,關(guān)閉與當(dāng)前的datanode連接,并為讀取下一個(gè)block尋找最佳的datanode;注:讀取完一個(gè)block都會進(jìn)行checksum

3、驗(yàn)證,如果讀取datanode時(shí)出現(xiàn)錯(cuò)誤,客戶端會通知Namenode,然后再從下一個(gè)擁有該block拷貝的datanode繼續(xù)讀。,寫入文件流程,HDFSClient向遠(yuǎn)程的Namenode發(fā)起RPC請求;Namenode會檢查要創(chuàng)建的文件是否已經(jīng)存在,創(chuàng)建者是否有權(quán)限進(jìn)行操作,成功則會為文件創(chuàng)建一個(gè)記錄,否則會讓客戶端拋出異常;當(dāng)客戶端開始寫入文件的時(shí)候,開發(fā)庫會將文件切分成多個(gè)packets,并在內(nèi)部以dataqueue的形式管理這些packets,并向Namenode申請新的blocks,獲取用來存儲replicas的合適的datanodes列表,列表的大小根據(jù)在Namenode中對r

4、eplication的設(shè)置而定。開始以pipeline(管道)的形式將packet寫入所有的replicas中。開發(fā)庫把packet以流的方式寫入第一個(gè)datanode,該datanode把該packet存儲之后,再將其傳遞給在此pipeline中的下一個(gè)datanode,直到最后一個(gè)datanode,這種寫數(shù)據(jù)的方式呈流水線的形式。最后一個(gè)datanode成功存儲之后會返回一個(gè)ackpacket,在pipeline里傳遞至客戶端,在客戶端的開發(fā)庫內(nèi)部維護(hù)著ackqueue,成功收到datanode返回的ackpacket后會從ackqueue移除相應(yīng)的packet。如果傳輸過程中,有某個(gè)da

5、tanode出現(xiàn)了故障,那么當(dāng)前的pipeline會被關(guān)閉,出現(xiàn)故障的datanode會從當(dāng)前的pipeline中移除,剩余的block會繼續(xù)剩下的datanode中繼續(xù)以pipeline的形式傳輸,同時(shí)Namenode會分配一個(gè)新的datanode,保持replicas設(shè)定的數(shù)量。,HDFS不擅長的,多數(shù)據(jù)中心情況低延遲數(shù)據(jù)訪問需求(10ms)大量的小文件多個(gè)數(shù)據(jù)寫入者,HadoopMapReduce,HadoopMapReduce是什么?,一個(gè)在大型計(jì)算機(jī)集群上快速分發(fā)計(jì)算的編程模型一個(gè)組織執(zhí)行計(jì)算的操作框架其中一個(gè)開源實(shí)現(xiàn)即HadoopMapReduce,MapReduce并行處理的基本

6、過程,CitefromDeanandGhemawat(OSDI2004),1.有一個(gè)待處理的大數(shù)據(jù),被劃分為大小相同的數(shù)據(jù)塊(如64MB),及與此相應(yīng)的用戶作業(yè)程序,2.系統(tǒng)中有一個(gè)負(fù)責(zé)調(diào)度的主節(jié)點(diǎn)(Master),以及數(shù)據(jù)Map和Reduce工作節(jié)點(diǎn)(Worker),MapReduce并行處理的基本過程,CitefromDeanandGhemawat(OSDI2004),3.用戶作業(yè)程序提交給主節(jié)點(diǎn),4.主節(jié)點(diǎn)為作業(yè)程序?qū)ふ液团鋫淇捎玫腗ap節(jié)點(diǎn),并將程序傳送給map節(jié)點(diǎn),5.主節(jié)點(diǎn)也為作業(yè)程序?qū)ふ液团鋫淇捎玫腞educe節(jié)點(diǎn),并將程序傳送給Reduce節(jié)點(diǎn),MapReduce并行處理的基本

7、過程,CitefromDeanandGhemawat(OSDI2004),6.主節(jié)點(diǎn)啟動每個(gè)Map節(jié)點(diǎn)執(zhí)行程序,每個(gè)map節(jié)點(diǎn)盡可能讀取本地或本機(jī)架的數(shù)據(jù)進(jìn)行計(jì)算,7.每個(gè)Map節(jié)點(diǎn)處理讀取的數(shù)據(jù)塊,并做一些數(shù)據(jù)整理工作(combining,sorting等)并將中間結(jié)果存放在本地;同時(shí)通知主節(jié)點(diǎn)計(jì)算任務(wù)完成并告知中間結(jié)果數(shù)據(jù)存儲位置,MapReduce并行處理的基本過程,CitefromDeanandGhemawat(OSDI2004),8.主節(jié)點(diǎn)等所有Map節(jié)點(diǎn)計(jì)算完成后,開始啟動Reduce節(jié)點(diǎn)運(yùn)行;Reduce節(jié)點(diǎn)從主節(jié)點(diǎn)所掌握的中間結(jié)果數(shù)據(jù)位置信息,遠(yuǎn)程讀取這些數(shù)據(jù),9.Reduce

8、節(jié)點(diǎn)計(jì)算結(jié)果匯總輸出到一個(gè)結(jié)果文件即獲得整個(gè)處理結(jié)果,MapReduce并行處理的基本過程,CitefromDeanandGhemawat(OSDI2004),完整計(jì)算過程,MR簡例(WordCount),HadoopYARN,Hadoop1.0VSHadoop2.0,產(chǎn)生背景,直接源于MRv1在幾個(gè)方面的缺陷擴(kuò)展性受限單點(diǎn)故障難以支持MR之外的計(jì)算多計(jì)算框架各自為戰(zhàn),數(shù)據(jù)共享困難MR:離線計(jì)算框架Storm:實(shí)時(shí)計(jì)算框架Spark:內(nèi)存計(jì)算框架,Hadoop1.0MR調(diào)度,MapReduce1.0缺點(diǎn),JobTracker是Map-reduce的集中處理點(diǎn),存在單點(diǎn)故障。JobTracker

9、完成了太多的任務(wù),造成了過多的資源消耗,當(dāng)map-reducejob非常多的時(shí)候,會造成很大的內(nèi)存開銷。在TaskTracker端,以map/reducetask的數(shù)目作為資源的表示過于簡單,沒有考慮到cpu/內(nèi)存的占用情況。MapReduce框架在有任何重要的或者不重要的變化(例如bug修復(fù),性能提升和特性化)時(shí),都會強(qiáng)制進(jìn)行系統(tǒng)級別的升級更新。強(qiáng)制讓分布式集群系統(tǒng)的每一個(gè)用戶端同時(shí)更新。,HadoopYARNMR調(diào)度,YarnvsMR1.0,MR1.0JobTracker資源管理任務(wù)調(diào)度、監(jiān)控YarnResourceManager調(diào)度、啟動每一個(gè)Job所屬的ApplicationMaste

10、r、另外監(jiān)控ApplicationMasterApplicationMaster負(fù)責(zé)一個(gè)Job生命周期內(nèi)的所有工作,類似老的框架中JobTracker,HadoopYARN模塊組成,ResourceManager處理客戶端請求啟動/監(jiān)控ApplicationMaster監(jiān)控NodeManager資源分配與調(diào)度NodeManager單個(gè)節(jié)點(diǎn)上的資源管理處理來自ResourceManager的命令處理來自ApplicationMaster的命令A(yù)pplicationMaster數(shù)據(jù)切分為應(yīng)用程序申請資源,并分配給內(nèi)部任務(wù)任務(wù)監(jiān)控與容錯(cuò),HadoopYARN運(yùn)行流程,HBASE,需求,Google的

11、結(jié)構(gòu)化數(shù)據(jù)存儲需求低成本可擴(kuò)展地處理以億為單位的數(shù)據(jù)表(海量)眾多的列,但并非每列都有數(shù)據(jù),且經(jīng)常只訪問很少的列(稀疏)高吞吐量和高并發(fā)(快速)HBase的原型GoogleBigtable,傳統(tǒng)RDBMS,并行Cache高訪問量復(fù)雜,難以解決,MapReduce?,Map/ReduceMapReduce程序能滿足高并發(fā)要求嗎?全文件掃描效率行嗎?,答案,因?yàn)镽DBMS和MapReduce不能滿足要求海量結(jié)構(gòu)化數(shù)據(jù)存儲需求眾多的列,但并非每列都有數(shù)據(jù),且經(jīng)常只訪問很少的列(稀疏)低成本可擴(kuò)展地處理以十億為單位的數(shù)據(jù)表(海量)高吞吐量和高并發(fā)(快速)方案:BigtableHBase,HBase是什

12、么,Hbase是一種面向列的(稀疏),基于HDFS的(海量),高性能(快速)分布式數(shù)據(jù)庫系統(tǒng)利用HadoopHDFS作為其文件存儲系統(tǒng),提供高可靠性、高性能、列存儲、可伸縮、實(shí)時(shí)讀寫的數(shù)據(jù)庫系統(tǒng)。利用HadoopMapReduce來處理HBase中的海量數(shù)據(jù)利用Zookeeper作為協(xié)同服務(wù)。,Hbase特點(diǎn),水平擴(kuò)展,面向列,范圍查詢,可靠性,高性能隨機(jī)讀/寫,和Hadoop無縫集成,HbasevsRDBMS,水平擴(kuò)展,數(shù)據(jù)量太大了,讀寫性能下降?傳統(tǒng)方案:分庫分表(遷移數(shù)據(jù),中間層)HBase:啥都不用做,加機(jī)器即可,且性能平穩(wěn)。,HDFS,Hbase存儲結(jié)構(gòu),水平擴(kuò)展,如何做到的?當(dāng)st

13、oreFile多了后,HBase會自動compact;當(dāng)rows多了后,HBase會自動將regionsplit;HBase會定時(shí)對RegionServer的Region數(shù)進(jìn)行balance;RegionServer下線,Master會重新分配其負(fù)責(zé)的Region到其他的RegionServer;RegionServer上線后,當(dāng)Master進(jìn)行balance時(shí)會遷移一些Region到新的RegionServer。,面向列,動態(tài)增刪schema?傳統(tǒng)方案:停機(jī)維護(hù);HBase:No,ColumnQualifier可動態(tài)增刪。,面向列,如何做到的?以ColumnFamily為存儲單元;K/V方式

14、存儲。,高性能隨機(jī)讀/寫,如何做到的?隨機(jī)讀K/V存儲;Cache;Split;Balance。隨機(jī)寫(相對而言)Cache+WAL;Compact;Split;Balance;,數(shù)據(jù)可靠性,借助HDFS保證數(shù)據(jù)的可靠;HLogFile;恢復(fù)機(jī)制。,Hadoop其他組件,Zookeeper,ZooKeeper是Apache軟件基金會下的一個(gè)為大型分布式計(jì)算提供開源的分布式配置服務(wù)、同步服務(wù)和命名注冊的項(xiàng)目。曾是Hadoop項(xiàng)目的一部分,后來獨(dú)立。項(xiàng)目地址:/,Pig,Pig是一個(gè)基于Hadoop的大規(guī)模數(shù)據(jù)分析平臺,它提供的SQL-LIKE語

15、言叫PigLatin,該語言的編譯器會把類SQL的數(shù)據(jù)分析請求轉(zhuǎn)換為一系列經(jīng)過優(yōu)化處理的MapReduce運(yùn)算。Pig為復(fù)雜的海量數(shù)據(jù)并行計(jì)算提供了一個(gè)簡單的操作和編程接口。Pig極大的簡化了Hadoop的使用項(xiàng)目地址:/,Pig,Pig可以加載數(shù)據(jù)、表達(dá)轉(zhuǎn)換數(shù)據(jù)以及存儲最終結(jié)果Pig語句通常按照如下的格式來編寫:通過LOAD語句從文件系統(tǒng)讀取數(shù)據(jù)通過一系列“轉(zhuǎn)換”語句對數(shù)據(jù)進(jìn)行處理通過一條STORE語句把處理結(jié)果輸出到文件系統(tǒng)中,或者使用DUMP語句把處理結(jié)果輸出到屏幕上,Pig在企業(yè)數(shù)據(jù)分析系統(tǒng)中的作用,Hive,Hive是基于Hadoop的一個(gè)數(shù)據(jù)

16、倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL語句快速實(shí)現(xiàn)簡單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析。Hive項(xiàng)目地址:,Sqoop,Sqoop是一個(gè)用來將Hadoop和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互轉(zhuǎn)移的工具,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(例如:MySQL,Oracle,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中。對于某些NoSQL數(shù)據(jù)庫它也提供了連接器。Sqoop,類似于其他ETL工具,使用元數(shù)據(jù)模型來判斷數(shù)據(jù)類型并在數(shù)據(jù)從數(shù)據(jù)源轉(zhuǎn)移到Hadoop時(shí)確保類型安全的數(shù)據(jù)處理。Sqoop專為大數(shù)據(jù)批量傳輸設(shè)計(jì),能夠分割數(shù)據(jù)集并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論