云計算與大數(shù)據(jù)(第二版)Hadoop和Spark平臺_第1頁
云計算與大數(shù)據(jù)(第二版)Hadoop和Spark平臺_第2頁
云計算與大數(shù)據(jù)(第二版)Hadoop和Spark平臺_第3頁
云計算與大數(shù)據(jù)(第二版)Hadoop和Spark平臺_第4頁
云計算與大數(shù)據(jù)(第二版)Hadoop和Spark平臺_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

云計算與大數(shù)據(jù)第2版

Hadoop和Spark平臺8.1認識Hadoop8.2Hadoop的組成、體系結(jié)構(gòu)和部署8.3認識Spark實驗CentOS環(huán)境下Hadoop的安裝與配置實驗Spark的安裝與配置重點:Hadoop的組成、體系結(jié)構(gòu)和部署Spark組成實驗難點:實驗本章重點及難點8.1認識HadoopHadoop是Apache開源軟件基金會開發(fā)的,運行于大規(guī)模普通服務(wù)器上的大數(shù)據(jù)存儲、計算、分析的分布式存儲系統(tǒng)和分布式運算框架。Hadoop設(shè)計之初的目標(biāo)就定位于高可靠性、高可拓展性、高容錯性和高效性,正是這些設(shè)計上與生俱來的優(yōu)點,才使得Hadoop一出現(xiàn)就受到眾多大公司的青睞,同時也引起了研究界的普遍關(guān)注。Hadoop主要有以下幾個優(yōu)點:高可靠性。Hadoop按位存儲和處理數(shù)據(jù)的能力值得人們信賴。高擴展性。Hadoop是在可用的計算機集簇間分配數(shù)據(jù)并完成計算任務(wù)的,這些集簇可以方便地擴展到數(shù)以千計的節(jié)點中。高效性。Hadoop能夠在節(jié)點之間動態(tài)地移動數(shù)據(jù),并保證各個節(jié)點的動態(tài)平衡,因此處理速度非??臁?.1認識HadoopHadoop主要有以下幾個優(yōu)點:高容錯性。Hadoop能夠自動保存數(shù)據(jù)的多個副本,并且能夠自動將失敗的任務(wù)重新分配。低成本。與一體機、商用數(shù)據(jù)倉庫以及QlikView、YonghongZ-Suite等數(shù)據(jù)集市相比,Hadoop是開源的,項目的軟件成本因此會大大降低。8.1認識Hadoop8.2.1Hadoop的組成Hadoop由許多元素構(gòu)成,其最底部是HadoopDistributedFileSystem(HDFS),完成Hadoop集群中所有存儲節(jié)點的文件存儲。HDFS的上一層是MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成。此外,數(shù)據(jù)倉庫工具Hive和分布式數(shù)據(jù)庫Hbase等基本涵蓋了Hadoop分布式平臺的主要核心技術(shù)。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成1、Sqoop數(shù)據(jù)庫同步工具Sqoop項目開始于2009年,最早是作為Hadoop的一個第三方模塊存在,后來為了讓使用者能夠快速部署,也為了讓開發(fā)人員能夠更快速的迭代開發(fā),Sqoop獨立成為一個Apache項目。它主要用于在Hadoop與傳統(tǒng)的數(shù)據(jù)庫等之間進行數(shù)據(jù)的傳遞,可以將一個關(guān)系型數(shù)據(jù)庫(例如:MySQL、Oracle、Postgres等)中的數(shù)據(jù)導(dǎo)入到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫中。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成2、Kettle工具Kettle是ETL(ExtractTransformandLoad)工具集,它允許用戶管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個圖形化的用戶環(huán)境來描述想做什么。Kettle中有兩種腳本文件,transformation和job,transformation完成針對數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個工作流的控制。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成3、Flume數(shù)據(jù)收集工具Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成4、HDFS分布式文件系統(tǒng)HDFS是ApacheHadoopCore項目的一部分,最開始是作為ApacheNutch搜索引擎項目的基礎(chǔ)架構(gòu)而開發(fā)。HDFS被設(shè)計成適合運行在通用硬件(commodityhardware)上的分布式文件系統(tǒng)。它是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上,能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。詳細介紹見第9章。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成5、Kafka分布式消息隊列Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),通過Hadoop的并行加載機制來統(tǒng)一線上和離線的消息處理,也是為了通過集群機來提供實時的消費。它可以處理消費者規(guī)模的網(wǎng)站中的所有動作流數(shù)據(jù),而這些動作(如,網(wǎng)頁瀏覽,搜索和其他用戶的行動)是分析現(xiàn)代網(wǎng)絡(luò)上的許多社會功能的一個關(guān)鍵因素。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成6、MapReduce分布式并行計算框架MapReduce是分布式并行計算框架,用于大規(guī)模數(shù)據(jù)集(一般大于1TB)的并行運算。概念Map(映射)和Reduce(歸約)是其主要思想。它的實現(xiàn)是指定一個Map(映像)函數(shù),用來把一組鍵值對映像成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映像的鍵值對中的每一個共享相同的鍵組。詳細介紹見第9章。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成7、HBase分布式數(shù)據(jù)庫HBase是ApacheHadoop項目的子項目。它是一個分布式的、面向列的開源數(shù)據(jù)庫,就像Bigtable利用了Google文件系統(tǒng)(FileSystem)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase中的數(shù)據(jù)存儲基于是列的模式,而不是基于行的模式。詳細介紹見第10章。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成8、Storm實時流計算框架Storm是一個免費開源、分布式、高容錯的實時計算系統(tǒng)。Storm令持續(xù)不斷的流計算變得容易,彌補了Hadoop批處理所不能滿足的實時要求。Storm經(jīng)常用于在實時分析、在線機器學(xué)習(xí)、持續(xù)計算、分布式遠程調(diào)用和ETL等領(lǐng)域。Storm的部署管理非常簡單,而且,在同類的流式計算工具,Storm的性能也是非常出眾的。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成9、Mahout數(shù)據(jù)挖掘Mahout是Apache的開源項目,提供一些可擴展的機器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多數(shù)據(jù)挖掘的算法實現(xiàn),包括聚類、分類、推薦過濾、頻繁子項挖掘等。此外,通過使用ApacheHadoop庫,Mahout可以有效地擴展到云中。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成10、Hive數(shù)據(jù)倉庫Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進行運行。Hive的學(xué)習(xí)成本低,可以通過類SQL語句快速實現(xiàn)簡單的MapReduce統(tǒng)計,而不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計分析。詳細介紹見第10章。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成11、Impala查詢引擎Impala是Cloudera公司主導(dǎo)開發(fā)的新型查詢系統(tǒng),它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數(shù)據(jù)。已有的Hive系統(tǒng)雖然也提供了SQL語義,但由于Hive底層執(zhí)行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的交互性。相比之下,Impala的最大特點就是它的快速。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.1Hadoop的組成12、Zookeeper協(xié)作服務(wù)ZooKeeper是一個分布式的、開放源碼的分布式應(yīng)用程序的協(xié)調(diào)服務(wù)工具,它為分布式應(yīng)用提供一致性服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件。它提供的功能包括:配置維護、域名服務(wù)、分布式同步、組服務(wù)等。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.2Hadoop體系結(jié)構(gòu)HDFS和Mapreduce是Hadoop體系結(jié)構(gòu)的核心。HDFS是分布式文件系統(tǒng),它實現(xiàn)了數(shù)據(jù)在計算機集群組成的云上高效的存儲和管理,MapReduce是并行計算框架,能夠讓用戶編寫的Hadoop并行應(yīng)用程序的運行得以簡化,實現(xiàn)了分布式計算和任務(wù)處理。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.2Hadoop體系結(jié)構(gòu)在分布式存儲和分布式計算方面,Hadoop使用主/從(Master/Slave)架構(gòu)。在一個配置完整的集群上,想讓Hadoop運作起來,需要在集群中運行一系列后臺(deamon)程序。不同的后臺程序扮演不用的角色,這些角色由NameNode、DataNode、SecondaryNameNode、JobTracker、TaskTracker組成。詳見第10章HDFS體系結(jié)構(gòu)介紹8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.3Hadoop部署Hadoop從三個角度對主機進行角色的劃分。第一,最基本的是將主機劃分為Master和Slave,即主機和從機;第二,從HDFS的角度,將主機劃分為NameNode和DataNode(在分布式文件系統(tǒng)中,管理目錄很重要,相當(dāng)于Master,而NameNode就是目錄管理者);第三,從MapReduce的角度,將主機劃分為JobTracker和TaskTracker(一個Job經(jīng)常被劃分為多個Task)。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.3Hadoop部署Hadoop有三種部署模式:單機模式,偽分布式和完全分布式。1、單機模式單機模式是Hadoop的默認模式。當(dāng)首次解壓Hadoop的源碼包時,Hadoop無法了解硬件安裝環(huán)境,便保守地選擇了最小配置。在這種默認模式下所有3個XML文件均為空。當(dāng)配置文件為空時,Hadoop會完全運行在本地。8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.3Hadoop部署2、

偽分布模式可以將偽分布式的Hadoop看做只有一個節(jié)點的集群,在這個集群中,這個節(jié)點既是Master,也是Slave;既是NameNode,也是DataNode;既是JobTracker,也是TaskTracker。在偽分布中,需要簡單修改Hadoop的配置文件8.2Hadoop組成、體系結(jié)構(gòu)和部署8.2.3Hadoop部署3、完全分布式模式完全分布式模式將構(gòu)建一個Hadoop集群,實現(xiàn)真正的分布式。其體系結(jié)構(gòu)由兩層網(wǎng)絡(luò)拓撲組成,形成多個機架(Rack),每個機架會有30~40臺的機器,這些機器共享具有GB級別帶寬的網(wǎng)絡(luò)交換機。在配置Hadoop時,配置文件分為兩類:(1)只讀類型的默認文件:core-default.xml、hdfs-default.xml、mapred-default.xml、mapred-queues.xml(2)定位(site-specific)設(shè)置:core-site.xml、hdfs-site.xml、mapred-site.xml、mapred-queues.xml8.3認識Spark8.3.1什么是SparkSpark是Apache下的開源項目,由加州大學(xué)伯克利分校AMP實驗室(Algorithms,Machines,andPeopleLab)開發(fā),是一種與Hadoop相似的開源集群計算環(huán)境,但Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負載,可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序,這使得Spark在某些工作負載方面表現(xiàn)得更加優(yōu)越。Spark是在Scala語言中實現(xiàn)的,它將Scala用作其應(yīng)用程序框架。8.3認識Spark8.3.1什么是SparkSpark生態(tài)系統(tǒng)兼容Hadoop生態(tài)系統(tǒng)(兼容HDFS和Yarn);Spark生態(tài)系統(tǒng)學(xué)習(xí)成本很低;Spark性能表現(xiàn)優(yōu)異;Spark有強大的社區(qū)支持;Spark支持多種語言接口編程(Java、Scala、Python、R)。8.3認識Spark8.3.1什么是SparkSpark支持四種運行模式,分別是:本地運行模式:所有Spark進程運行在同一個Java虛擬機(JavaVirtualMachine,JVM)中。集群單機模式:使用Spark自己內(nèi)置的任務(wù)調(diào)度框架?;贛esos:Mesos是一個流行的開源集群計算框架。基于Yarn:Yarn是一個與Hadoop關(guān)聯(lián)的集群計算和資源調(diào)度框架,被認為是Hadoop2。8.3認識Spark8.3.2Spark框架8.3認識Spark8.3.2Spark框架Shark:基本上就是在Spark的框架基礎(chǔ)上提供和Hive一樣的HiveQL命令接口。現(xiàn)已被SparkSQL取代;Spark

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論