码迷,mamicode.com
首页 > 其他好文 > 详细

HBase的工作原理和相关操作

时间:2015-12-23 15:56:10      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

学习一个开源软件的基本思路都是(1)安装和配置(2)理解工作原理(3)命令操作(4)代码操作(5)研究源码(6)根据论文或需求进行二次开发。同样,学习HBase也不例外,但我省去了HBase集群(4台)的安装和配置,主要总结HBase的工作原理,Shell命令操作,Java代码操作相关内容。

一. HBase存储结构

技术分享

 

1. Client

解析:

对于管理类的操作,Client与HMaster进行RPC,对于数据读写类的操作,Client与HRegionServer进行RPC。

2. ZooKeeper

解析:

ZooKeeper作为协同服务,可以看成是Google的Chubby的开源实现,主要的目的是为了避免HMaster的单点问题。

3. HMaster

解析:

HMaster主要负责Table和Region的管理工作。具体功能如下所示:

  • 管理用户对Table的增、删、改、查操作;
  • 管理HRegionServer的负载均衡,调整Region分布;
  • 在Region Split后,负责新Region的分配;
  • 在HRegionServer停机后,负责失效HRegionServer上的Region迁移。

4. HRegionServer

 

技术分享

 

HRegionServer主要负责响应用户I/O请求,向HDFS中读写数据,是HBase中最核心的模块。总体的关系是HRegionServer包含多个HRegion,HRegion包含多个HStore,每个HStore对应Table中的一个Column Family的存储。HStore包含MemStore和StoreFile两个部分。MemStore是Sorted Memory Buffer,用户写入的数据首先放入MemStore,当MemStore满了以后会执行Flush操作变成一个StoreFile(底层实现是HFile),当StoreFile文件数量增长到一定阈值时,会触发Compact合并操作,将多个StoreFile合并到一个StoreFile,合并过程中会进行版本合并和数据删除。

HBase的工作原理和相关操作

标签:

原文地址:http://www.cnblogs.com/shengshengwang/p/5069808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!