前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop基础教程-第10章 HBase:Hadoop数据库(10.2 HBase基本概念、框架)(草稿)

Hadoop基础教程-第10章 HBase:Hadoop数据库(10.2 HBase基本概念、框架)(草稿)

作者头像
程裕强
发布2018-01-02 15:57:21
7030
发布2018-01-02 15:57:21
举报

第10章 HBase:Hadoop数据库

10.2 HBase基本概念、框架

本节内容,大多是从网络上汇总而来,并做了一定总结修改。

10.2.1 HBase的特点

  • 大:一个表可以有上亿行,上百万列。
  • 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
  • 稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
  • 无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
  • 数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
  • 数据类型单一:HBase中的数据都是字符串,没有类型。

10.2.2 HBase基本概念

  • RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要
  • Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
  • Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
  • Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
  • Value(Cell):Byte array

10.2.3 HBase架构组成

这里写图片描述
这里写图片描述

由图可知HBase建立在Hadoop之上,HBase底层使用的是Hadoop的HDFS。准确的说HBase建立在HDFS之前,并不依赖于Hadoop。 HBase包含3个重要组件:Zookeeper、HMaster和HRegionServer。 (1)Zookeeper 为整个HBase集群提供协助服务,包括:

代码语言:javascript
复制
     1)存放整个 HBase集群的元数据以及集群的状态信息。
     2)实现HMaster主从节点的failover。

ZooKeeper为HBase集群提供协调服务,它管理着HMaster和HRegionServer的状态(available/alive等),并且会在它们宕机时通知给HMaster,从而HMaster可以实现HMaster之间的failover,或对宕机的HRegionServer中的HRegion集合的修复(将它们分配给其他的HRegionServer)。ZooKeeper集群本身使用一致性协议(PAXOS协议)保证每个节点状态的一致性。 (2)HMaster 主要用于监控和操作集群中的所有HRegionServer。HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的MasterElection机制保证总有一个Master在运行 主要负责Table和Region的管理工作:

代码语言:javascript
复制
    1)管理用户对表的增删改查操作
    2)管理HRegionServer的负载均衡,调整Region分布
    3)Region Split后,负责新Region的分布
    4)在HRegionServer停机后,负责失效HRegionServer上Region迁移

(3)HRegionServer HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据。

代码语言:javascript
复制
    1)存放和管理本地HRegion。
    2)读写HDFS,管理Table中的数据。
    3)Client直接通过HRegionServer读写数据(从HMaster中获取元数据,找到RowKey所在的HRegion/HRegionServer后)。

10.2.4 物理存储

每个column family存储在HDFS上的一个单独文件中,空值不会被保存。 Key 和 Version number在每个 column family中均有一份; HBase 为每个值维护了多级索引,即:<key, column family, column name, timestamp> 物理存储: (1)Table中所有行都按照row key的字典序排列; (2)Table在行的方向上分割为多个Region; (3)Region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来越多的region; (4)Region是Hbase中分布式存储和负载均衡的最小单元,不同Region分布到不同RegionServer上。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第10章 HBase:Hadoop数据库
  • 10.2 HBase基本概念、框架
    • 10.2.1 HBase的特点
      • 10.2.2 HBase基本概念
        • 10.2.3 HBase架构组成
          • 10.2.4 物理存储
          相关产品与服务
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档