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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論