前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HBase框架基础(一)

HBase框架基础(一)

作者头像
大数据和云计算技术
发布2018-07-26 16:03:01
6080
发布2018-07-26 16:03:01
举报

HBase的基础框架,将分成几个章节对HBase进行描述,不当之处还望大家批评指正。下面是了解HBase基础架构的第一部分。

什么是HBase

要解释HBase,我们就先说一说经常接触到的RDBMS,即关系型数据库:

** mysql:

1、有开源社区版本的,有企业收费版本的

2、遵循主从架构

3、 端口号:3306

** sqlserver:

1、微软公司开发的产品,主要用于windows平台下的项目

2、端口号:1433

** oracle:

1、超强的集群性能

2、端口号:1521

再来说一说HBase这个非关系型数据库:

** HBase:

1、灵感来自于Google的BigTable论文

2、一般于Hadoop结合使用,是Hadoop项目的子项目

3、基于key-value的形式存储数据

4、高性能,高可靠,面向列,可伸缩的分布式存储系统

5、没有sql语句,一般用API操作

6、适用于单表数据量超大,且不能分表

7、分布式架构,支持服务器在线添加和移除

接着说一说HBase和Hive的关系和区别:

** Hive:

1、是数据仓库,不是数据库

2、一般用于分析,并不会直接接入到在线业务

3、实际上是将hql语句转化为mapreduce任务运行在yarn平台上

** HBase:

1、面向列的非关系型数据库,分布式架构

2、用于存储数据和检索数据,一般会直接接入在线业务

3、不依赖于yarn和mapreduce

最后说一说RDBMS和HBase的区别:

1、RDBMS使用sql语句,HBase使用API

2、RDBMS基于行存储,HBase基于列存储且支持更好的压缩

3、RDBMS适用于存储结构化数据,HBase适用于存储结构化和非结构化数据

4、RDBMS支持事务处理,HBase不支持事务处理

5、RDBMS支持多表Join,HBase不支持多表Join

6、RDMBS更新表数据会自动更新索引文件,HBase需要手动建立索引,手动更新

7、RDMBS适用于业务逻辑复杂的存储环境,HBase不适合。

8、RDMBS不适合存储超大数据量的单表,HBase适合。

HBase基本进程

HMaster

HMaster节点有如下功能:

1、为HRegionServer分配HRegion

2、负责HRegionServer的负载均衡

3、发现失效的HRegionServer并重新分配其上的HRegion

4、HDFS上的垃圾文件回收

5、处理Schema更新请求

HRegionServer

1、维护HMaster分配给他的HRegion,处理HRegion的IO请求

2、负责切分正在运行过程中变的过大的HRegion

HBase基本原理

注:一般而言,Master和NameNode在一台服务器上,RegionServer与DataNode在同一个服务器上。

Client:

包含访问HBase的接口,并维护cache来加快对HBase的访问。说白了,就是用来访问HBase的客户端。

HMaster:

这个东西是HBase的主节点,用来协调Client端应用程序和HRegionServer的关系,管理分配HRegion给HRegionserver服务器。

HRegionServer:

Hbase的从节点,管理当前自己这台服务器上面的HRegion,HRegion是Hbase表的基础单元组建,存储了分布式的表。HRegionserver负责切分在运行过程中变得过大的HRegion。

HRegion:

一个Table可以有多个HRegion,HBase使用rowKey将表水平切割成多个HRegion,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的

StartKey为空,最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。

HRegion由HMaster分配到相应的HRegionServer中,然后由HRegionServer负责HRegion的启动和管理,和Client的通信,负责数据的读(使用HDFS)。

每个HRegionServer可以同时管理1000个左右的HRegion,出处请参看论文:BigTable(5 Implementation节):Each tablet server manages a set of tablets(typically we have somewhere between ten to a thousand tablets per tablet server))。

MemStore:

它是一个写缓存,数据先WAL[write ahead log](也就是HLog它是一个二进制文件,所有写操作都会先保证将数据写入这个Log文件后,才会真正更新MemStore,最后写入HFile中),在写入MemStore后,由MemStore根据一定的算法将数据Flush到底层HDFS文件中(HFile),一般而言,对于每个HRegion中的每个Column Family来说,有一个自己的MemStore。

StoreFile:

1个HStore,由一个MemStore和0~N个StoreFile组成。

HFile:

用于存储HBase的数据(Cell/KeyValue),在HFile中的数据是按RowKey、Column Family、Column排序,对于相同的数据单元,排序则按照时间戳(Timestamp)倒叙排列。

Zookeeper:

HBase内置有zookeeper,但一般我们会有其他的Zookeeper集群来监管master和regionserver,Zookeeper通过选举,保证任何时候,集群中只有一个活跃的HMaster,HMaster与HRegionServer 启动时会向ZooKeeper注册,存储所有HRegion的寻址入口,实时监控HRegionserver的上线和下线信息。

并实时通知给HMaster,存储HBase的schema和table元数据,默认情况下,HBase 管理ZooKeeper 实例,Zookeeper的引入使得HMaster不再是单点故障。一般情况下会启动两个HMaster,非Active的HMaster会定期的和Active HMaster通信以获取其最新状态,从而保证它是实时更新的,因而如果启动了多个HMaster反而增加了Active HMaster的负担。如图:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据和云计算技术 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档