• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • HBase技術詳細介紹

    發表于:2015-07-10來源:uml.org.cn作者:不詳點擊數: 標簽:數據庫
    HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

      HBase簡介

      HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

      HBase是Google Bigtable的開源實現,類似Google Bigtable利用GFS作為其文件存儲系統,HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MapReduce來處理Bigtable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google Bigtable利用 Chubby作為協同服務,HBase利用Zookeeper作為對應。

      上圖描述了Hadoop EcoSystem中的各層系統,其中HBase位于結構化存儲層,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩定服務和failover機制。

      此外,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單。 Sqoop則為HBase提供了方便的RDBMS數據導入功能,使得傳統數據庫數據向HBase中遷移變的非常方便。

      HBase訪問接口

      1. Native Java API,最常規和高效的訪問方式,適合Hadoop MapReduce Job并行批處理HBase表數據

      2. HBase Shell,HBase的命令行工具,最簡單的接口,適合HBase管理使用

      3. Thrift Gateway,利用Thrift序列化技術,支持C++,PHP,Python等多種語言,適合其他異構系統在線訪問HBase表數據

      4. REST Gateway,支持REST 風格的Http API訪問HBase, 解除了語言限制

      5. Pig,可以使用Pig Latin流式編程語言來操作HBase中的數據,和Hive類似,本質最終也是編譯成MapReduce Job來處理HBase表數據,適合做數據統計

      6. Hive,當前Hive的Release版本尚沒有加入對HBase的支持,但在下一個版本Hive 0.7.0中將會支持HBase,可以使用類似SQL語言來訪問HBase

      HBase數據模型

      Table & Column Family

      Row Key: 行鍵,Table的主鍵,Table中的記錄按照Row Key排序

      1.Timestamp: 時間戳,每次數據操作對應的時間戳,可以看作是數據的version number

      2.Column Family:列簇,Table在水平方向有一個或者多個Column Family組成,一個Column Family中可以由任意多個Column組成,即Column Family支持動態擴展,無需預先定義Column的數量以及類型,所有Column均以二進制格式存儲,用戶需要自行進行類型轉換。

      Table & Region

      當Table隨著記錄數不斷增加而變大后,會逐漸分裂成多份splits,成為regions,一個region由[startkey,endkey)表示,不同的region會被Master分配給相應的RegionServer進行管理:

      -ROOT- && .META. Table

      HBase中有兩張特殊的Table,-ROOT-和.META.

      1..META.:記錄了用戶表的Region信息,.META.可以有多個regoin

      2.-ROOT-:記錄了.META.表的Region信息,-ROOT-只有一個region

      3.Zookeeper中記錄了-ROOT-表的location

      Client訪問用戶數據之前需要首先訪問zookeeper,然后訪問-ROOT-表,接著訪問.META.表,最后才能找到用戶數據的位置去訪問,中間需要多次網絡操作,不過client端會做cache緩存。

      MapReduce on HBase

      在HBase系統上運行批處理運算,最方便和實用的模型依然是MapReduce,如下圖:

      HBase Table和Region的關系,比較類似HDFS File和Block的關系,HBase提供了配套的TableInputFormat和TableOutputFormat API,可以方便的將HBase Table作為Hadoop MapReduce的Source和Sink,對于MapReduce Job應用開發人員來說,基本不需要關注HBase系統自身的細節。

      HBase系統架構

      Client

      HBase Client使用HBase的RPC機制與HMaster和HRegionServer進行通信,對于管理類操作,Client與HMaster進行RPC;對于數據讀寫類操作,Client與HRegionServer進行RPC

      Zookeeper

      Zookeeper Quorum中除了存儲了-ROOT-表的地址和HMaster的地址,HRegionServer也會把自己以Ephemeral方式注冊到 Zookeeper中,使得HMaster可以隨時感知到各個HRegionServer的健康狀態。此外,Zookeeper也避免了HMaster的 單點問題,見下文描述

    原文轉自:http://www.uml.org.cn/sjjm/201409305.asp

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>