你好,游客 登录
背景:
阅读新闻

HBase数据模型

[日期:2013-10-21] 来源:开源中国社区  作者: [字体: ]

  Table & Column Family
  Row KeyTimestampColumn Family
  URIParser
  r1t3url=http://www.taobao.comtitle=天天特价
  t2host=taobao.com
  t1
  r2t5url=http://www.alibaba.comcontent=每天…
  t4host=alibaba.com
  ?  Row Key: 行键,Table的主键,Table中的记录按照Row Key排序
  ?  Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number
  ?  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.
  ?  .META.:记录了用户表的Region信息,.META.可以有多个regoin
  ?  -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
  ?  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系统自身的细节。





收藏 推荐 打印 | 录入: | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款