SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Hbase介紹
   資料模型(Data Model) 與系統架構 (Architecture)




     趨勢科技研發實驗室




Public 2009/5/13

                                           1
課程大綱

•   HBase 簡介
•   HBase 資料模型
•   HBase 系統架構
•   參考資料




                 Copyright 2009 - Trend Micro Inc.



                                                     2
Introduction to HBase

‧ HBase 是具有以下特點的儲存系統:
  – 類似表格的資料結構 (Multi-Dimensional Map)
  – 分散式
  – 高可用性、高效能
  – 很容易擴充容量及效能
‧ Hbase 適用於利用數以千計的一般伺服器上,來儲存
  Petabytes級的資料。
‧ HBase 以 Hadoop 分散式檔案系統 (HDFS) 為基礎, 提供類
  Bigtable 功能
‧ Hbase同時提供Hadoop MapReduce程式設計。




                                        Copyright 2009 - Trend Micro Inc.



                                                                            3
HBase 發展史

• 2006 年 11 月
  – Google 發佈 BigTable 相關論文
• 2007 年 2 月
  – 建立初始的 HBase 原型,用來做為 Hadoop 的構成要素
• 2007 年 10 月
  – 第一個可使用的 HBase
• 2008 年 1 月
  – Hadoop 成為 Apache 頂層專案,而 HBase 則成為子專案
• 2008 年10 月
  – HBase 0.18 版與 0.19 版發佈




                                      Copyright 2009 - Trend Micro Inc.



                                                                          4
HBase並不是 …

• 不是關聯式(Relational)資料庫系統
  – 表格(Table)只有一個主要索引
(primary
index)
即
row
key.
  – 不提供
join
  – 不提供
SQL語法。
     • 提供Java函式庫,
與
REST與Thrift等介面。
     • 提供
getRow(),
Scan()
存取資料。
        – getRow()可以取得一筆row
range的資料,同時也可以指定版本
          (timestamp)。
        – Scan()可以取得整個表格的資料或是一組row
range
(設定start
key,
end

          key)
  – 有限的單元性(Aatomicity)與交易
(transaction)功能.
  – 只有一種資料型態
(bytes)



                                                     Copyright 2009 - Trend Micro Inc.



                                                                                         5
為什麼使用Bigtable?

•   關聯式資料庫(Relational Database) 適用做資料異動 C.R.U.D
    (create, retrieval, update, delete) 等操作,主要因為這動作在記憶體
    中進行。對於超大量的資料分析,資料分散在多個節點的情況下,關
    聯式資料庫系統就不適用了。現有可於大量資料的分析的聯式資料庫
    軟體價格昂貴,且仍只適用在特定用途。

•   這裏所謂的大量資料分析是指
     – Big queries – 整個資料表的存取
     – Big databases - 100 Terabytes以上的資料


•   Bigtable的可以配合MapReduce框架,進行複雜的分析與查詢。




Classification                                    Copyright 2009 - Trend Micro Inc.



                                                                                      6
為什麼使用HBase?

   •   HBase實作Bigtable的概念。
   •   它是開放原始碼
   •   架構在Hadoop分散式儲存系統(HDFS)上。
   •   HBase是Apache的專案之一,未來的支援及維護上較有保障。




Classification                    Copyright 2009 - Trend Micro Inc.



                                                                      7
邏輯資料模型 (Logical Data Model)
   • Table依 row key 來自動排序
   • Table schema 只要定義 column families .
        – 每個column family 可有無限數量的 columns
        – 每個column的值可有無限數量的時間版本(timestamp)
        – Column可以動態新增,每個row可有不同數量的columns。
        – 同一個column family的columns會群聚在一個實體儲存單元上,
          且依 column 的名稱排序。
        – byte[] 是唯一的資料型態(Row, Family: Column, Timestamp) 
          Value
    Row Key       Time    Column       Column (Family)
                  Stamp   (Family)     “anchor:”
                          “content:”
    com.cnn.www   t9      “<html>…”    “anchor:cnnsi.com”    “CNN”
                  t8                   “anchor:cnnsi.com”    “CNN”
                                       “anchor:my.lock.ca”   “MyLook”

                  t6      “<html>…”

Classification                                                       Copyright 2009 - Trend Micro Inc.



                                                                                                         8
實體資料模型 (Physical Data Model)
 • HBase實際上儲存Table時,是以column family為單位來存放


         Row Key       Time    Column (Family)
                       Stamp   “content:”

         com.cnn.www   t9      “<html>…”
                       t6      “<html>…”

         Row Key       Time    Column (Family)
                       Stamp   “anchor:”
         com.cnn.www   t9      “anchor:cnnsi. “CNN”
                               com”
                       t8      “anchor:cnnsi. “CNN”
                               com”           “MyLook”
                               “anchor:my.loc
                               k.ca”

Classification                                           Copyright 2009 - Trend Micro Inc.



                                                                                             9
實際個案討論 – 部落格
•   邏輯資料模型
      – 一篇 Blog entry 由 title, date, author, type, text 欄位所組成。
      – 一位User由 username, password等欄位所組成。
      – 每一篇的 Blog entry可有許多Comments。每一則comment由 title, author, 與 text
        組成。


•   ERD




Classification                                                Copyright 2009 - Trend Micro Inc.



                                                                                              10
部落格 – HBase Table Schema




•   Row key
      –   type (以2個字元的縮寫代表)與 timestamp組合而成。
      –   因此 rows 會先後依 type 及 timestamp 排序好。方便用 scan () 來存取 Table的資料。
•   BLOGENTRY 與 COMMENT的”一對多”關係由comment_title, comment_author,
    comment_text 等column families 內的動態數量的column來表示。 每個Column的名稱
    是由每則 comment的 timestamp來表示,因此每個column family的 column 會依時間
    自動排序好




Classification                                                    Copyright 2009 - Trend Micro Inc.



                                                                                                  11
HBase 架構

   Region        Row Keys   Column Family   •   表格是由一或多個 region 所構
                            “Content:”
                                                成
   Region 1 00000           …                   – Region 是由其 startKey 與
                 00001      …                     endKey 所指定
                 …          …               •   每個 region 可能會存在於多個
                 09999      …                   不同節點上,而且是由數個
   Region 2 10000           …                   HDFS 檔案與區塊所構成,這
                 …          …                   類 region 是由 Hadoop 負責複
                 …          …                   製。
                 29999      …




Classification                                                   Copyright 2009 - Trend Micro Inc.



                                                                                                 12
HBase 架構

 • Region Servers
       – 負責處理使用者的request (write/read/scan)
       – 定時送 heartbeat 給 master
       – 增加 region servers將可增加整體的throughput
 • HBase Master
       –   負責管理region servers
       –   適度分配regions給region servers
       –   負責處理使用者的查詢,並提供資料所在的region server資訊。
       –   目前master為single point of failure




Classification                                Copyright 2009 - Trend Micro Inc.



                                                                              13
HBase 架構


                                            ROOT
                                  Region
                                  Server
                                            META

                                           Region 1
                                  Region
                                  Server
                                           Region 2
        Master
                                           Region 3
                                  Region
                                  Server
         HRPC              HRPC            Region 4

                 Clients          Region   Region 5
                                  Server
                                           Region 6




Classification                                        Copyright 2009 - Trend Micro Inc.



                                                                                      14
HBase的Client Interface

   • Java client
         – get(byte [] row, byte [] column, long timestamp, int versions);
   • Non-Java clients
         – Thrift server
                 • Sample ruby, c++, & java (via thrift) clients
         – REST server
   • TableInput/OutputFormat for MapReduce
   • HBase Shell
         – ./bin/hbase shell YOUR_SCRIPT




Classification                                                      Copyright 2009 - Trend Micro Inc.



                                                                                                    15
參考資料

   • Google BigTable 論文
         – http://labs.google.com/papers/bigtable.html
   • HBase 官方網站
         – http://hadoop.apache.org/hbase/
   • HBase 官方 wiki
         – http://wiki.apache.org/hadoop/Hbase




Classification                                           Copyright 2009 - Trend Micro Inc.



                                                                                         16

Weitere ähnliche Inhalte

Was ist angesagt?

Hadoop 設定與配置
Hadoop 設定與配置Hadoop 設定與配置
Hadoop 設定與配置鳥 藍
 
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Wei-Yu Chen
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us Simon Hsu
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese Vickie Zeng
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Wei-Yu Chen
 
Hadoop 與 SQL 的甜蜜連結
Hadoop 與 SQL 的甜蜜連結Hadoop 與 SQL 的甜蜜連結
Hadoop 與 SQL 的甜蜜連結James Chen
 
Hadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research InstituteHadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research InstituteXu Wang
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010Chuanying Du
 
Log collection
Log collectionLog collection
Log collectionFEG
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践Li Map
 
How to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environmentHow to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environmentAnna Yen
 
MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習孜羲 顏
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念haiyuan ning
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012James Chen
 
Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來Wei-Yu Chen
 
Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Wensong Zhang
 
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师Enlight Chen
 

Was ist angesagt? (20)

Hadoop 設定與配置
Hadoop 設定與配置Hadoop 設定與配置
Hadoop 設定與配置
 
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
 
Hadoop 與 SQL 的甜蜜連結
Hadoop 與 SQL 的甜蜜連結Hadoop 與 SQL 的甜蜜連結
Hadoop 與 SQL 的甜蜜連結
 
Hadoop hive
Hadoop hiveHadoop hive
Hadoop hive
 
Hadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research InstituteHadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research Institute
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
Log collection
Log collectionLog collection
Log collection
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
 
IT03
IT03IT03
IT03
 
How to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environmentHow to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environment
 
MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012
 
Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來
 
Hadoop 介紹 20141024
Hadoop 介紹 20141024Hadoop 介紹 20141024
Hadoop 介紹 20141024
 
Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师
 
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
 

Andere mochten auch

Andere mochten auch (8)

Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfs
 
Zh tw introduction_to_map_reduce
Zh tw introduction_to_map_reduceZh tw introduction_to_map_reduce
Zh tw introduction_to_map_reduce
 
Zh tw cloud computing era
Zh tw cloud computing eraZh tw cloud computing era
Zh tw cloud computing era
 
Zh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingZh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computing
 
Introduction to h base
Introduction to h baseIntroduction to h base
Introduction to h base
 
Introduction to map reduce
Introduction to map reduceIntroduction to map reduce
Introduction to map reduce
 
Introduction to hadoop and hdfs
Introduction to hadoop and hdfsIntroduction to hadoop and hdfs
Introduction to hadoop and hdfs
 
Cloud computing era
Cloud computing eraCloud computing era
Cloud computing era
 

Ähnlich wie Zh tw introduction_to_h_base

分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
Ted yu:h base and hoya
Ted yu:h base and hoyaTed yu:h base and hoya
Ted yu:h base and hoyahdhappy001
 
Introduction to Hbase
Introduction to HbaseIntroduction to Hbase
Introduction to Hbaseliamzheng
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on HadoopSchubert Zhang
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
Cassandra简介.ppt
Cassandra简介.pptCassandra简介.ppt
Cassandra简介.pptjames tong
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)My own sweet home!
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路li luo
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构drewz lin
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discusseverestsun
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构Shaoning Pan
 
Exchange server 2010规划与设计
Exchange server 2010规划与设计Exchange server 2010规划与设计
Exchange server 2010规划与设计popskf
 
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zhengBdwf11 netezza james_zheng
Bdwf11 netezza james_zhengbigdatawf
 
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京vanadies10
 

Ähnlich wie Zh tw introduction_to_h_base (20)

分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
Hbase
HbaseHbase
Hbase
 
Ted yu:h base and hoya
Ted yu:h base and hoyaTed yu:h base and hoya
Ted yu:h base and hoya
 
Introduction to Hbase
Introduction to HbaseIntroduction to Hbase
Introduction to Hbase
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
内存数据库[1]
内存数据库[1]内存数据库[1]
内存数据库[1]
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
Cassandra简介.ppt
Cassandra简介.pptCassandra简介.ppt
Cassandra简介.ppt
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discuss
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构
 
Exchange server 2010规划与设计
Exchange server 2010规划与设计Exchange server 2010规划与设计
Exchange server 2010规划与设计
 
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zhengBdwf11 netezza james_zheng
Bdwf11 netezza james_zheng
 
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
 

Zh tw introduction_to_h_base

  • 1. Hbase介紹 資料模型(Data Model) 與系統架構 (Architecture)  趨勢科技研發實驗室 Public 2009/5/13 1
  • 2. 課程大綱 • HBase 簡介 • HBase 資料模型 • HBase 系統架構 • 參考資料 Copyright 2009 - Trend Micro Inc. 2
  • 3. Introduction to HBase ‧ HBase 是具有以下特點的儲存系統: – 類似表格的資料結構 (Multi-Dimensional Map) – 分散式 – 高可用性、高效能 – 很容易擴充容量及效能 ‧ Hbase 適用於利用數以千計的一般伺服器上,來儲存 Petabytes級的資料。 ‧ HBase 以 Hadoop 分散式檔案系統 (HDFS) 為基礎, 提供類 Bigtable 功能 ‧ Hbase同時提供Hadoop MapReduce程式設計。 Copyright 2009 - Trend Micro Inc. 3
  • 4. HBase 發展史 • 2006 年 11 月 – Google 發佈 BigTable 相關論文 • 2007 年 2 月 – 建立初始的 HBase 原型,用來做為 Hadoop 的構成要素 • 2007 年 10 月 – 第一個可使用的 HBase • 2008 年 1 月 – Hadoop 成為 Apache 頂層專案,而 HBase 則成為子專案 • 2008 年10 月 – HBase 0.18 版與 0.19 版發佈 Copyright 2009 - Trend Micro Inc. 4
  • 5. HBase並不是 … • 不是關聯式(Relational)資料庫系統 – 表格(Table)只有一個主要索引
(primary
index)
即
row
key. – 不提供
join – 不提供
SQL語法。 • 提供Java函式庫,
與
REST與Thrift等介面。 • 提供
getRow(),
Scan()
存取資料。 – getRow()可以取得一筆row
range的資料,同時也可以指定版本 (timestamp)。 – Scan()可以取得整個表格的資料或是一組row
range
(設定start
key,
end
 key) – 有限的單元性(Aatomicity)與交易
(transaction)功能. – 只有一種資料型態
(bytes) Copyright 2009 - Trend Micro Inc. 5
  • 6. 為什麼使用Bigtable? • 關聯式資料庫(Relational Database) 適用做資料異動 C.R.U.D (create, retrieval, update, delete) 等操作,主要因為這動作在記憶體 中進行。對於超大量的資料分析,資料分散在多個節點的情況下,關 聯式資料庫系統就不適用了。現有可於大量資料的分析的聯式資料庫 軟體價格昂貴,且仍只適用在特定用途。 • 這裏所謂的大量資料分析是指 – Big queries – 整個資料表的存取 – Big databases - 100 Terabytes以上的資料 • Bigtable的可以配合MapReduce框架,進行複雜的分析與查詢。 Classification Copyright 2009 - Trend Micro Inc. 6
  • 7. 為什麼使用HBase? • HBase實作Bigtable的概念。 • 它是開放原始碼 • 架構在Hadoop分散式儲存系統(HDFS)上。 • HBase是Apache的專案之一,未來的支援及維護上較有保障。 Classification Copyright 2009 - Trend Micro Inc. 7
  • 8. 邏輯資料模型 (Logical Data Model) • Table依 row key 來自動排序 • Table schema 只要定義 column families . – 每個column family 可有無限數量的 columns – 每個column的值可有無限數量的時間版本(timestamp) – Column可以動態新增,每個row可有不同數量的columns。 – 同一個column family的columns會群聚在一個實體儲存單元上, 且依 column 的名稱排序。 – byte[] 是唯一的資料型態(Row, Family: Column, Timestamp)  Value Row Key Time Column Column (Family) Stamp (Family) “anchor:” “content:” com.cnn.www t9 “<html>…” “anchor:cnnsi.com” “CNN” t8 “anchor:cnnsi.com” “CNN” “anchor:my.lock.ca” “MyLook” t6 “<html>…” Classification Copyright 2009 - Trend Micro Inc. 8
  • 9. 實體資料模型 (Physical Data Model) • HBase實際上儲存Table時,是以column family為單位來存放 Row Key Time Column (Family) Stamp “content:” com.cnn.www t9 “<html>…” t6 “<html>…” Row Key Time Column (Family) Stamp “anchor:” com.cnn.www t9 “anchor:cnnsi. “CNN” com” t8 “anchor:cnnsi. “CNN” com” “MyLook” “anchor:my.loc k.ca” Classification Copyright 2009 - Trend Micro Inc. 9
  • 10. 實際個案討論 – 部落格 • 邏輯資料模型 – 一篇 Blog entry 由 title, date, author, type, text 欄位所組成。 – 一位User由 username, password等欄位所組成。 – 每一篇的 Blog entry可有許多Comments。每一則comment由 title, author, 與 text 組成。 • ERD Classification Copyright 2009 - Trend Micro Inc. 10
  • 11. 部落格 – HBase Table Schema • Row key – type (以2個字元的縮寫代表)與 timestamp組合而成。 – 因此 rows 會先後依 type 及 timestamp 排序好。方便用 scan () 來存取 Table的資料。 • BLOGENTRY 與 COMMENT的”一對多”關係由comment_title, comment_author, comment_text 等column families 內的動態數量的column來表示。 每個Column的名稱 是由每則 comment的 timestamp來表示,因此每個column family的 column 會依時間 自動排序好 Classification Copyright 2009 - Trend Micro Inc. 11
  • 12. HBase 架構 Region Row Keys Column Family • 表格是由一或多個 region 所構 “Content:” 成 Region 1 00000 … – Region 是由其 startKey 與 00001 … endKey 所指定 … … • 每個 region 可能會存在於多個 09999 … 不同節點上,而且是由數個 Region 2 10000 … HDFS 檔案與區塊所構成,這 … … 類 region 是由 Hadoop 負責複 … … 製。 29999 … Classification Copyright 2009 - Trend Micro Inc. 12
  • 13. HBase 架構 • Region Servers – 負責處理使用者的request (write/read/scan) – 定時送 heartbeat 給 master – 增加 region servers將可增加整體的throughput • HBase Master – 負責管理region servers – 適度分配regions給region servers – 負責處理使用者的查詢,並提供資料所在的region server資訊。 – 目前master為single point of failure Classification Copyright 2009 - Trend Micro Inc. 13
  • 14. HBase 架構 ROOT Region Server META Region 1 Region Server Region 2 Master Region 3 Region Server HRPC HRPC Region 4 Clients Region Region 5 Server Region 6 Classification Copyright 2009 - Trend Micro Inc. 14
  • 15. HBase的Client Interface • Java client – get(byte [] row, byte [] column, long timestamp, int versions); • Non-Java clients – Thrift server • Sample ruby, c++, & java (via thrift) clients – REST server • TableInput/OutputFormat for MapReduce • HBase Shell – ./bin/hbase shell YOUR_SCRIPT Classification Copyright 2009 - Trend Micro Inc. 15
  • 16. 參考資料 • Google BigTable 論文 – http://labs.google.com/papers/bigtable.html • HBase 官方網站 – http://hadoop.apache.org/hbase/ • HBase 官方 wiki – http://wiki.apache.org/hadoop/Hbase Classification Copyright 2009 - Trend Micro Inc. 16