中科院云計算培訓材料j7hbase_第1頁
中科院云計算培訓材料j7hbase_第2頁
中科院云計算培訓材料j7hbase_第3頁
中科院云計算培訓材料j7hbase_第4頁
中科院云計算培訓材料j7hbase_第5頁
已閱讀5頁,還剩50頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1第7講HBase列數據技術21) HBase運行機制簡介2) HBase與HDFS3) HBase的對外接口4) ZooKeeper的數據模型5) ZooKeeper的使用背景HBase 項目開始于2006 by Chad Walters和Jim Kellerman at Powerset.受到 Google “Bigtable: A Distributed Storage System for Structured Data” 文章的啟發.HBase release 1 與Hadoop 0.15.0 捆綁,發布于October 2007.HBase 是一個在HDFS上開發的,面向列的,分布

2、式數據.如果需要實時的,隨機讀寫超大規模數據集,就可以用HBase這個 Hadoop應用.HBase不是數據庫和不支持SQLHBase可以在廉價硬件超大規模的稀疏表 Webtable就是其典型應用的集群上,管理引入HBASE的-1數據庫系統已無法適應大型分布式數據的需要改良的數據庫(副本、分區等)難于安裝與維護模型對數據的操作使數據的存貯變得復雜-2HBASE從設計理念上就為可擴展做好了充分準備空間的擴展只需要加入結點使用表的概念,但不同于庫,不支持SQL數據實質上是一張極大的、非常稀疏的,存分布式文件系統上的表HBASE用例WebTable抓取網頁和相關每個頁面對應一行,是個有百萬行的大表要

3、基于此表進行分析與對關鍵字進行索引并由搜索引擎表需要并發地被眾多網頁抓取程序隨機地以及更新數據表內容也要作為網頁實時緩存被大量用戶隨機HBase 數據模型數據存放在帶的表中. Tables 由rows和columns組成.Table cells單元格有版本 是HBase單元格時候的時間戳.列組成“列族”. 所有的列族成員有相同的前綴.物理上,所有的列族成員都一起存放在文件系統中. HBase實際上就是一個面向列族的器邏輯視圖Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“com.w ww”T9T8.COM

4、T6“<html>. “Text/htmlT5“<html>. “t3“<html>. “數據模型行“com.w行鍵列列Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.caT9T8.COM“<html>. “Text/htmlww”T6T5“<html>. “t3“<html>. “數據模型行每行數據有一可排序的關鍵字和任意列項字符串、整數、二進制串甚至與串行化的結構都可以作為行鍵表按照行鍵的“逐字節排序”順序對行進行有序化處理表內數據非常

5、稀疏,不同的行的列的數完全目可以大不相同數據模型行可以只對一行上“鎖”對行的寫操作是始終是“”的數據模型列列必須用族(family)來定義任意一列有如下形式“族:”其中,族和都可為任意形式的串物理上將同“族”數據數據可通過時間戳區分版本在一起族數據模型列Row KeyTimeColumnStampContentsColumn AnchorColumn “mime”my.look.ca“com.w ww”T9T8.COMT6“<html>. “Text/htmlT5“<html>. “t3“<html>物理視圖Row KeyTime StampColumn:

6、mimeCom.wwwT6text/htmlRow KeyTime StampColumn: AnchorCom.wwwT9Anchor:T5Anchor:my.look.ca.COMRow KeyTime StampColumn: ContentsCom.wwwT6“<html>.”T5“<html>.”T3“<html>.”HTableRow KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“com.w ww”T9T8.COMT6“<html>. “Text/ht

7、mlT5“<html>. “t3“<html>. “HBase vs RDBMSHBase 是一個面向列的,分布式數據統.系 通過在HDFS上提供隨機讀寫,來解決Hadoop不能處理的問題. 適合對大表進行處理,可以并行讀寫HBase設計的目標是: 表可以很高 (數十億行), 表可以很寬(數百萬列), 水平分區,并可以在上千個普用機上自動HBase特點沒有真正的索引 行是順序的,列也是,不索引膨脹的問題,自動分區性能和表的大小無關. 在表增長的時候,表會自動到可用節點上.線性擴展和新節點自動處理 增加一個節點指向現有集群,運行Regionserver,區域自動重新平衡,

8、實現均勻分布.成區域,并分布HBase 特點硬件 Clusters集群是由 $1,000$5,000 的構,節點架 而RDBMS 需要大量I/O,因此需要昂貴的容錯 大量節點意味著每個節點重要性不突出,不擔心單個節點的失敗.批處理. MapReduce集能,使得可以采用并行的分布式作業,根據數據的位置來處理.系統總體結構Zoo KeeperClusterHDFSClusterHBase master node協調Master 負載較輕,一些regionserver. 主要管理啟動 bootstrap,指派 regions給regionservers, 修復regionserver 故障.Reg

9、ionservers 負責區域管理,響應客戶的讀寫請求. 區域的劃分,通知master新的子區域區域(Regions)子表HBase自動的把表水平劃分成區域 regions. 每個區域由表中的行的子集.區域由它所屬于的表,第一行及最后一行來表示.區域是HBase集群 分布數據的最小 隨著表變大,區域的個數也在增加. 如果一個表對集群中任何服務器太大,表將會被放到服務器群中,每個節點負責來管理區域的一個子集.元數據(Meta)表 全部用戶區域的屬性數據都中元數據表區域中數據起止行狀態等、區域“在線” 保存區域服務器地址 元數據表也可包含多個區域,區域屬性數據在“根”結點上根(ROOT)表 只存包

10、含一個區域 將元數據中的區域到區域服務器元數據服務器位置以及數據區域了哪些元區域服務器(Region Server)職能負責處理用戶的讀寫請求服務器(Master Server)上報的狀態,并獲取需要服務的區域為提高效率,消息通過捎帶(pigback)方式通過“心跳”分組進行傳遞區域服務器“寫”寫數據首先寫入“預寫日志” WAL對于一個區域服務器而言,對其提供服務的所有區域的“寫”操作日志都在同一個日志中數據并非直接寫文件系統,而是先緩存, 緩存到一定數量再批量寫入寫入完成后在日志中做標記區域服務器“讀”區域服務器現在內存的緩存中查找,如果命中請求,則直接服務如果多個版本,則返回順序按照從最新

11、到最老區域服務器合并如果文件(HFile)數量超過閾值,區域服務器會進行一次合并(Compaction)合并操作也周期性進行合并可與區域服務器響應用戶的讀寫請求并發進行如果讀寫請求與合并區域相關,讀寫操作先掛起,直到合并操作完成區域服務器分割當區域文件大過閾值后,區域文件會按照行的方式對半進行分割(Split)操作分割也作為一種請求被區域服務器處理被分割區域先離線區域服務器在元表中生成子表元主服務器在得知分割操作進行后,將子表分配給新的區域服務器進行服務被分割區域通過回收機制回收失效恢復由于檢測沒有心跳,主服務器能夠探知區域服務器的失效主服務器將失效服務器所提供服務的區域重新分配給其它區域服務

12、器原失效區域服務器的“預寫日志” 由主服務器進行分割,并派送給新的區域服務器客戶端連接到ZooKeeper集群獲取根區域數據和元數據的位置在元數據中查找需要行所在的區域,并定位提供該區域服務的區域服務器直接與區域服務器交互以獲取數據根區域數據、元數據以及用戶區域都被客戶端緩存,以備下次使用安裝配置并解壓安裝文件: % tar xzf hbase-0.X.tar.gz 需要ZooKeeper支持,本身帶zookeeper.jar包設置CLASS_PATH及相應的環境 %export HBASE_HOME=/home/hbase/hbase-0.X %export PATH=$PATH:$HBAS

13、E_HOME/bin編輯設置環境 HBase conf下 hbase-env.sh, regionservers,hbase-site.xml等HBase依賴于ZooKeeperHBase管理一個ZooKeeper實例,作為集群的權威.HBase負責根目錄表的位置,當前集群master的地址等的管理如果區域分配過程中,有服務器ZooKeeper來協調分配.,通過HBase 通過Hadoop文件系統API來持久化存儲數據.模式設計要注意HBase表 Cells是有版本的, rows 是有序的, columns 是以列族出現的.HBase可以以極小的開銷,管理較寬的稀疏表 HBase沒有內置對 j

14、oin的支持 但是寬表足夠容納相關的數據 基本不需要做join行鍵行鍵 應該將精力集中于設計行鍵. 設計復合鍵時,可能需要用0來填充數據,使得 行鍵可以正確排序. 如果鍵是整數,則應該使用二進制形式 而不是把數據持久化成字符串類型.數據是通過行鍵 設計時要知道如何的這些數據.啟動HBase和shell啟動Hbase$ start-hbase.sh 這將啟動一個 HBase instance啟動HBase Shell $ hbase shell,會出現類似下面的場景 HBase Shell; enter help<RETURN> for list ofsupportedds. Typ

15、e “exit<RETURN>” toleave the HBase Shell >36主令主令 create 創建表 describe 描述表 enable/disable 表激活/取消 drop 刪除表 get/put 表讀寫create 創建表創建一個包含一列的表hbase> create test, datahbase> list test38Put添加數據用put添加數據hbase>put test, row1, data:1, value1hbase>put test, row2, data:2, value2hbase> put &

16、#39;test', 'row3', 'data:3', 'value339Scan查看數據hbase>scan 'test'ROWRow1Row2 Row3COLUMN+CELLcolumn=data:1, timestamp=1240148026198, value=value1column=data:2, timestamp=1240148040035, value=value2 column=data:3, timestamp=1240148047497, value=value33row(s) in 0.0825s

17、econds40刪除表先設置為禁用hbase> disable 'test'INFO.HBaseAdmin: Disabled test 0row(s) in 6.0426 seconds再刪除hbase> drop test INFO.HBaseAdmin: Deleted test41Stop HBase停止HBase instance :$ stop-hbase.sh42HBase APIHBaseConfiguration addResource()HTable put() get()ResultScanner next()UI用戶界面HBase 在mast

18、er上運行了一個web server,提供集群的狀態視圖. 默認端口是 60010.master UI 顯示了基本的屬性 如版本,集群,請求頻率,集群列表,加入的regionservers等.在界面上點擊一個regionserver 會進入它所運行的web server. 列出了這個服務器上所有區域的列表及其它基本的屬性值(可用資源,請求頻率).Bulk Load批量加載HBase可以批量加載,從 MapReduce把內部格式顯示的數據,直接寫入文件系統,從而實現批量加載.相關工具的loads.html見ZooKeeper分布式應用的協調器 大部分分布式應用需要一個主控、協調器或器,來管理物理

19、分布的子進程(如資源、任務分配等)為什么需要ZooKeeper?目前,大部分應用需要開發私有的協調程序, 缺乏一個通用的機制協調程序的反復編寫浪費,且難以形成通用、伸縮性協調器ZooKeeper:提供通用的分布式鎖服務,用以協調分布式應用(如,為HBase提供服務)安裝ZooKeeper解壓: % tar xzf zookeeper-0.X.tar.gz設置環境: %export ZOOKEEPER_INSTALL=/home/tom/zookeeper-0.X %export PATH=$PATH:$ZOOKEEPER_INSTALL/bin運行一個本地的ZooKeeper server: % zkServer.sh start實現ZooKeeper 服務有兩種運行模式.模式standalone mode 只有一個ZooKeeper server,用于測試,不能保證高可用性和恢復性.模式repli

溫馨提示

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

評論

0/150

提交評論