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

下載本文檔

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

文檔簡介

大數據分析之Hadoop工具應用

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論