《基于新信息技術(shù)的Hadoop大數(shù)據(jù)技術(shù)》 課件全套 項目1-12 Linux系統(tǒng)概述- Flume的安裝與使用_第1頁
《基于新信息技術(shù)的Hadoop大數(shù)據(jù)技術(shù)》 課件全套 項目1-12 Linux系統(tǒng)概述- Flume的安裝與使用_第2頁
《基于新信息技術(shù)的Hadoop大數(shù)據(jù)技術(shù)》 課件全套 項目1-12 Linux系統(tǒng)概述- Flume的安裝與使用_第3頁
《基于新信息技術(shù)的Hadoop大數(shù)據(jù)技術(shù)》 課件全套 項目1-12 Linux系統(tǒng)概述- Flume的安裝與使用_第4頁
《基于新信息技術(shù)的Hadoop大數(shù)據(jù)技術(shù)》 課件全套 項目1-12 Linux系統(tǒng)概述- Flume的安裝與使用_第5頁
已閱讀5頁,還剩155頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Hadoop大數(shù)據(jù)技術(shù)——linux系統(tǒng)概述linux系統(tǒng)概述

Linux,全稱GNU/Linux,是一種免費使用和自由傳播的類UNIX操作系統(tǒng),其內(nèi)核由林納斯·本納第克特·托瓦茲于1991年10月5日首次發(fā)布,它主要受到Minix和Unix思想的啟發(fā),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。

linux操作系統(tǒng)的特點湖南軟件職業(yè)技術(shù)大學(xué)linux系統(tǒng)概述

它能運行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。Linux有上百種不同的發(fā)行版,如基于社區(qū)開發(fā)的debian、archlinux,和基于商業(yè)開發(fā)的RedHatEnterpriseLinux、SUSE、OracleLinux等。linux操作系統(tǒng)的特點湖南軟件職業(yè)技術(shù)大學(xué)可移植性可靠的安全性支持多任務(wù)及多用戶全面支持網(wǎng)絡(luò)協(xié)議免費及源代碼開放良好的用戶界面linux特點

Linux操作系統(tǒng)的特點有:良好的用戶界面、可移植性、全面支持網(wǎng)絡(luò)協(xié)議、支持多任務(wù)及多用戶、免費及源代碼開放、可靠的安全性。linux系統(tǒng)概述湖南軟件職業(yè)技術(shù)大學(xué)02桌面應(yīng)用領(lǐng)域新版本的Liunx完全可以作為一種集辦公應(yīng)用、多媒體應(yīng)用、網(wǎng)絡(luò)應(yīng)用等多方面功能為一體的圖形界面操作系統(tǒng)01高端服務(wù)器領(lǐng)域服務(wù)器市場占有率已經(jīng)達到25%,很多公司都是用Liunx做操作系統(tǒng)的。03嵌入式應(yīng)用領(lǐng)域目前能夠支持嵌入式開發(fā)的操作系統(tǒng)有PalmOS、嵌入式Linux、WindowsCE。linux系統(tǒng)概述

linux操作系統(tǒng)的應(yīng)用場景湖南軟件職業(yè)技術(shù)大學(xué)linux系統(tǒng)概述linux版本內(nèi)核版本內(nèi)核版本內(nèi)核是系統(tǒng)的心臟,是運行程序和管理像磁盤和打印機等硬件設(shè)備的核心程序,它提供了一個在裸設(shè)備與應(yīng)用程序間的抽象層。例如,程序本身不需要了解用戶的主板芯片集或磁盤控制器的細節(jié)就能在高層次上讀寫磁盤。linux版本版本分為兩類:內(nèi)核版本和發(fā)行版本內(nèi)核的開發(fā)和規(guī)范一直是由Linus領(lǐng)導(dǎo)的開發(fā)小組控制著,版本也是惟一的。開發(fā)小組每隔一段時間公布新的版本或其修訂版,從1991年10月Linus向世界公開發(fā)布的內(nèi)核0.0.2版本(0.0.1版本功能相當(dāng)簡陋所以沒有公開發(fā)布)到目前最新的內(nèi)核2.6.22版本,Linux的功能越來越強大。湖南軟件職業(yè)技術(shù)大學(xué)linux系統(tǒng)概述linux版本發(fā)行版本僅有內(nèi)核而沒有應(yīng)用軟件的操作系統(tǒng)是無法使用的,所以許多公司或社團將內(nèi)核、源代碼及相關(guān)的應(yīng)用程序組織構(gòu)成一個完整的操作系統(tǒng),讓一般的用戶可以簡便地安裝和使用Linux,這就是所謂的發(fā)行版本(distribution),一般談?wù)摰腖inux系統(tǒng)便是針對這些發(fā)行版本的。目前估計各種發(fā)行版本有數(shù)十種,它們的發(fā)行版本號各不相同,使用的內(nèi)核版本號也可能不一樣,下面就為讀者介紹目前比較著名的幾個發(fā)行版本。linux版本版本分為兩類:內(nèi)核版本和發(fā)行版本Linux幾種常見的發(fā)行版,如商業(yè)版本redHat:十分穩(wěn)定且好用,但是需要付費。centos:雖然不如redHat,但功能全面,且免費。Ubuntu:擁有圖形化界面,方便操作,PC針對Ubuntu軟件較多。湖南軟件職業(yè)技術(shù)大學(xué)ThanksHadoop大數(shù)據(jù)技術(shù)——Hadoop技術(shù)概述湖南軟件職業(yè)技術(shù)大學(xué)Hadoop的前世今生什么是大數(shù)據(jù)湖南軟件職業(yè)技術(shù)大學(xué)數(shù)據(jù)結(jié)構(gòu)海量存儲能力讀寫速度實時hadoophbasesparkstrom雙11電商數(shù)據(jù)大屏智慧交通高速收費站數(shù)據(jù)大屏工程建設(shè)作戰(zhàn)指揮室生產(chǎn)作業(yè)KPI指標分析什么是大數(shù)據(jù)湖南軟件職業(yè)技術(shù)大學(xué)操作系統(tǒng)hadoop數(shù)據(jù)庫硬件大數(shù)據(jù)是什么大數(shù)據(jù)的背后是硬件、數(shù)據(jù)庫、操作系統(tǒng)、Hadoop等一系列技術(shù)的綜合應(yīng)用。

大數(shù)據(jù)這三個字只是一門市場語言,不是一項專門的技術(shù)。湖南軟件職業(yè)技術(shù)大學(xué)HDFS負責(zé)大數(shù)據(jù)的存儲MapReduce負責(zé)大數(shù)據(jù)的計算YARN負責(zé)集群資源的調(diào)度

Hadoop是由一系列軟件庫組成的框架。這些軟件庫各自負責(zé)Hadoop的一部分功能,其中最主要的是HDFS、MapReduce和YARN。Hadoop是什么湖南軟件職業(yè)技術(shù)大學(xué)Hadoop項目起源湖南軟件職業(yè)技術(shù)大學(xué)《TheGoogleFileSystem》2003年《MapReduce:SimplifiedDataProcessingonLargeClusters》2004年《Bigtable:ADistributedStorageSystemforStructuredData》2006年Hadoop起源于Google的三篇著名論文:2004年左右,DougCutting開發(fā)出初始版本的Hadoop,作為Nutch項目的一部分。Hadoop發(fā)展歷程HDFS(分布式文件系統(tǒng))MapReduce(分布式離線計算框架)HBase(NOSQL分布式數(shù)據(jù)庫)第一階段前Hadoop時代(2003-2007)三大論文、DougCutting、HadoopHBase萌芽階段湖南軟件職業(yè)技術(shù)大學(xué)Hadoop發(fā)展歷程第二階段后Hadoop時代(2008-2014)Hadoop、HBase、Hive、Pig、Sqoop等百花齊放,眼花繚亂各個組件層出不窮,相互之間的兼容性管理混亂,雖然選擇性多,但是很亂湖南軟件職業(yè)技術(shù)大學(xué)HDFS(分布式文件系統(tǒng))MapReduce(分布式離線計算框架)HivePigMahoutHBaseZookeeperSqoopFlumeOozieHadoop發(fā)展歷程第三階段Hadoop商業(yè)發(fā)行版時代(2011-2020)商業(yè)發(fā)行版、CDH、HDP等等,云原生套件出現(xiàn),如阿里云、華為云、騰訊云、百度云標準的發(fā)行版大行其道,提供免費版本,云原生商業(yè)版如火如荼湖南軟件職業(yè)技術(shù)大學(xué)Hadoop發(fā)展歷程第四階段國產(chǎn)化開源發(fā)行版時代(2021開始)USDP標準的發(fā)行版紛紛收費,國產(chǎn)化開源發(fā)行版勢在必行湖南軟件職業(yè)技術(shù)大學(xué)Hadoop名字起源湖南軟件職業(yè)技術(shù)大學(xué)

Hadoop這個名字不是一個縮寫,而是一個虛構(gòu)的名字。該項目的創(chuàng)建者,DougCutting解釋Hadoop的得名:“這個名字是我孩子給一個棕黃色的大象玩具命名的。我的命名標準就是簡短,容易發(fā)音和拼寫,沒有太多的意義,并且不會被用于別處。小孩子恰恰是這方面的高手?!泵秩〉暮秒S意啊,大象玩具湖南軟件職業(yè)技術(shù)大學(xué)Hadoop生態(tài)系統(tǒng)簡介20092019hadoop版本迭代Hadoop版本迭代20072014湖南軟件職業(yè)技術(shù)大學(xué)Hadoop生態(tài)系統(tǒng)湖南軟件職業(yè)技術(shù)大學(xué)生態(tài)圈湖南軟件職業(yè)技術(shù)大學(xué)Hadoop的優(yōu)勢及應(yīng)用場景方便彈性簡單Hadoop可以運行在一般商業(yè)服務(wù)器構(gòu)成的大型集群上,或者是亞馬遜彈性計算云(AmazonEC2)/阿里云等云計算服務(wù)上。Hadoop可以通過增加節(jié)點方式來線性地擴展集群規(guī)模,以便處理更大的數(shù)據(jù)集。同時,在集群負載下降時,也可以減少節(jié)點以提高資源使用效率。Hadoop允許用戶快速編寫出高效的分布式計算程序。Hadoop的優(yōu)勢湖南軟件職業(yè)技術(shù)大學(xué)健壯Hadoop在設(shè)計之初,就將故障檢測和自動恢復(fù)作為一個設(shè)計目標,它可以從容處理通用計算平臺上出現(xiàn)硬件失效的情況。Cloudera運營總監(jiān)稱,美國有70%的智能手機數(shù)據(jù)服務(wù)背后都是由Hadoop來支撐的,也就是說包括數(shù)據(jù)的存儲以及無線運營商的數(shù)據(jù)處理等,都是在利用Hadoop技術(shù)。Hadoop在這一領(lǐng)域應(yīng)用非常廣泛,eBay就是最大的實踐者之一。國內(nèi)的電商平臺在Hadoop技術(shù)儲備上也非常雄厚。目前全球范圍內(nèi)80%的在線旅游網(wǎng)站都是在使用Cloudera公司提供的Hadoop發(fā)行版,其中SearchBI網(wǎng)站曾經(jīng)報導(dǎo)過的Expedia也在其中。這個領(lǐng)域普通用戶接觸得比較少,一般只有金融服務(wù)或者政府機構(gòu)會用到。利用Hadoop來存儲所有的客戶交易數(shù)據(jù),包括一些非結(jié)構(gòu)化的數(shù)據(jù),能夠幫助機構(gòu)發(fā)現(xiàn)客戶的異?;顒?,預(yù)防欺詐行為。電在詐移動數(shù)據(jù)在線旅游詐騙檢測電子商務(wù)移Hadoop的應(yīng)用領(lǐng)域醫(yī)療行業(yè)也會用到Hadoop,像IBM的Watson就會使用Hadoop集群作為其服務(wù)的基礎(chǔ),包括語義分析等高級分析技術(shù)。醫(yī)療機構(gòu)可以利用語義分析為患者提供醫(yī)護人員,并協(xié)助醫(yī)生更好地為患者進行診斷。美國Chevron公司是全美第二大石油公司,它們的IT部門主管介紹了Chevron使用Hadoop的經(jīng)驗,利用Hadoop進行數(shù)據(jù)的收集和處理,其中一些數(shù)據(jù)是海洋的地震數(shù)據(jù),以便找到油礦的位置。能醫(yī)療保健能源開采醫(yī)湖南軟件職業(yè)技術(shù)大學(xué)ThanksHadoop大數(shù)據(jù)技術(shù)——Hadoop與云計算、spark、數(shù)據(jù)庫湖南軟件職業(yè)技術(shù)大學(xué)Hadoop與云計算云計算是什么

云計算是一種可以通過網(wǎng)絡(luò)方便地接入共享資源池,按需獲取計算資源(包括網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用、服務(wù)等)的服務(wù)模型。共享資源池中的資源可以通過較少的管理代價和簡單業(yè)務(wù)交互過程而快速部署和發(fā)布。湖南軟件職業(yè)技術(shù)大學(xué)移動電話PCsTVsPDAsGPS導(dǎo)航汽車電子設(shè)備智能家電iPhoneDCs傳感器。。。按需提供服務(wù)寬帶網(wǎng)絡(luò)訪問

資源池化高可伸縮性

可量化服務(wù)

大規(guī)模以服務(wù)的形式為用戶提供應(yīng)用程序、數(shù)據(jù)存儲、基礎(chǔ)設(shè)施等資源,并可以根據(jù)用戶需求自動分配資源,而不需要管理員的干預(yù)。比如亞馬遜彈性計算云(AmazonEC2),用戶可以通過Web表單提交自己需要的配置給亞馬遜,從而動態(tài)獲得計算能力,這些配置包括CPU核數(shù)、內(nèi)存大小、磁盤大小等。用戶可以通過各種終端設(shè)備,比如智能手機、筆記本等,隨時隨地通過互聯(lián)網(wǎng)訪問云計算服務(wù)。資源以共享池的方式統(tǒng)一管理。通過虛擬化技術(shù),將資源分享給不同的用戶,而資源的存放、管理以及分配策略對用戶是透明的。服務(wù)的規(guī)??梢钥焖偕炜s,來自動適應(yīng)業(yè)務(wù)負載的變化。這樣就保證了用戶使用的資源與業(yè)務(wù)所需要的資源的一致性,從而避免了因為服務(wù)器超載或者冗余造成服務(wù)質(zhì)量下降或者資源的浪費。云計算服務(wù)中心可以通過監(jiān)控軟件監(jiān)控用戶的使用情況,從而根據(jù)資源的使用情況對提供的服務(wù)進行計費。承載云計算的集群規(guī)模非常巨大,一般達到數(shù)萬臺服務(wù)器以上。從集群規(guī)模來看,云計算賦予了用戶前所未有的計算能力。云計算的特點服務(wù)非常廉價云服務(wù)可以采用非常廉價的PCServer來構(gòu)建,而不是需要非常昂貴的小型機。另外云服務(wù)的公用性和通用性,極大地提升了資源利用率,從而大幅降低使用成本。云計算包含3種模式它的含義是基礎(chǔ)設(shè)施即服務(wù)。比如,阿里云主機提供的就是基礎(chǔ)設(shè)施服務(wù),可以直接購買阿里云主機服務(wù)。它的含義是平臺即服務(wù)。比如,阿里云主機上已經(jīng)部署好Hadoop集群,可以提供大數(shù)據(jù)平臺服務(wù),用戶直接購買平臺的計算能力運行自己的應(yīng)用即可。它的含義是軟件即服務(wù),比如阿里云平臺已經(jīng)部署好具體的項目應(yīng)用,用戶直接購買賬號使用它們提供的軟件服務(wù)即可。IaaSPaaSSaaSHadoopVS云計算總的來說,云計算是一種運營模式,而Hadoop是一種技術(shù)手段,對云計算提供技術(shù)支撐。湖南軟件職業(yè)技術(shù)大學(xué)Hadoop與SparkSpark是什么湖南軟件職業(yè)技術(shù)大學(xué)

Spark是基于內(nèi)存計算的大數(shù)據(jù)并行計算框架。Spark基于內(nèi)存計算的特性,提高了在大數(shù)據(jù)環(huán)境下數(shù)據(jù)處理的實時性,同時保證了高容錯性和高可伸縮性,允許用戶將Spark部署在大量的廉價硬件之上形成集群,從而提高并行計算能力。Spark于2009年誕生于加州大學(xué)伯克利分校AMPLab,在開發(fā)以Spark為核心的BDAS時,AMPLab提出的目標是:onestacktorulethemall,也就是說在一套軟件棧內(nèi)完成各種大數(shù)據(jù)分析任務(wù)。目前,Spark已經(jīng)成為Apache軟件基金會旗下的頂級開源項目。01易用性Spark支持Java、Python和Scala的API,還支持超過80種高級算法,使用戶可以快速構(gòu)建不同的應(yīng)用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在這些shell中使用Spark集群來驗證解決問題的方法。實時的流處理與Hadoop相比,Spark不僅支持離線計算還支持實時流計算。SparkStreaming主要用來對數(shù)據(jù)進行實時處理,而Hadoop在擁有了YARN之后,也可以借助其他框架進行流式計算。運行速度快Spark源碼是由Scala語言編寫的,Scala語言非常簡潔并具有豐富的表達力。

Spark充分利用和集成了Hadoop等其他第三方組件,同時著眼于大數(shù)據(jù)處理,那么數(shù)據(jù)處理速度是至關(guān)重要的,Spark通過將中間結(jié)果緩存在內(nèi)存從而減少磁盤I/O來達到性能的提升。支持復(fù)雜查詢除了簡單的map及reduce操作之外,Spark還支持復(fù)雜查詢。Spark支持SQL查詢、流式計算、機器學(xué)習(xí)和圖算法,同時用戶可以在同一個工作流中無縫地搭配這些計算范式。容錯性Spark引入了彈性分布式數(shù)據(jù)集RDD(ResilientDistributedDataset),它是分布在一組節(jié)點中的只讀對象集合,這些集合是彈性的,如果數(shù)據(jù)集的一部分丟失,則可以根據(jù)“血統(tǒng)”對它們進行重建。另外在對RDD進行計算時可以通過CheckPoint機制來實現(xiàn)容錯。02030405Spark的特點HadoopVSSpark湖南軟件職業(yè)技術(shù)大學(xué)Hadoop與Spark的異同湖南軟件職業(yè)技術(shù)大學(xué)Hadoop與傳統(tǒng)關(guān)系型數(shù)據(jù)庫數(shù)據(jù)表這種數(shù)據(jù)庫管理系統(tǒng)需要結(jié)構(gòu)(例如表)在存儲數(shù)據(jù)之前被定義出來。有了表,每一列(字段)都存儲一個不同類型(數(shù)據(jù)類型)的信息。數(shù)據(jù)庫中的每條記錄都有自己唯一的key(主鍵)作為屬于某個表的一行,行中的每一個信息都對應(yīng)了表中的一列——所有的關(guān)系一起構(gòu)成了關(guān)系模型。RDNMS傳統(tǒng)關(guān)系型數(shù)據(jù)庫RDBMS(RelationalDatabaseManagementSystem)是指對應(yīng)于一個關(guān)系模型的所有關(guān)系的集合。關(guān)系型數(shù)據(jù)庫系統(tǒng)實現(xiàn)了關(guān)系模型,并用它來處理數(shù)據(jù)。關(guān)系模型在表中將信息與字段關(guān)聯(lián)起來,從而存儲數(shù)據(jù)。

RDBMS是什么容易理解二維表結(jié)構(gòu)是非常貼近邏輯世界的一個概念,關(guān)系模型相對網(wǎng)狀、層次等其他模型來說更容易理解。支持SQL支持SQL語言完成復(fù)雜的查詢功能。易于維護豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大降低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率。使用方便通用的SQL語言使得操作關(guān)系型數(shù)據(jù)庫非常方便。。RDBMS的特點湖南軟件職業(yè)技術(shù)大學(xué)HadoopRDBMSRDBMS適合處理GB級別的數(shù)據(jù),數(shù)據(jù)量超過這個范圍就會出現(xiàn)性能急劇下降

Hadoop可以處理PB級別的數(shù)據(jù),沒有數(shù)據(jù)規(guī)模的限制。數(shù)據(jù)規(guī)模訪問方式VSRDBMS支持交互處理和批處理Hadoop僅支持批處理。集群收縮性RDBMS是非線性擴展的Hadoop支持線性擴展,可以通過簡單的增加節(jié)點來擴展Hadoop集群規(guī)模。

總的來說,Hadoop適合用于海量數(shù)據(jù)的批處理,而RDBMS適合用于少量數(shù)據(jù)的實時查詢。在實際工作中,Hadoop一般需要與RDBMS結(jié)合來使用,比如可以利用Hadoop集群對海量數(shù)據(jù)進行統(tǒng)計分析,然后將分析結(jié)果存入RDBMS對外提供實時查詢服務(wù)。數(shù)據(jù)讀寫一次寫、多次讀多次讀寫ThanksHadoop大數(shù)據(jù)技術(shù)——Zookeeper分布式協(xié)調(diào)服務(wù)湖南軟件職業(yè)技術(shù)大學(xué)Zookeeper架構(gòu)設(shè)計與工作原理定義:zookeeper一個分布式的開源的協(xié)調(diào)服務(wù)框架,服務(wù)于分布式應(yīng)用。它暴露了一系列的原語操作服務(wù),因此分布式應(yīng)用能夠基于這些服務(wù),構(gòu)建出更高級別的服務(wù),比如同步,配置管理,分組和命名服務(wù)。zookeeperzookeeper設(shè)計上易于編碼,數(shù)據(jù)模型構(gòu)建在我們熟悉的樹形結(jié)構(gòu)目錄風(fēng)格的文件系統(tǒng)中。zookeeper運行在Java中,同時支持Java和C語言。Zookeeper是什么湖南軟件職業(yè)技術(shù)大學(xué)最終一致性客戶端不論連接到哪個Server,展示給它的都是同一個視圖,這是Zookeeper最重要的特點。Zookeeper的特點可靠性Zookeeper具有簡單、健壯、良好的性能。如果一條消息被一臺服務(wù)器接收,那么它將被所有的服務(wù)器接收。實時性Zookeeper保證客戶端將在一個時間間隔范圍內(nèi),獲得服務(wù)器的更新信息或者服務(wù)器失效的信息。但由于網(wǎng)絡(luò)延時等原因,Zookeeper不能保證兩個客戶端能同時得到剛更新的數(shù)據(jù),如果需要最新數(shù)據(jù),應(yīng)該在讀數(shù)據(jù)之前調(diào)用sync()接口。等待無關(guān)慢的或者失效的客戶端不得干預(yù)快速的客戶端的請求,這就使得每個客戶端都能有效地等待。原子性對Zookeeper的更新操作要么成功,要么失敗,沒有中間狀態(tài)。順序性它包括全局有序和偏序兩種。全局有序是針對服務(wù)器端,例如,在一臺服務(wù)器上,消息A在消息B前發(fā)布,那么所有服務(wù)器上的消息A都將在消息B前被發(fā)布。偏序是針對客戶端,例如,在同一個客戶端中,消息B在消息A后發(fā)布,那么執(zhí)行的順序必將是先執(zhí)行消息A然后在是消息B。所有的更新操作都有嚴格的偏序關(guān)系,更新操作都是串行執(zhí)行的,這一點是保證ZooKeeper功能正確性的關(guān)鍵。。Zookeeper的基本架構(gòu)與工作原理

Zookeeper服務(wù)自身組成一個集群(2n+1個服務(wù)節(jié)點最多允許n個失效)。Zookeeper服務(wù)有兩個角色:一個是主節(jié)點(Leader),負責(zé)投票的發(fā)起和決議,更新系統(tǒng)狀態(tài);另一種是從節(jié)點(Follower),用于接收客戶端請求并向客戶端返回結(jié)果,在選主過程(即選擇主節(jié)點的過程)中參與投票。主節(jié)點失效后,會在從節(jié)點中重新選舉新的主節(jié)點。湖南軟件職業(yè)技術(shù)大學(xué)Zookeeper數(shù)據(jù)模型

zookeeper的數(shù)據(jù)結(jié)構(gòu)與linux文件系統(tǒng)很類似,與Linux中的文件系統(tǒng)路徑不同。

Zookeeper中的路徑必須是絕對路徑,而且每條路徑只有唯一的一種表示方式(/app1/a)。湖南軟件職業(yè)技術(shù)大學(xué)節(jié)點類型當(dāng)創(chuàng)建臨時節(jié)點的客戶端會話結(jié)束時,Zookeeper會將該臨時節(jié)點刪除。臨時節(jié)點不可以有子節(jié)點,即使是短暫的子節(jié)點。持久節(jié)點不依賴與客戶端會話,只有當(dāng)客戶端明確要刪除該持久節(jié)點時才會被真正刪除。臨時節(jié)點Zookeeper數(shù)據(jù)模型Znode的類型在創(chuàng)建時就確定,之后不能修改。持久節(jié)點湖南軟件職業(yè)技術(shù)大學(xué)Zookeeper數(shù)據(jù)模型

觀察機制客戶端可以在znode上設(shè)置watcher,當(dāng)節(jié)點狀態(tài)發(fā)生改變時將會觸發(fā)watcher所對應(yīng)的操作。當(dāng)watcher被觸發(fā)時,ZooKeeper將會向客戶端發(fā)送且僅發(fā)送一條通知,因為watcher只能被觸發(fā)一次,這樣可以減少網(wǎng)絡(luò)流量。為了能夠多次收到通知,客戶端需要重新注冊所需的watcher。湖南軟件職業(yè)技術(shù)大學(xué)Zookeeper服務(wù)/spider客戶端客戶端客戶端監(jiān)視器注冊注冊注冊ThanksHadoop大數(shù)據(jù)技術(shù)——搭建HDFS分布式集群湖南軟件職業(yè)技術(shù)大學(xué)HDFS架構(gòu)設(shè)計與工作原理HDFS是什么

HDFS源于Google在2003年10月份發(fā)表的GFS(GoogleFileSystem)論文。它其實就是GFS的一個克隆版本。湖南軟件職業(yè)技術(shù)大學(xué)HDFS(HadoopDistributedFileSystem)是Hadoop項目的核心子項目,是分布式計算中數(shù)據(jù)存儲管理的基礎(chǔ),是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,可以運行于廉價的商用服務(wù)器上?!禩heGoogleFileSystem》2003年HDFS產(chǎn)生背景

隨著數(shù)據(jù)量的不斷增大,最終會導(dǎo)致數(shù)據(jù)在一個操作系統(tǒng)的磁盤中存儲不下。那么為了存儲這些大規(guī)模數(shù)據(jù),就需要將數(shù)據(jù)分配到更多操作系統(tǒng)管理的磁盤中進行存儲,但是這樣會導(dǎo)致數(shù)據(jù)的管理和維護非常不方便,所以就迫切需要一種系統(tǒng)來管理和維護多臺機器上的數(shù)據(jù)文件,實際上這種系統(tǒng)就是分布式文件系統(tǒng),而HDFS只是分布式文件系統(tǒng)中的一種。湖南軟件職業(yè)技術(shù)大學(xué)HDFS的設(shè)計理念來源于非常樸素的思想:理念

即當(dāng)數(shù)據(jù)文件的大小超過單臺計算機的存儲能力時,就有必要將數(shù)據(jù)文件切分并存儲到由若干臺計算機組成的集群中,這些計算機通過網(wǎng)絡(luò)進行連接。集群HDFS集群

HDFS作為一個抽象層架構(gòu)在集群網(wǎng)絡(luò)之上,對外提供統(tǒng)一的文件管理功能,對于用戶來說就感覺像在操作一臺計算機一樣,根本感受不到HDFS底層的多臺計算機,而且HDFS還能夠很好地容忍節(jié)點故障且不丟失任何數(shù)據(jù)。HDFS設(shè)計理念湖南軟件職業(yè)技術(shù)大學(xué)03010402簡單的一致性模型在HDFS文件系統(tǒng)中,一個文件一旦經(jīng)過創(chuàng)建、寫入、關(guān)閉之后,一般就不需要再進行修改,這樣就可以簡單地保證數(shù)據(jù)的一致性。硬件故障的檢測和快速應(yīng)對通過大量普通硬件構(gòu)成的集群中,硬件出現(xiàn)故障是常見的問題。HDFS文件系統(tǒng)一般是由數(shù)十臺甚至成百上千臺服務(wù)器組成,這么多服務(wù)器就意味著高故障率,但是HDFS在設(shè)計之初已經(jīng)充分考慮到這些問題,認為硬件故障是常態(tài)而不是異常,所以如何進行故障的檢測和快速自動恢復(fù)也是HDFS的重要設(shè)計目標之一。流式數(shù)據(jù)訪問流式數(shù)據(jù)訪問是HDFS選擇的最高效的數(shù)據(jù)訪問方式。流式數(shù)據(jù)訪問可以理解為:讀取數(shù)據(jù)文件就像打開水龍頭一樣,可以不停地讀取。支持超大文件存儲支持超大文件存儲是HDFS最基本的職責(zé)所在。HDFS核心設(shè)計目標HDFS設(shè)計目標湖南軟件職業(yè)技術(shù)大學(xué)HDFS系統(tǒng)架構(gòu)湖南軟件職業(yè)技術(shù)大學(xué)HDFS采用master/slave架構(gòu)。一個HDFS集群包含一個單獨的NameNode和多個DataNodeHDFS系統(tǒng)架構(gòu)湖南軟件職業(yè)技術(shù)大學(xué)FSImage和Editlog合并的詳細步驟如下:HDFS優(yōu)缺點

優(yōu)點

高容錯性

數(shù)據(jù)自動保存多個副本,HDFS通過增加多個副本的形式,提高HDFS文件系統(tǒng)的容錯性,某一個副本丟失以后可以自動恢復(fù)。缺點

適合大數(shù)據(jù)處理

能夠處理GB、TB、甚至PB級別的數(shù)據(jù)規(guī)模;能夠處理百萬規(guī)模以上的文件數(shù)量;能夠達到10000個節(jié)點以上的集群規(guī)模。

流式文件訪問

數(shù)據(jù)文件只能一次寫入,多次讀取,只能追加,不能修改;HDFS能保證數(shù)據(jù)的簡單一致性。

可構(gòu)建在廉價的機器上

HDFS提供了容錯和恢復(fù)機制,比如某一個副本丟失了可以通過其他副本來恢復(fù),從而保證了數(shù)據(jù)的安全性和系統(tǒng)的可靠性。

不適合低延時數(shù)據(jù)訪問

比如毫秒級別的數(shù)據(jù)響應(yīng)時間,這種場景HDFS是很難做到的。HDFS更適合高吞吐率的場景,就是在某一時間內(nèi)寫入大量的數(shù)據(jù)。

不適合大量小文件的存儲

如果有大量小文件需要存儲,這些小文件的元數(shù)據(jù)信息會占用NameNode大量的內(nèi)存空間。這樣是不可取的,因為NameNode的內(nèi)存總是有限的。如果讀取小文件的尋道時間超過文件數(shù)據(jù)的讀取時間,它就違反了HDFS大數(shù)據(jù)塊的設(shè)計目標。

不適合并發(fā)寫入、文件隨機修改

一個文件只能有一個寫操作,不允許多個線程同時進行寫操作;僅支持數(shù)據(jù)的append(追加)操作,不支持文件的隨機修改。湖南軟件職業(yè)技術(shù)大學(xué)HDFS讀數(shù)據(jù)流程湖南軟件職業(yè)技術(shù)大學(xué)HDFS讀取數(shù)據(jù)的主要步驟如圖所示:HDFS寫數(shù)據(jù)的主要步驟如圖所示:HDFS寫數(shù)據(jù)流程湖南軟件職業(yè)技術(shù)大學(xué)湖南軟件職業(yè)技術(shù)大學(xué)HDFS高可用(HA)湖南軟件職業(yè)技術(shù)大學(xué)

高可用(HighAvailability

,簡稱HA)為了整個系統(tǒng)的可靠性,我們通常會在系統(tǒng)中部署兩臺或多臺主節(jié)點,多臺主節(jié)點形成主備的關(guān)系,但是某一時刻只有一個主節(jié)點能夠?qū)ν馓峁┓?wù),當(dāng)某一時刻檢測到對外提供服務(wù)的主節(jié)點“掛”掉之后,備用主節(jié)點能夠立刻接替已掛掉的主節(jié)點對外提供服務(wù),而用戶感覺不到明顯的系統(tǒng)中斷。這樣對用戶來說整個系統(tǒng)就更加的可靠和高效。HA機制產(chǎn)生的背景二是計劃內(nèi)的NameNode節(jié)點軟件或硬件升級,導(dǎo)致集群在短時間內(nèi)不可用。一是NameNode機器宕機,將導(dǎo)致集群不可用,重啟NameNode之后才可使用;

HA機制產(chǎn)生的背景影響HDFS集群的可用性主要包括兩種情況:HDFS的HA架構(gòu)圖HDFSHA架構(gòu)湖南軟件職業(yè)技術(shù)大學(xué)HDFS的HA架構(gòu)如圖所示HDFSHA機制湖南軟件職業(yè)技術(shù)大學(xué)HDFS的HA機制ThanksHadoop大數(shù)據(jù)技術(shù)——搭建YARN分布式集群湖南軟件職業(yè)技術(shù)大學(xué)YARN架構(gòu)設(shè)計與工作原理YARN產(chǎn)生背景MapReduce1.0系統(tǒng)架構(gòu)湖南軟件職業(yè)技術(shù)大學(xué)擴展性差JobTracker同時兼?zhèn)淞速Y源管理和作業(yè)控制兩個功能,嚴重制約了Hadoop集群擴展性。YARN產(chǎn)生背景資源利用率低MRv1采用基于slot的粗粒度的資源分配模型,包含Mapslot和Reduceslot。某個任務(wù)用不完的資源其他任務(wù)也不能用,因為map和reduce的資源完全不能共享的。當(dāng)一個作業(yè)剛提交時,只會運行MapTask,此時ReduceSlot閑置。MapReduce1.0架構(gòu)缺陷

通用性差隨著互聯(lián)網(wǎng)高速發(fā)展導(dǎo)致數(shù)據(jù)量劇增,MapReduce這種基于磁盤的離線計算框架已經(jīng)不能滿足應(yīng)用要求,從而出現(xiàn)了一些新的計算框架以應(yīng)對各種場景,包括內(nèi)存計算框架、流式計算框架和迭代式計算框架等,而MRv1不能支持多種計算框架并存。

單點故障隨MRv1采用了master/slave結(jié)構(gòu),其中master存在單點故障問題,一旦它出現(xiàn)故障將導(dǎo)致整個集群不可用。湖南軟件職業(yè)技術(shù)大學(xué)YARN概念

YARN是Hadoop2.0版本新引入的資源管理系統(tǒng),直接從MR1演化而來。ApacheHadoopYARN(YetAnotherResourceNegotiator,另一種資源協(xié)調(diào)者)是一種新的Hadoop資源管理器,它是一個通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。思想核心思想

將MR1中JobTracker的資源管理和作業(yè)調(diào)度兩個功能分開,分別由ResourceManager和ApplicationMaster進程來實現(xiàn)。ResourceManager負責(zé)整個集群的資源管理和調(diào)度。ApplicationMaster負責(zé)應(yīng)用程序相關(guān)的事務(wù),比如任務(wù)調(diào)度、任務(wù)監(jiān)控和容錯等。YARN是什么湖南軟件職業(yè)技術(shù)大學(xué)YARN的作用湖南軟件職業(yè)技術(shù)大學(xué)生態(tài)圈的位置YARN的基本構(gòu)架湖南軟件職業(yè)技術(shù)大學(xué)

從YARN的構(gòu)架圖來看,YARN主要由資源管理器(ResourceManager)、節(jié)點管理器(NodeManager0)、應(yīng)用程序管理器(ApplicationMaster)和相應(yīng)的容器(Container)構(gòu)成。YARN的工作原理湖南軟件職業(yè)技術(shù)大學(xué)

從圖可以看出Appn在Yarn中的執(zhí)行過程,整個執(zhí)行過程可以總結(jié)為三步:(1)客戶端向資源管理器提交任務(wù)。(2)資源管理器會在一個節(jié)點上啟動應(yīng)用的應(yīng)用程序管理器實例。(3)應(yīng)用程序管理會在不同節(jié)點上啟動容器,執(zhí)行應(yīng)用任務(wù)。(4)各節(jié)點會及時將節(jié)點資源狀況匯報給資源管理器。湖南軟件職業(yè)技術(shù)大學(xué)MapReduceONYARN工作流程MapReduceONYARN工作流程湖南軟件職業(yè)技術(shù)大學(xué)從圖可以看出,yarn的共流程分為如下幾步:(1)client想yarn提交一個應(yīng)用程序。(2)resourceManager為改應(yīng)用程序分配一個Container,與對應(yīng)的nodeManager進行通信,要求它在此container中啟動應(yīng)用程序管理器。(3)appmaster向資源管理器注冊,這樣用戶可以直接通過資源管理器查看應(yīng)用程序的運行狀態(tài)。(4)應(yīng)用程序管理器為各個任務(wù)想rm請求資源。(5)請求到資源后與nodeManager進行通信,要求啟動任務(wù)。(6)啟動任務(wù)。(7)各個任務(wù)向appmaster報告狀態(tài)和進度。(8)appmaster向rm請求注銷自己。湖南軟件職業(yè)技術(shù)大學(xué)YARN的容錯性ResourceManager存在單點故障,但是可以通過配置實現(xiàn)ResourceManager的HA(高可用),當(dāng)主節(jié)點出現(xiàn)故障時,可以切換到備用節(jié)點繼續(xù)對外提供服務(wù)。NodeManager失敗之后,ResourceManager會將失敗的任務(wù)通知對應(yīng)的ApplicationMaster,由ApplicationMaster來決定如何去處理失敗的任務(wù)。ApplicationMaster失敗后,由ResourceManager負責(zé)重啟即可。其中,ApplicationMaster需要處理內(nèi)部任務(wù)的容錯問題。ResourceManager會保存已經(jīng)運行的任務(wù),重啟后無須重新運行。ResourceManager的容錯性保障ApplicationMaster的容錯性保障NodeManager的容錯性保障YARN的容錯性湖南軟件職業(yè)技術(shù)大學(xué)湖南軟件職業(yè)技術(shù)大學(xué)YARN的高可用YARN的高可用湖南軟件職業(yè)技術(shù)大學(xué)從圖可以看出:(1)ResourceManager:基于Zookeeper實現(xiàn)高可用機制,避免單點故障。(2)NodeManager:執(zhí)行失敗之后,ResourceManager將失敗任務(wù)告訴對應(yīng)的ApplicationMaster,由ApplicationMaster來決定如何處理失敗的任務(wù)。(3)ApplicationMaster:執(zhí)行失敗之后,由ResourceManager負責(zé)重啟;ApplicationMaster需處理內(nèi)部的容錯問題,并保存已經(jīng)運行完成的Task,重啟后無需重新運行。湖南軟件職業(yè)技術(shù)大學(xué)YARN的調(diào)度器FIFO調(diào)度器容量調(diào)度器公平調(diào)度器調(diào)度器

集群資源是非常有限的,在多用戶、多任務(wù)環(huán)境下,需要有一個協(xié)調(diào)者,來保證在有限資源或業(yè)務(wù)約束下有序調(diào)度任務(wù),YARN資源調(diào)度器就是這個協(xié)調(diào)者。yarn一共有3個類型的調(diào)度器:FIFO調(diào)度器、容量調(diào)度器、公平調(diào)度器。湖南軟件職業(yè)技術(shù)大學(xué)ThanksHadoop大數(shù)據(jù)技術(shù)——MapReduce湖南軟件職業(yè)技術(shù)大學(xué)初識MapReduceMapReduce概述MapReduce是一個使用簡單的軟件框架,基于它寫出來的應(yīng)用程序能夠運行在由上千個商用機器組成的大型集群上,并以一種可靠容錯式并行處理TB級別的數(shù)據(jù)集。MapReduce是一個并行程序的計算模型與方法MapReduce是一個并行程序運行的軟件框架MapReduce是一個基于集群的高性能并行計算平臺湖南軟件職業(yè)技術(shù)大學(xué)MapReduce基本設(shè)計思想湖南軟件職業(yè)技術(shù)大學(xué)分而治之MapReduce基本設(shè)計思想抽象成模型

湖南軟件職業(yè)技術(shù)大學(xué)MapReduce基本設(shè)計思想升到框架MapReduce

提供統(tǒng)一計算框架的主要目標是實現(xiàn)自動并行化計算,為程序員隱藏系統(tǒng)層面的細節(jié)。計算任務(wù)的自動劃分和調(diào)度。數(shù)據(jù)的自動化分布存儲和劃分。處理數(shù)據(jù)與計算任務(wù)的同步。結(jié)果數(shù)據(jù)的收集整理,如排序,合并,分區(qū)等。系統(tǒng)通信、負載均衡、計算性能優(yōu)化。處理系統(tǒng)節(jié)點出錯檢測和失效恢復(fù)。湖南軟件職業(yè)技術(shù)大學(xué)MapReduce優(yōu)缺點MapReduce的優(yōu)點MapReduce易于編程良好的擴展性高容錯性適合PB級以上數(shù)據(jù)集的離線處理MapReduce缺點不適合實時計算不適合流式計算不適合DAG計算湖南軟件職業(yè)技術(shù)大學(xué)湖南軟件職業(yè)技術(shù)大學(xué)MapReduce的編程模型MapReduce分布式計算原理湖南軟件職業(yè)技術(shù)大學(xué)MapReduce編程模型湖南軟件職業(yè)技術(shù)大學(xué)深入剖析MapReduce編程模型湖南軟件職業(yè)技術(shù)大學(xué)

背景分析

深入剖析MapReduce編程模型問題思路分析業(yè)務(wù)場景有大量的文件,每個文件里面存儲的都是單詞。我們的任務(wù)統(tǒng)計所有文件中每個單詞出現(xiàn)的次數(shù)。解決思路先分別統(tǒng)計出每個文件中各個單詞出現(xiàn)的次數(shù),然后再累加不同文件中同一個單詞出現(xiàn)次數(shù)。湖南軟件職業(yè)技術(shù)大學(xué)深入剖析MapReduce編程模型深入剖析MapReduce編程模型數(shù)據(jù)分割湖南軟件職業(yè)技術(shù)大學(xué)深入剖析MapReduce編程模型深入剖析MapReduce編程模型數(shù)據(jù)處理湖南軟件職業(yè)技術(shù)大學(xué)深入剖析MapReduce編程模型深入剖析MapReduce編程模型數(shù)據(jù)局部合并湖南軟件職業(yè)技術(shù)大學(xué)深入剖析MapReduce編程模型深入剖析MapReduce編程模型數(shù)據(jù)聚合湖南軟件職業(yè)技術(shù)大學(xué)shuffle過程詳解湖南軟件職業(yè)技術(shù)大學(xué)ThanksHadoop大數(shù)據(jù)技術(shù)——Hive數(shù)據(jù)倉庫工具湖南軟件職業(yè)技術(shù)大學(xué)Hive概述數(shù)據(jù)計算是MapReduce數(shù)據(jù)存儲是HDFSHive適合離線數(shù)據(jù)處理Hive最初是構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫。Hive定義了一種類SQL的查詢語言——HQLHive是將HQL轉(zhuǎn)換為MR的語言翻譯器。Hive是由faceBook開源,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計問題,它可以作為ETL工具。Hive是什么Hive產(chǎn)生的背景湖南軟件職業(yè)技術(shù)大學(xué)

Hive

的誕生源于

Facebook

的日志分析需求,面對海量的結(jié)構(gòu)化數(shù)據(jù),

Hive

能夠以較低的成本完成以往需要大規(guī)模數(shù)據(jù)庫才能完成的任務(wù),并且學(xué)習(xí)門檻相對較低,應(yīng)用開發(fā)靈活且高效。后來Facebook將

Hive

開源給了

Apache,成為

Apache

的一個頂級項目,至此Hive在大數(shù)據(jù)應(yīng)用方面得到了快速的發(fā)展和普及。Hive的優(yōu)缺點

Hive的優(yōu)點Hive適合數(shù)據(jù)的批處理,解決了傳統(tǒng)關(guān)系型數(shù)據(jù)庫在海量數(shù)據(jù)處理上的瓶頸。Hive構(gòu)建在Hadoop之上,充分利用了集群的存儲資源、計算資源。Hive學(xué)習(xí)使用成本低,支持標準的SQL語法,這樣就免去了編寫MapReduce程序的過程,減少了開發(fā)成本。具有良好的擴展性,且能夠?qū)崿F(xiàn)與其他組件的集成開發(fā)。

湖南軟件職業(yè)技術(shù)大學(xué)Hive的缺點HQL的表達能力依然有限,不支持迭代計算,有些復(fù)雜的運算用HQL不易表達,還需要單獨編寫MapReduce來實現(xiàn)。Hive的運行效率低、延遲高,這是因為Hive底層計算引擎默認為MapReduce,而MapReduce是離線計算框架。Hive的調(diào)優(yōu)比較困難,由于HQL語句最終會轉(zhuǎn)換為MapReduce任務(wù),所以Hive的調(diào)優(yōu)還需要考慮MapReduce層面的優(yōu)化。Hive在Hadoop生態(tài)系統(tǒng)中的位置湖南軟件職業(yè)技術(shù)大學(xué)HIve在生態(tài)圈的位置Hive和Hadoop的關(guān)系

Hive利用HDFS來存儲數(shù)據(jù),利用MapReduce來查詢分析數(shù)據(jù),那么Hive與Hadoop之間的關(guān)系總結(jié)如下。

湖南軟件職業(yè)技術(shù)大學(xué)

Hive需要構(gòu)建在Hadoop集群之上。

Hive中的所有數(shù)據(jù)都存儲在Hadoop分布式文件系統(tǒng)中。

對HQL查詢語句的解釋、優(yōu)化、生成查詢計劃等過程均是由

Hive

完成的,而查詢計劃被轉(zhuǎn)化為

MapReduce

任務(wù)之后需要運行在

Hadoop

集群之上。湖南軟件職業(yè)技術(shù)大學(xué)Hive原理及架構(gòu)Hive的設(shè)計原理

Hive的原理Hive

是一種構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫工具,可以使用HQL

語句對數(shù)據(jù)進行分析和查詢,而Hive

的底層數(shù)據(jù)都存儲在HDFS中。Hive

在加載數(shù)據(jù)過程中不會對數(shù)據(jù)進行任何的修改,只是將數(shù)據(jù)移動到指定的HDFS目錄下,因此,Hive

不支持對數(shù)據(jù)的修改。

湖南軟件職業(yè)技術(shù)大學(xué)支持索引,加快數(shù)據(jù)查詢。內(nèi)置大量用戶自定義函數(shù)(userdefinefunction,簡稱UDF)來對時間、字符串進行操作,支持用戶擴展UDF

函數(shù)來完成內(nèi)置函數(shù)無法實現(xiàn)的操作??梢灾苯邮褂么鎯υ贖adoop

文件系統(tǒng)中的數(shù)據(jù)。1324不同的存儲類型,例如,純文本文件、HBase

中的文件。HQL語句最終會被轉(zhuǎn)換為MapReduce任務(wù)運行在Hadoop集群之上。5Hive的設(shè)計原理Hive的特點Hive的體系結(jié)構(gòu)湖南軟件職業(yè)技術(shù)大學(xué)Hive的體系架構(gòu)如圖Hive的運行機制湖南軟件職業(yè)技術(shù)大學(xué)(1)用戶通過用戶接口連接hive,編寫HQL語句。(2)Hive解析查詢并指定邏輯查詢計劃。(3)Hive將查詢轉(zhuǎn)換成MapReduce作業(yè)。(4)Hive在Hadoop上執(zhí)行MapReduce作業(yè)。Hive的轉(zhuǎn)換過程湖南軟件職業(yè)技術(shù)大學(xué)

HQL轉(zhuǎn)換為MapReduce作業(yè)的過程如圖所示,有如下幾個步驟:(1)由Hive驅(qū)動模塊中的解釋器對用戶輸入的HQL語句進行詞法和語法解析,將HQL語句轉(zhuǎn)換為語法樹的形式。(2)抽象語法樹的結(jié)構(gòu)仍然很復(fù)雜,步方便直接翻譯為MapReduce程序,因此還需要把語法樹轉(zhuǎn)換為查詢塊。(3)把查詢塊轉(zhuǎn)換為邏輯查詢計劃,里面包含很多邏輯操作符。(4)重寫邏輯查詢計劃進行優(yōu)化,合并多余操作,減少MapReduce任務(wù)數(shù)量。(5)將邏輯操作符轉(zhuǎn)換為需要執(zhí)行的具體MapReduce任務(wù)。(6)對生成的MapReduce進行優(yōu)化,生成最終的任務(wù)執(zhí)行計劃。(7)由Hive驅(qū)動模塊中的執(zhí)行器,執(zhí)行最終的MapReduce任務(wù)并輸出運行結(jié)果。Hive的數(shù)據(jù)類型湖南軟件職業(yè)技術(shù)大學(xué)

Hive的基本數(shù)據(jù)類型Hive的數(shù)據(jù)類型湖南軟件職業(yè)技術(shù)大學(xué)

Hive的復(fù)雜數(shù)據(jù)類型Hive的數(shù)據(jù)存儲湖南軟件職業(yè)技術(shù)大學(xué)表

Hive的表在邏輯上由存儲的數(shù)據(jù)和描述表中數(shù)據(jù)形式的相關(guān)元數(shù)據(jù)組成。數(shù)據(jù)一般存放在HDFS中,但它也可以放在其他任何Hadoop文件系統(tǒng)中,包括本地文件系統(tǒng)或S3。Hive把元數(shù)據(jù)存放在關(guān)系型數(shù)據(jù)庫中,而不是放在HDFS中。在Hive中創(chuàng)建表時,默認情況下Hive負責(zé)管理數(shù)據(jù)。這意味著Hive把數(shù)據(jù)移入它的“倉庫目錄”。另外一種選擇是創(chuàng)建一個外部表(externaltable),這會讓Hive到倉庫目錄以外的位置訪問數(shù)據(jù)。分區(qū)(Partition)

Hive把表組織成分區(qū)。這是一種根據(jù)分區(qū)列(如日期)的值對表進行粗略劃分的機制。使用分區(qū)可以加快數(shù)據(jù)分片的查詢速度。以分區(qū)的常用情況為例,如日志文件的每條記錄包含一個時間戳。如果我們根據(jù)日期來對它進行分區(qū),那么同一天的記錄就會被存放在同一個分區(qū)中。這樣做的優(yōu)點是:對于限制到某個或者某些特定日期的查詢,它們的處理可以變得非常高效。因為它們只需要掃描查詢范圍內(nèi)分區(qū)中的文件。注意,使用分區(qū)并不會影響大范圍查詢的執(zhí)行,我們?nèi)匀豢梢圆樵兛缍鄠€分區(qū)的整個數(shù)據(jù)集。分桶表或者分區(qū)可以進一步分為桶。它會為數(shù)據(jù)提供額外的結(jié)構(gòu)以獲得更高效的查詢處理。例如,通過用戶ID來劃分桶,我們可以在所有用戶集合的隨機樣本上快速計算基于用戶的查詢。ThanksHadoop大數(shù)據(jù)技術(shù)——HBase分布式數(shù)據(jù)庫湖南軟件職業(yè)技術(shù)大學(xué)HBase概述HBase是什么HBase是一個高可靠、高性能、面向列、可伸縮的分布式數(shù)據(jù)庫,利用HBase技術(shù)可在廉價的PCServer上搭建大規(guī)模結(jié)構(gòu)化存儲集群。HBase是GoogleBigTable的開源實現(xiàn),與Google的BigTable利用GFS作為其文件存儲系統(tǒng)類似,HBase則利用Hadoop的HDFS作為其文件存儲系統(tǒng)。Google運行MapReduce來處理Bigtable中的海量數(shù)據(jù),而HBase則利用Hadoop的MapReduce來處理HBase中的海量數(shù)據(jù)。GoogleBigtable利用Chubby作為協(xié)同服務(wù),而HBase則利用Zookeeper作為協(xié)同服務(wù)。湖南軟件職業(yè)技術(shù)大學(xué)無模式:同一個表的不同行可以有截然不同的列。面向列:HBase是面向列的存儲和權(quán)限控制,并支持列獨立索引。容量巨大:單表可以有百億行、數(shù)百萬列。高可靠性:HBase提供了預(yù)寫日志(WAL)和副本(Replication)機制,防止數(shù)據(jù)丟失。稀疏性:表可以設(shè)計得非常稀疏,值為空的列并不占用存儲空間。擴展性:HBase底層文件存儲依賴HDFS,它天生具備可擴展性。高性能:底層的LSM(Log-StructuredMergeTree)數(shù)據(jù)結(jié)構(gòu)和RowKey有序排列等架構(gòu)上的獨特設(shè)計,使得HBase具備非常高的寫入性能。HBase的特點湖南軟件職業(yè)技術(shù)大學(xué)HBase模型及架構(gòu)HBase邏輯模型湖南軟件職業(yè)技術(shù)大學(xué)HBase中的一個表有若干行,每行有很多列,列中的值可以有多個版本,每個版本的值稱為一個單元格,每個單元格存儲的是該列不同時間的值。HBase表的邏輯模型如圖所示。

表HBase

是一種列式存儲的分布式數(shù)據(jù)庫,其核心概念是表(Table)。與傳統(tǒng)關(guān)系型數(shù)據(jù)庫一樣,HBase

的表也是由行和列組成,但

HBase

同一列可以存儲不同時刻的值,同時多個列可以組成一個列簇(ColumnFamily),這種組織形式主要是出于HBase存取性能的考慮。

行健Rowkey

既是

HBase

表的行鍵,也是

HBase

表的主鍵。HBase

表中的記錄是按照RowKey的字典順序進行存儲的。在HBase中,為了高效地檢索數(shù)據(jù),需要設(shè)計良好的Rowkey來提高查詢性能。因為Rowkey

會被冗余存儲,所以長度不宜過長,Rowkey

過長將會占用大量的存儲空間同時會降低檢索效率。其次

Rowkey

應(yīng)該盡量均勻分布,避免產(chǎn)生熱點問題(大量用戶訪問集中在一個或極少數(shù)節(jié)點,從而造成單臺節(jié)點超出自身承受能力)。另外需要保證Rowkey的唯一性。

列簇HBase表中的每個列都歸屬于某個列簇,一個列簇中的所有列成員有著相同的前綴。比如,列anchor:和anchor:my.look.ca都是列簇anchor的成員。列簇是表的schema的一部分,必須在使用表之前定義列簇,但列卻不是必需的,寫數(shù)據(jù)的時候可以動態(tài)加入。一般將經(jīng)常一起查詢的列放在一個列簇中,合理劃分列簇將減少查詢時加載到緩存的數(shù)據(jù),提高查詢效率,但也不能有太多的列簇,因為跨列簇訪問是非常低效的。

單元格HBase中通過RowKey和Column確定的一個存儲單元稱為單元格(Cell)。每個單元格都保存著同一份數(shù)據(jù)的多個版本,不同時間版本的數(shù)據(jù)按照時間順序倒序排序,最新時間的數(shù)據(jù)排在最前面,時間戳是

64

位的整數(shù),可以由客戶端在寫入數(shù)據(jù)時賦值,也可以由RegionServer自動賦值。HBase邏輯模型HBase物理模型湖南軟件職業(yè)技術(shù)大學(xué)在物理上,表是按列列簇分開存儲的。HBase的列是按列簇分組的,HFile是面向列的物理文件,可以存放行的不同列,一個列簇的數(shù)據(jù)存放在多個HFile中,最重要的是一個列簇的數(shù)據(jù)會被同一個Region管理,物理上存放在一起。表8-1為列簇contens物理模型,表8-2為列簇anchor物理模型。HBase物理模型湖南軟件職業(yè)技術(shù)大學(xué)

HBase表中的所有行都是按照RowKey的字典順序排列,在行的方向上分割為多個Region。Region是HBase數(shù)據(jù)管理的基本單位,數(shù)據(jù)移動、數(shù)據(jù)的負債均衡以及數(shù)據(jù)的分裂都是以Region為單位來進行操作。Region的切分方式如圖所示。HBase物理模型湖南軟件職業(yè)技術(shù)大學(xué)

Region是HBase中分布式存儲就和負債均衡的最小單元。不同的Region會分布到不同的RegionServer上,Region的負債均衡如圖所示。HBase物理模型湖南軟件職業(yè)技術(shù)大學(xué)Region雖然是分布式存儲的最小單元,但并不是存儲的最小單元。Region由一個或多個Store組成,每個Store保存一個ColumnFamily。每個Store又由一個MemStore和零至多個StoreFile組成。MemStore代表寫緩存,StoreFile存儲在HDFS之上。Region的組成結(jié)構(gòu)如圖所示。HBase基本構(gòu)架湖南軟件職業(yè)技術(shù)大學(xué)HBase是一個分布式系統(tǒng)架構(gòu),除了底層HDFS之外,HBase包含4個核心功能模塊,他們分別是客戶端、協(xié)調(diào)服務(wù)模塊、主節(jié)點和從節(jié)點。HBase基本架構(gòu)如圖。ThanksHadoop大數(shù)據(jù)技術(shù)——Sqoop安裝部署Sqoop概述

ApacheSqoop(SQL-to-Hadoop)項目旨在協(xié)助RDBMS與Hadoop之間進行高效的大數(shù)據(jù)遷移。用戶可以在Sqoop的幫助下,輕松地將RDBMS中的數(shù)據(jù)導(dǎo)入到Hadoop或者與其相關(guān)的系統(tǒng)(如HBase和Hive)中;同時也可以將數(shù)據(jù)從Hadoop系統(tǒng)導(dǎo)出到RDBMS。因此,可以說Sqoop就是一個橋梁,連接了RDBMS與Hadoop。湖南軟件職業(yè)技術(shù)大學(xué)Sqoop的優(yōu)勢湖南軟件職業(yè)技術(shù)大學(xué)

Sqoop可以高效地、可控地利用資源,可以通過調(diào)整任務(wù)數(shù)來控制任務(wù)的并發(fā)度。另外它還可以配置數(shù)據(jù)庫的訪問時間。Sqoop可以自動地完成數(shù)據(jù)庫與Hadoop系統(tǒng)中數(shù)據(jù)類型的映射與轉(zhuǎn)換。Sqoop支持多種數(shù)據(jù)庫,比如,MySQL、Oracle和PostgreSQL等數(shù)據(jù)庫。Sqoop架構(gòu)及工作機制湖南軟件職業(yè)技術(shù)大學(xué)

Sqoop的架構(gòu)是非常簡單,它主要由3個部分組成:sqoop客戶端、Hadoop平臺和外部存儲系統(tǒng),如圖所示:用戶向sqoop發(fā)起一個命令之后,這個命令會轉(zhuǎn)換為一個基于Map任務(wù)的MapReduce作業(yè)。Map任務(wù)會訪問數(shù)據(jù)庫的元數(shù)據(jù)信息,通過并行Map任務(wù)將RDBMS的數(shù)據(jù)讀取出來,然后導(dǎo)入Hadoop中。當(dāng)然也可以將Hadoop中的數(shù)據(jù)導(dǎo)入RDBMS中。它的核心思想就是通過基于Map任務(wù)(只有Map)的MapReduce作業(yè)來實現(xiàn)數(shù)據(jù)的并發(fā)復(fù)制和傳輸。SqoopImport流程湖南軟件職業(yè)技術(shù)大學(xué)Sqoop數(shù)據(jù)導(dǎo)入流程是:首先用戶輸一條SqoopImport命令,Sqoop會從RDBMS中獲取元數(shù)據(jù)信息,Sqoop獲取這些信息之后會將命令轉(zhuǎn)換為基于Map的MapReduce作業(yè)。MapReduce作業(yè)中有很多Map任務(wù),每個Map任務(wù)從數(shù)據(jù)庫中讀取一片數(shù)據(jù),多個Map任務(wù)實現(xiàn)并發(fā)復(fù)制,將整個數(shù)據(jù)快速復(fù)制到HDFS上。SqoopExport流程湖南軟件職業(yè)技術(shù)大學(xué)

Sqoop數(shù)據(jù)局導(dǎo)出流程是:首先用戶輸入一條SqoopExport命令,Sqoop會獲取RDBMS的元數(shù)據(jù),建立Hadoop字段與數(shù)據(jù)庫表字段的映射關(guān)系。然后將輸入命令轉(zhuǎn)換為基于Map的MapReduce作業(yè),這樣MapReduce作業(yè)中會有很多個Map任務(wù),他們并行地從HDFS讀取數(shù)據(jù),并將整個數(shù)據(jù)復(fù)制到RDBMS中。ThanksHadoop大數(shù)據(jù)技術(shù)——Flume日志采集系統(tǒng)Flume概述

Flume是Cloudera開發(fā)的一個分布式的、可靠的、高可用的系統(tǒng),它能夠?qū)⒉煌瑪?shù)據(jù)源的海量日志數(shù)據(jù)進行高效收集、聚合、移動,最后存儲到一個中心化的數(shù)據(jù)存儲系統(tǒng)中。隨著互聯(lián)網(wǎng)的發(fā)展,特別是移動互聯(lián)網(wǎng)的興起,產(chǎn)生了海量的用戶日志信息,為了實時分析和挖掘用戶需求,需要使用Flume高效快速采集用戶日志,同時對日志進行聚合避免小文件的產(chǎn)生,然后將聚合后的數(shù)據(jù)通過管道移動到存儲系統(tǒng)進行后續(xù)的數(shù)據(jù)分析和挖掘。湖南軟件職業(yè)技術(shù)大學(xué)Flume架構(gòu)設(shè)計湖南軟件職業(yè)技術(shù)大學(xué)

Flume之所以比較強大,是源于自身的一個設(shè)計-Agent。Agent本身是一個Java進程,它運行在日志收集節(jié)點之上。Agent里面包含3個核心組件:source、Channel和Sink。Flume構(gòu)架如圖所示。Flume架構(gòu)設(shè)計湖南軟件職業(yè)技術(shù)大學(xué)

客戶端操作消費數(shù)據(jù)的來源,可以將數(shù)據(jù)發(fā)送給FlumeAgent。Flume支持多種數(shù)據(jù)源,如Avro、Log4j、Syslog和Http。Flume自帶很多Source組件支持采集各種數(shù)據(jù)源,常見的類型見表。Flume架構(gòu)設(shè)計湖南軟件職業(yè)技術(shù)大學(xué)Channel是中轉(zhuǎn)Event(數(shù)據(jù)的表現(xiàn)形式)的一個臨時存儲就,保存用Source組件傳遞過來的Event,目前比較常用的Channel有MemoryChannel和FileChannel。FlumeChannel支持的常用類型見表Flume架構(gòu)設(shè)計湖南軟件職業(yè)技術(shù)大學(xué)

Sink在設(shè)置存儲數(shù)據(jù)時,可以向文件系統(tǒng)、數(shù)據(jù)庫、hadoop中存儲數(shù)據(jù)。FlumeSink支持的常見類型如表所示。ThanksHadoop大數(shù)據(jù)技術(shù)——Kafka分布式集群搭建湖南軟件職業(yè)技術(shù)大學(xué)

Kafka是由LinkedIn開發(fā)的一個分布式的消息系統(tǒng),使用Scala語言編寫,它以可水平擴展和高吞吐率的特點而被廣泛使用。目前越來越多的開源分布式處理系統(tǒng),如Spark、Flink都支持與Kafka集成。比如一個實時日志分析系統(tǒng),F(xiàn)lume采集數(shù)據(jù)通過接口傳輸?shù)終afka集群(多臺Kafka服務(wù)器組成的集群稱為Kafka集群),然后Flink或者Spark直接調(diào)用接口從Kafka實時讀取數(shù)據(jù)并進行統(tǒng)計分析。Kafka概述03010402支持KafkaServer間的消息分區(qū),以及分布式消息消費,同時保證每個Partition內(nèi)的消息順序傳輸。支持離線數(shù)據(jù)處理和實時數(shù)據(jù)處理。保證高吞吐率,即使在非常廉價的商用機器上,也能做到單機支持每秒100,000條消息的傳輸速度。以時間復(fù)雜度為O(1)的方式提供消息持久化(Kafka)能力,即使對TB級以上數(shù)據(jù)也能保證常數(shù)時間的訪問性能。持久化是將程序數(shù)據(jù)在持久狀態(tài)和瞬時狀態(tài)間轉(zhuǎn)換的機制。通俗地講,就是瞬時數(shù)據(jù)(比如內(nèi)存中的數(shù)據(jù)是不能永久保存的)持久化為持久數(shù)據(jù)(比如持久化至磁盤中能夠長久保存)。Kafka設(shè)計目標Kafka設(shè)計目標湖南軟件職業(yè)技術(shù)大學(xué)Kafka特點高吞吐量、低延遲:Kafka

每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒。可擴展性:Kafka集群同Hadoop集群一樣,支持橫向擴展。持久性、可靠性:Kafka消息可以被持久化到本地磁盤,并且支持Partition數(shù)據(jù)備份,防止數(shù)據(jù)丟失。容錯性:允許Kafka集群中的節(jié)點失敗,如果Partition(分區(qū))副本數(shù)量為n,則最多允許n-1個節(jié)點失敗。高并發(fā):單節(jié)點支持上千個客戶端同時讀寫,每秒鐘有

溫馨提示

  • 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

提交評論