云計算(第三版)配套之21第6章Hadoop20大家族(二)_第1頁
云計算(第三版)配套之21第6章Hadoop20大家族(二)_第2頁
云計算(第三版)配套之21第6章Hadoop20大家族(二)_第3頁
云計算(第三版)配套之21第6章Hadoop20大家族(二)_第4頁
云計算(第三版)配套之21第6章Hadoop20大家族(二)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

6.1Hadoop2.0大家族概述6.2ZooKeeper6.3Hbase6.4Pig6.5Hive6.6Oozie6.7Flume6.8Mahout6.9小結26.3Hbase200620082010谷歌發(fā)表論文BigTablePowerset開啟了Hbase工程Powerset將Hbase交給Apache托管Hbase成為Apache頂級工程Hbase是基于Hadoop的開源分布式數(shù)據(jù)庫,它以Google的BigTable為原型,設計并實現(xiàn)了具有高可靠性高性能列存儲可伸縮實時讀寫的分布式數(shù)據(jù)庫系統(tǒng)。HBase適合于存儲非結構化數(shù)據(jù)Hbase是基于列的而不是基于行的模式Hbase在Hadoop之上提供了類似于BigTable的能力6.3Hbase6.3.1Hbase簡介6.3.2Hbase入門46.3HbaseHbase數(shù)據(jù)模型數(shù)據(jù)的邏輯模型數(shù)據(jù)的物理模型“表”的形式存儲結構化數(shù)據(jù)數(shù)據(jù)庫一般以“表”的形式存儲數(shù)據(jù)Hbase也以用戶對數(shù)據(jù)的組織形式Hbase里數(shù)據(jù)在HDFS上的具體存儲形式5Hbase數(shù)據(jù)模型邏輯模型列族概念元素時間戳行和列確定的存儲單元6行健時間戳列族contents列族anchor列族mime"n.www"t9

anchor:="CNN"

t8

anchor:my.look.ca="CNN.com"

t6contents:html="<html>…"

mime:type="text/html"t5contents:html="<html>…"

t6contents:html="<html>…"

6.3HbaseHbase數(shù)據(jù)模型表中僅有一行數(shù)據(jù),行的唯一標識為,對這行數(shù)據(jù)的每一次邏輯修改都有一個時間戳關聯(lián)對應。表中共有四列:contents:html,anchor:cnnsi,,mime:type,每一列以前綴的方式給出其所屬的列族。76.3HbaseHbase數(shù)據(jù)模型在Hbase中訪問表中的行有三種方式通過單個行健訪問給定行健的范圍訪問全表掃描行鍵是數(shù)據(jù)行在表中的唯一標識,并作為檢索記錄的主鍵。Hbase提供了兩個版本的回收方式:對每個數(shù)據(jù)單元,只存儲指定個數(shù)的最新版本1保存最近一段時間內(nèi)的版本〔如七天〕,客戶端可以按需查詢2元素由行健、列〔<列族>:<限定符>〕和時間戳唯一確定,元素中的數(shù)據(jù)以字節(jié)碼的形式存儲,沒有類型之分。物理模型概念模型中的一個行進行分割并按照列族存儲Hbase數(shù)據(jù)模型表中的空值是不被存儲的如果沒有指名時間戳,那么返回指定列的最新數(shù)據(jù)值可以隨時向表中的任何一個列添加新列,而不需要事先聲明8行健時間戳列族contents"n.www"t6contents:html="<html>…"t5contents:html="<html>…"t3contents:html="<html>…"行健時間戳列族anchor"n.www"t9anchor:="CNN"t8anchor:my.look.ca="CNN.com"行健時間戳列族mime"n.www"t6mime:type="text/html"6.3HbaseHbase數(shù)據(jù)模型9Hbase采用master/slave架構主節(jié)點運行的效勞稱為HMaster從節(jié)點效勞稱為HRegionServer底層采用HDFS存儲數(shù)據(jù)Hbase架構clientHMaster6.3HbaseHbase架構1〕ClientClient端使用Hbase的RPC機制與HMaster和HRegionServer進行通信2〕ZooKeeper存儲了ROOT表的地址、HMaster的地址和HRegionServer地址3〕HMasterHbase主節(jié)點,將Region分配給HRegionServer,協(xié)調(diào)HRegionServer的負載并維護集群狀態(tài)4〕HRegionServerHRegionServer主要負責響應用戶I/O請求,向HDFS文件系統(tǒng)中讀寫數(shù)據(jù)126.3Hbase6.3.1Hbase簡介6.3.2Hbase入門146.3HbaseHbase部署123456部署前提Hbase部署規(guī)劃部署HbaseHDFS里新建Hbase存儲目錄配置Hbase啟動Hbase集群156.3HbaseHbase接口Hbase提供了諸多訪問接口,下面簡單羅列各種訪問接口。NativeJavaAPIHbaseShellThriftGateway最常規(guī)和高效的訪問方式,適合HadoopMapReduceJob并行批處理Hbase表數(shù)據(jù)。Hbase的命令行工具,最簡單的接口,適合管理、測試時使用。166.3HbaseHbase接口Hbase提供了諸多訪問接口,下面簡單羅列各種訪問接口。RESTGatewayPigHive支持REST風格的HTTPAPI訪問Hbase,解除了語言限制??梢允褂肞igLatin流式編程語言操作Hbase中的數(shù)據(jù),和Hive類似,本質(zhì)上最終也是編譯成MRJob來處理Hbase表數(shù)據(jù),適合做數(shù)據(jù)統(tǒng)計。同Pig類似,用戶可以使用類SQL的HiveQL語言處理Hbase表中數(shù)據(jù),當然最終本質(zhì)依舊是HDFS與MR操作。176.3HbaseHbase接口【例6-3】按要求完成問題:①假定MySQL里有member表,要求使用Hbase的Shell接口,在Hbase中新建并存儲此表。②簡述Hbase是否適合存儲問題①中的結構化數(shù)據(jù),并簡單表達Hbase與關系型數(shù)據(jù)庫的區(qū)別。身份ID姓名性別年齡教育職業(yè)收入201401aa021e0p3m201402bb122e1p2l201403cc123e2p1m18下面將姓名、性別、年齡這三個字段抽象為個人屬性〔personalAttr〕,教育、職業(yè)、收入抽象為社會屬性〔socialAttr〕,personalAttr列族包含name、gender和age三個限定符;同理socialAttr下包含edu、prof、inco三個限定符。Key行鍵Value列鍵列族personalAttr列族socialAttr身份ID姓名性別年齡教育職業(yè)收入201401aa021e0p3M201402bb122e1p2L201403cc123e2P1M6.3HbaseHbase接口【例6-3】解:19[root@iClient~]#hbaseshell#進入Hbase命令行hbase(main):001:0>list#查看所有表hbase(main):002:0>create'member','id','personalAttr','socialAttr'#創(chuàng)立member表hbase(main):003:0>listhbase(main):004:0>scan'member'#查看member內(nèi)容hbase(main):005:0>put'member','202101','personalAttr:name','aa'#向member表中插入數(shù)據(jù)hbase(main):006:0>put'member','202101','personalAttr:gender','0'hbase(main):007:0>put'member','202101','personalAttr:age','21'hbase(main):008:0>put'member','202101','socialAttr:edu','e0'hbase(main):009:0>put'member','202101','socialAttr:job','p3'hbase(main):010:0>put'member','202101','socialAttr:imcome','m'hbase(main):011:0>scan'member'hbase(main):012:0>disable'member'#廢棄member表hbase(main):013:0>drop'member'#刪除member表hbase(main):014:0>quit按上述思路,iClient上依次執(zhí)行如下命令:6.3HbaseHbase接口206.3HbaseHbase接口下面簡單羅列Hbase和關系型數(shù)據(jù)庫的區(qū)別:Hbase只提供字符串這一種數(shù)據(jù)類型,其他數(shù)據(jù)類型的操作只能靠用戶自行處理,而關系型數(shù)據(jù)庫有豐富的數(shù)據(jù)類型;Hbase數(shù)據(jù)操作只有很簡單的插入、查詢、刪除、修改、清空等操作,不能實現(xiàn)表與表關聯(lián)操作,而關系型數(shù)據(jù)庫有大量此類SQL語句和函數(shù);Hbase基于列式存儲,每個列族都由幾個文件保存,不同列族的文件是別離的,關系型數(shù)據(jù)庫基于表格設計和行模式保存;Hbase修改和刪除數(shù)據(jù)實現(xiàn)上是插入帶有特殊標記的新記錄,而關系型數(shù)據(jù)庫是數(shù)據(jù)內(nèi)容的替換和修改;Hbase為分布式而設計,可通過增加機器實現(xiàn)性能和數(shù)據(jù)增長,而關系型數(shù)據(jù)庫很難做到這一點。123456.1Hadoop2.0大家族概述6.2ZooKeeper6.3Hbase6.4Pig6.5Hive6.6Oozie6.7Flume6.8Mahout6.9小結6.4Pig6.4.1Pig簡介6.4.2Pig入門23Pig相當于一個Hadoop的客戶端,它先連接到Hadoop集群,之后才能在集群上進行各種操作。Pig的根本框架如以以下圖所示。PigLatinMapReduceCluster6.4PigPig根本框架246.4PigPig語法1〕PigLatin數(shù)據(jù)類型根本數(shù)據(jù)類型1和大局部程序語言類似,Pig的根本數(shù)據(jù)類型為int、long、float、double、chararray和bytearray。復雜數(shù)據(jù)類型2字符串或根本類型與字符串的組合,主要包含以下四種。FiledTupleBagMap256.4PigPig語法2〕PigLatin運算符加〔+〕減〔-〕乘〔*〕除〔/〕取余〔%〕三目運算符〔?:〕比較運算符等于〔==〕不等〔!=〕26PigLatin是由一系列函數(shù)〔命令〕構成的數(shù)據(jù)處理流,這些函數(shù)或是內(nèi)置或是用戶自定義,下表是最常用的幾個命令。操作名稱功能LOAD載入待處理數(shù)據(jù)FOREACH逐行處理TupleFILTER過濾不滿足條件的TupleDUMP將結果打印到屏幕STORE將結果保存到文件6.4PigPig語法3〕PigLatin函數(shù)6.4Pig6.4.1Pig簡介6.4.2Pig入門286.4PigPig入門1.Pig部署2.Pig訪問接口由于Pig只相當于Hadoop的一個客戶端,用戶所寫的PigLatin經(jīng)翻譯器翻譯后再提

溫馨提示

  • 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

提交評論