大數(shù)據(jù)分析之Hadoop工具應用_第1頁
大數(shù)據(jù)分析之Hadoop工具應用_第2頁
大數(shù)據(jù)分析之Hadoop工具應用_第3頁
大數(shù)據(jù)分析之Hadoop工具應用_第4頁
大數(shù)據(jù)分析之Hadoop工具應用_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大數(shù)據(jù)分析之Hadoop工具應用

——分布式文件系統(tǒng)(HDFS)、分布式數(shù)據(jù)庫(Hbase)與分布式計算(MapReduce)什么是大數(shù)據(jù)銀行互聯(lián)網(wǎng)圖書館海量交易數(shù)據(jù):企業(yè)內(nèi)部的經(jīng)營交易信息主要包括聯(lián)機交易數(shù)據(jù)和聯(lián)機分析數(shù)據(jù),是結構化的、通過關系數(shù)據(jù)庫迕行管理和訪問的靜態(tài)、歷史數(shù)據(jù)。通過這些數(shù)據(jù),我們能了解過去發(fā)生了什么。海量交互數(shù)據(jù):源于Facebook、Twitter、LinkedIn及其他來源的社交媒體數(shù)據(jù)構成。它包括了呼叫詳細記錄CDR、設備和傳感器信息、GPS和地理定位映射數(shù)據(jù)、通過管理文件傳輸ManageFileTransfer協(xié)議傳送的海量圖像文件、Web文本呾點擊流數(shù)據(jù)、科孥信息、電子郵件等等??梢愿嬖V我們未來會収生什么。海量歸檔數(shù)據(jù):圖書館內(nèi)部存儲的大量的圖書目錄信息主要包括了圖書數(shù)量信息和圖書流動信息等等,包含了圖書館的所有重要信息。什么是大數(shù)據(jù)兵工行業(yè)的大數(shù)據(jù)在哪里?大數(shù)據(jù)類型與存儲大數(shù)據(jù)類型非結構化數(shù)據(jù)結構化數(shù)據(jù)實時數(shù)據(jù)GIS數(shù)據(jù)大數(shù)據(jù)存儲分布式文件系統(tǒng)關系型數(shù)據(jù)庫集群分布式數(shù)據(jù)庫GIS數(shù)據(jù)庫集群存儲、管理、訪問可平滑擴展可冗余備份,保證高可靠性快速訪問分發(fā)機制支持大量訪問請求數(shù)據(jù)訪問優(yōu)化策略數(shù)據(jù)處理流程采集預處理檢索分析展現(xiàn)共享存儲大數(shù)據(jù)處理的技術關鍵分析技術:數(shù)據(jù)處理:自然語言處理技術;統(tǒng)計和分析:地域占比,文本情感分析,A/Btest,topN排行榜;數(shù)據(jù)挖掘:建模,聚類,分類,排名;模型預測:預測模型,機器學習,建模仿真。存儲技術:結構化數(shù)據(jù):海量數(shù)據(jù)查詢、統(tǒng)計、更新等操作效率低非結構化數(shù)據(jù):圖片、視頻、word、pdf、ppt等文件存儲,不利于檢索,存儲和查詢半結構化數(shù)據(jù):轉換為結構化數(shù)據(jù)或者按照非結構化存儲。大數(shù)據(jù)技術:數(shù)據(jù)采集:ETL工具;數(shù)據(jù)存?。宏P系數(shù)據(jù)庫,NoSQL,NewSQL,等基礎架構支持:云存儲,分布式文件系統(tǒng)等;計算結果展現(xiàn):云計算,標簽云,關系圖等。解決方案:Hadoop(MapReduce技術)、MongoDB、流計算(twitter的strom和yahoo!的S4)Hadoop項目介紹Hadoop最先是由Apache公司在2005年引入的,起源于google開發(fā)的MapReduce和GoogleFileSystem(GFS)項目。Google云計算MapReduceBigTableGFSChubbyGFS→HDFSBigTable→HbaseMapReduce→Hadoop分布式文件系統(tǒng)——HDFS什么是分布式文件系統(tǒng)?分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不一定直接在本地節(jié)點上,而是通過計算機網(wǎng)絡與節(jié)點相連。分布式文件系統(tǒng)設計基于客戶機/服務器模式,一個典型的網(wǎng)絡可能包括多個供用戶訪問的服務器。用戶可以在任意一臺客戶機上訪問其他機器的文件系統(tǒng)。為什么需要分布式文件系統(tǒng)?高擴展能力:HDFS采用元數(shù)據(jù)中心化管理,然后通過客戶端暫存數(shù)據(jù)分布減小元數(shù)據(jù)的訪問壓力;高可用性:一是整個文件系統(tǒng)的可用性,二是數(shù)據(jù)的完整和一致性。數(shù)據(jù)完整性通過文件的鏡像和文件自動修復來解決;彈性存儲:可以根據(jù)業(yè)務需要靈活地增加或縮減數(shù)據(jù)存儲以及增刪存儲池中的資源,而不需要中斷系統(tǒng)運行;分布式文件系統(tǒng)——HDFSHDFS的設計HDFS為了做到可靠性(reliability)創(chuàng)建了多份數(shù)據(jù)塊(datablocks)的復制(replicas),并將它們放置在服務器群的計算節(jié)點中(computenodes)。分布式文件系統(tǒng)——HDFSHDFS應用場景超大文件

流式數(shù)據(jù)訪問一次寫入,多次讀取傳輸時間與尋址時間商用硬件適量的文件數(shù)為把“計算”移動到“數(shù)據(jù)”提供基礎和便利適用?低延時的數(shù)據(jù)訪問?大量小文件?多用戶寫入,任意修改文件不適用分布式文件系統(tǒng)——HDFS塊(BLOCK)的概念在傳統(tǒng)的塊存儲介質(zhì)中,塊是讀寫的最小數(shù)據(jù)單位(扇區(qū))傳統(tǒng)文件系統(tǒng)基于存儲塊進行操作●為了節(jié)省文件分配表空間,會對物理存儲塊進行整合,一般大小為4096字節(jié)HDFS也使用了塊的概念,但是默認大小設為64M字節(jié)●可針對每個文件配置,由客戶端指定●每個塊有一個自己的全局IDHDFS將一個文件分為一個或數(shù)個塊來存儲●每個塊是一個獨立的存儲單位●以塊為單位在集群服務器上分配存儲使用塊的好處當一個文件大于集群中任意一個磁盤的時候,文件系統(tǒng)可以充分利用集群中所有的磁盤管理塊使底層的存儲子系統(tǒng)相對簡單塊更加適合備份,從而為容錯和高可用性的實現(xiàn)帶來方便塊的冗余備份每個塊在集群上會存儲多份(replica)●默認復制份數(shù)為3●可針對每個文件配置,由客戶端指定●可動態(tài)修改某個塊的所有備份都是同一個ID●系統(tǒng)無需記錄“哪些塊其實是同一份數(shù)據(jù)”系統(tǒng)可以根據(jù)機架的配置自動分配備份位置●兩份在一個機架的兩臺機器上●另一份在集群的另一個機架的某臺機器上●此策略是性能與冗余性的平衡●機架信息需要手工配置分布式文件系統(tǒng)——HDFSHDFS的元數(shù)據(jù)元數(shù)據(jù)包括文件系統(tǒng)目錄樹信息文件名,目錄名文件和目錄的從屬關系文件和目錄的大小,創(chuàng)建及最后訪問時間權限文件和塊的對應關系文件由哪些塊組成塊的存放位置機器名,塊IDHDFS對元數(shù)據(jù)和實際數(shù)據(jù)采取分別存儲的方法元數(shù)據(jù)存儲在指定的服務器上(NameNode)實際數(shù)據(jù)儲存在集群的其他機器的本地文件系統(tǒng)中(DataNode)分布式文件系統(tǒng)——HDFSHDFS的高可用性Client1Client2DataNode節(jié)點NameNode1NameNode2NFS服務器正常運行狀態(tài)單點失效狀態(tài)分布式文件系統(tǒng)——HDFSHDFS的高可用性NameNode掛了怎么辦?系統(tǒng)采用雙NameNode節(jié)點分布管理設計方案,支持分布式的元數(shù)據(jù)服務器,支持元數(shù)據(jù)自動日志功能,實現(xiàn)用戶數(shù)據(jù)和元數(shù)據(jù)的備份和自動恢復,當一臺服務器發(fā)生宕機時,其管理功能可以有另外的服務器接管,系統(tǒng)可以正常運行,對外提供服務。NameNodeNameNode是用來管理文件系統(tǒng)命名空間的組件

一個HDFS集群只有一臺active的NameNode一個HDFS集群只有一個命名空間,一個根目錄NameNode上存放了HDFS的元數(shù)據(jù)元數(shù)據(jù)保存在NameNode的內(nèi)存當中,以便快速查詢1G內(nèi)存大致可以存放1,000,000個塊對應的元數(shù)據(jù)信息按缺省每塊64M計算,大致對應64T實際數(shù)據(jù)分布式文件系統(tǒng)——HDFSHDFS的高可用性Datanode?一個數(shù)據(jù)塊在DataNode以文件存儲在磁盤上,包括兩個文件,一個是數(shù)據(jù)本身,一個是元數(shù)據(jù)包括數(shù)據(jù)塊的長度,塊數(shù)據(jù)的校驗和,以及時間戳。?DataNode啟動后向NameNode注冊,通過后,周期性(1小時)的向NameNode上報所有的塊信息。?心跳是每3秒一次,心跳返回結果帶有NameNode給該DataNode的命令如復制塊數(shù)據(jù)到另一臺機器,或刪除某個數(shù)據(jù)塊。如果超過10分鐘沒有收到某個DataNode的心跳,則認為該節(jié)點不可用。?集群運行中可以安全加入和退出一些機器。DataNode中的磁盤掛了怎么辦?DataNode正常服務;自動盡快通NameNode壞掉的磁盤上的數(shù)據(jù)。DataNode所在機器掛了怎么辦?datanode每3秒鐘向namenode發(fā)送心跳,如果10分鐘datanode沒有向namenode發(fā)送心跳,則namenode認為該datanode已經(jīng)dead,namenode將取出該datanode上對應的block,對其進行復制。增加DataNode節(jié)點后?系統(tǒng)平臺增加新節(jié)點之后,系統(tǒng)自動在所有節(jié)點之間均衡數(shù)據(jù)。系統(tǒng)后臺根據(jù)忙閑程度,自動發(fā)起,占用很少系統(tǒng)資源,無需人工干預,實現(xiàn)數(shù)據(jù)均衡分布。分布式數(shù)據(jù)庫——HBaseHBase概述HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術來源于Changetal所撰寫的Google論文“Bigtable:一個結構化數(shù)據(jù)的分布式存儲系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(FileSystem)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase不同于一般的關系數(shù)據(jù)庫,它是一個適合于非結構化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。HBase技術特點1、大表:一個表可以有上億行,上百萬列2、面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索。3、稀疏:對于為空(null)的列,并不占用存儲空間,因此,表可以設計的非常稀疏。分布式數(shù)據(jù)庫——HBaseHBase表存儲結構示例RowKey:行鍵,表的主鍵,表中的記錄按照RowKey字典排序;Timestamp:時間戳,每次數(shù)據(jù)操作對應的時間記錄,可以看做是數(shù)據(jù)的版本號;ColumnFamily:列簇,表在水平方向有一個或者多個ColumnFamily組成,一個ColumnFamily可以由多個Column組成,即ColumnFamily支持動態(tài)擴展,無需預先定義Column的數(shù)量及類型,所有Column均以二進制格式存儲,用戶需要自行進行型轉換。分布式數(shù)據(jù)庫——HBaseHbase物理部署Hbase邏輯架構分布式數(shù)據(jù)庫——HBaseClient:

包含訪問hbase的接口,client維護著一些cache來加快對hbase的

訪問,比如region的位置信息。Zookeeper:1.保證任何時候,集群中只有一個master; 2.存貯所有Region的尋址入口; 3.實時監(jiān)控RegionServer的狀態(tài),將Regionserver的上線和下線信

息實時通知給Master; 4.存儲Hbase的schema,包括有哪些table,每個table有哪些 columnfamily。Master:1.為Regionserver分配region; 2.負責regionserver的負載均衡; 3.發(fā)現(xiàn)失效的regionserver并重新分配其上的region; 4.HDFS上的垃圾文件回收; 5.處理schema更新請求。RegionServer:1.Regionserver維護Master分配給它的region,處理對這些region的IO 請求; 2.Regionserver負責切分在運行過程中變得過大的region。Hbase物理部署分布式數(shù)據(jù)庫——HBaseHbase物理存儲HTable:在行方向上分為多個HRegion。當表隨著記錄的不斷增加而變大后,會逐漸分裂成多份splits,稱為region,一個region由[startkey,endkey]表示,不同的region會被Master分配給相應的RegionServer進行管理。HRegion:Region按大小分隔,達到閾值,HRegion自動等分,后臺會一直進行split和sort操作,以達到region的等分。HTableHRegion分割分布式數(shù)據(jù)庫——HBaseHRegion分布Hbase物理存儲Region是分布式存儲的最小單元分布式數(shù)據(jù)庫——HBaseHbase物理存儲storefile就是列簇,一個列簇整合成一個storefile文件。所有數(shù)據(jù)進來先在memstor進行緩沖,達到一定的閥值就刷新一次形成一個storefile。分布式數(shù)據(jù)庫——HBaseHFile:Hbase中KeyValue數(shù)據(jù)存儲格式,是Hadoop的二進制格式文件,實際上StoreFile就是對HFile做了輕量級包裝,即StoreFile底層就是HFile。分布式數(shù)據(jù)庫——HBaseHLogFile:HBase中WAL(WriteAheadLog)的存儲格式,物理上是Hadoop的SequenceFile。WAL類似mysql中的binlog,用來做災難恢復作用,HLog記錄數(shù)據(jù)的所有變更,一旦數(shù)據(jù)修改,就可以從log中進行恢復。每個RegionServer維護一個Hlog,而不是每個Region一個。這樣不同region(來自不同table)的日志會混在一起,這樣做的目的是不斷追加單個文件相對于同時寫多個文件而言,可以減少磁盤尋址次數(shù),因此可以提高對table的寫性能。帶來的麻煩是,如果一臺regionserver下線,為了恢復其上的region,需要將regionserver上的log進行拆分,然后分發(fā)到其它regionserver上進行恢復。SequenceFile的Key是HLogKey對象,HLogKey中記錄了寫入數(shù)據(jù)的歸屬信息,除了table和region名字外,同時還包括sequencenumber和timestamp,timetamp是“寫入時間”,sequencenumber的起始值為0,或者是最近一次存入文件系統(tǒng)中sequencenumber。HLogSequeceFile的Value是HBase的KeyValue對象,即對應HFile中的KeyValue。分布式計算——MapReduce大數(shù)據(jù)處理計算問題簡單,但求解困難待處理的數(shù)據(jù)量巨大,只有分布在成百上千個節(jié)點上并行計算才能在可接受的時間內(nèi)完成如何進行并行分布式計算?如何分發(fā)待處理數(shù)據(jù)?如何處理分布式計算中的錯誤?MapReduce特性自動實現(xiàn)分布式并行計算容錯提供狀態(tài)監(jiān)控工具模型抽象簡潔,程序員易用分布式計算——MapReduceHadoop上的MapReducejob:是客戶端程序想要完成的一系列工作的集合。包括輸入數(shù)據(jù),MapReduce程序和配置信息。用戶只要在客戶端提交工作,MapReduce會自動分配任務給集群中的計算節(jié)點。task:Hadoop將job分解為tasks有兩種類型的task:maptask和reducetask。jobtracker和tasktracker:

用來控制job執(zhí)行的;tasktracker運行task,并向jobtracker報告進度信息;jobtracker記錄下每一個job的進度信息,如果一個task失敗,jobtracker會將其重新調(diào)度到另外的tasktracker上。MapReduce特性分布式計算——Ma

溫馨提示

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

評論

0/150

提交評論