HBase框架基础(一)

2018 年 7 月 17 日 大数据和云计算技术

        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的负担。如图:


猜你喜欢





#大数据和云计算机技术社区#博客精选(2017)

NoSQL 还是 SQL ?这一篇讲清楚

阿里的OceanBase解密

#大数据和云计算技术#: "四有"社区介绍

大数据和云计算技术周报(第56期)

新数仓系列:Hbase周边生态梳理(1)

《大数据架构详解》第2次修订说明

简单梳理跨数据中心数据库

云观察系列:漫谈运营商公有云发展史

云观察系列:百度云的一波三折

云观察系列:阿里云战略观察

超融合方案分析系列(7)思科超融合方案分析


加入技术讨论群





《大数据和云计算技术》社区群人数已经3000+,欢迎大家加下面助手微信,拉大家进群,自由交流。


喜欢QQ群的,可以扫描下面二维码:

欢迎大家通过二维码打赏支持技术社区(英雄请留名,社区感谢您,打赏次数超过108+):




登录查看更多
2

相关内容

HBase 全称是 Hadoop Database,是开源的高可靠性、高性能、可伸缩的分布式数据库系统,利用 HBase 技术建立大规模结构化存储集群。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【干货书】现代数据平台架构,636页pdf
专知会员服务
254+阅读 · 2020年6月15日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
57+阅读 · 2020年1月3日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
Perseus(擎天):统一深度学习分布式通信框架
云栖社区
4+阅读 · 2019年3月10日
爱奇艺基于AI的移动端自动化测试框架的设计
前端之巅
18+阅读 · 2019年2月27日
解读2018:13家开源框架谁能统一流计算?
AI前线
3+阅读 · 2018年12月17日
大数据流处理平台的技术选型参考
架构文摘
4+阅读 · 2018年3月14日
领域应用 | 图数据库及其在恒昌的应用简介
开放知识图谱
6+阅读 · 2017年10月10日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Exploring Visual Relationship for Image Captioning
Arxiv
15+阅读 · 2018年9月19日
Arxiv
3+阅读 · 2018年5月20日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【干货书】现代数据平台架构,636页pdf
专知会员服务
254+阅读 · 2020年6月15日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
57+阅读 · 2020年1月3日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
相关资讯
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
Perseus(擎天):统一深度学习分布式通信框架
云栖社区
4+阅读 · 2019年3月10日
爱奇艺基于AI的移动端自动化测试框架的设计
前端之巅
18+阅读 · 2019年2月27日
解读2018:13家开源框架谁能统一流计算?
AI前线
3+阅读 · 2018年12月17日
大数据流处理平台的技术选型参考
架构文摘
4+阅读 · 2018年3月14日
领域应用 | 图数据库及其在恒昌的应用简介
开放知识图谱
6+阅读 · 2017年10月10日
Top
微信扫码咨询专知VIP会员