分享

HBase 各部件的作用

howtodown 2013-12-11 16:35:56 发表于 概念型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 23980
本帖最后由 howtodown 于 2013-12-11 16:48 编辑

catalog 表
-ROOT- 表用来跟踪 .META. 表。
META 用来保存所有 region 列表。
客户端直接和对应的 regionserver 联系。不通过 master。一个 region 是否应该被重新分配要么由 master 的负载均衡决定要么一个 regionserer 死了,客户端重新查询 catalog 表来看新的 region 在哪个 regionserver 上。
关于 master
用来监视所有的 RegionServer 的行为,同时也是所有 meta 数据改变的接口。
启动行为
在多主环境下,主会竞争。
运行时的影响
如果主挂掉,由于客户端直接和 RegionServer 通信,因此 cluster 可能短期依然是可运行的。catalog 表不一定存在于 master 上。master 应该尽快恢复。
接口
master 暴露的接口包括:表的创建,修改,删除等等;region 的移动,分配;列族的增加修改等等。
master 有几个后台线程:
负载均衡线程,.META. 的清理等等。
regionserver
暴露的方法包括数据的增加,删除,next,get 等;
region 的拆分紧凑等等。
当 HBaseAdmin 的 majorCompact 方法在一个表上被请求时,客户端实际上是直接和每个 region 在通信。
会启动下面几个线程:
compact,split,memstore flush,HLog 检查。
major 和 minor compact 区别是啥?
“minor compaction” 仅仅合并小文件为大文件,major compaction 则合并一个 region 内的所有文件,并进行清理操作。
log 总是刷吗?
是的,也可以不刷。
zookeeper 作用
保存了 root 在哪里。
Zookeeper为HBase提供了稳定服务和failover机制。
ROOT- 和.META表
HBase中有两张特殊的Table,-ROOT-和.META.
META.:记录了用户表的Region信息,.META.可以有多个regoin
ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
Zookeeper中记录了-ROOT-表的location
Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作,不过client端会做cache缓存。
Zookeeper
Zookeeper Quorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的单点问题

已有(5)人评论

跳转到指定楼层
break-spark 发表于 2014-10-14 15:06:41
内容不错,写的有点乱
回复

使用道具 举报

Joker 发表于 2015-1-2 17:08:53
版主想请问下,Region中保存的是一些真实的数据吗?还是说保存的是一些元数据信息?
Region一般是多大的呢?是什么类型?

望赐教

点评

Region保存的是真实数据,你存入的数据,都会保存到Region中,数据达到阀值会flush。Region不是什么类型,而是保存的多种数据,本质是多个文件。  发表于 2015-1-2 19:18
回复

使用道具 举报

bioger_hit 发表于 2015-1-2 19:20:44
本帖最后由 bioger_hit 于 2015-1-2 19:22 编辑
Joker 发表于 2015-1-2 17:08
版主想请问下,Region中保存的是一些真实的数据吗?还是说保存的是一些元数据信息?
Region一般是多大的呢? ...


详细查看这个:

[HBase]Region location

hbase如何确定一条新数据写入到哪个regionserver?

请问hbase如何设置region大小啊


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条