ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hbase基本介绍

2021-03-24 18:57:21  阅读:287  来源: 互联网

标签:基本 HRegion HMaster 介绍 HRegionServer hbase 数据 HBase


Hbase介绍

hbase基本介绍


一、hbase基本介绍

1、基本概念

是大数据领域里的一个nosql的一个非关系型数据库。hbase是bigtable的开源java版本,是建立在hdfs之上,提供高可靠性,高性能、列存储、可伸缩、实时读写的nosql的数据库系统。他介于nosql和RDBMS之间,仅能通过主键rowkey和主键range来建索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。

主要用来存储结构化和半结构化的松散数据。
结构化数据:类似于mysql的一张表,字段个数确定了,类型也确定了
半结构化数据:类似与json或者xml数据
非结构化数据:类似于音频、视频
hbase查询功能很简单,不支持join等复杂操作,不支持复杂的事物(行级事务)。
hbase支持的数据类型:byte[]
hbase表一般有这样一个特点:

  • 大:一张表可以有上十亿行,上百万列
  • 面向列:面向列的存储和权限控制,列独立建索
  • 稀疏:对于为空(null)的列,并不占用存储空间,因此表可以设计的非常稀疏

2、hbase和hadoop的关系

hbase和hadoop是紧耦合的关系,hbase依赖于hadoop
hbase都是存储在hdfs上面的
hbase数据库适合频繁的读写操作
hdfs不适合频繁的写入操作,适合一次写入,多次读取
矛盾点:hbase是如何解决的?

3、RDBMS与Hbase的对比

mysql:
结构:

  • 以表的形式存在
  • 支持FAT、NTFS、EXT、文件系统
  • 使用commit log存储日志
  • 参考系统是坐标系统
  • 使用主键PK
  • 支持分区

功能:

  • 使用sql操作数据库
  • 面向行
  • 数据总量依赖于服务器配置
  • 具有acid支持
  • 适合结构化数据
  • 支持事务
  • 支持join

hbase:
结构:

  • 以region形式存在
  • 支持hdfs文件系统
  • 使用WAL存储日志
  • 使用行键rowkey

功能:

  • 使用api和mr来访问表数据
  • 数据总量不依赖于一台机器,而取决于机器数量
  • 不支持acid
  • 适合结构化和非结构化数据
  • 分布式的
  • 不支持事务,只支持单行数据的事务
  • 不支持join

4、hbase组件

在这里插入图片描述
Client:
1)使用HBase RPC机制与HMaster和HRegionServer进行通信;
2)Client与HMaster进行通信进行管理类操作;
3)Client与HRegionServer进行数据读写类操作;

HMaster:NAMENODE RESOURCEMANAGER
HMaster 没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper保证总有一个Master在运行。
HMaster主要负责Table和Region的管理工作:
1)管理用户对表的增删改查操作;
2)管理HRegionServer的负载均衡,调整Region分布;
3)Region Split后,负责新Region的分布;
4)在HRegionServer停机后,负责失效HRegionServer上Region 的迁移;

HRegionServer:DATANODE NODEMANAGER
HBase中最核心的模块;
1)维护region,处理对这些region的IO请求;
2)Regionserver负责切分在运行过程中变得过大的region,数据在增删改的时候会越来越大;

HRegion:
HBase使用RowKey将表水平切割成多个HRegion,从HMaster的角度,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的StartKey为空,最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。

Zookeeper:
1)ZooKeeper为HBase集群提供协调服务,它管理着HMaster和HRegionServer的状态(available/alive等),并且保证集群中只有一个HMaster,会在它们宕机时通知给HMaster,从而HMaster可以实现HMaster之间的故障转移;
2)实时监控HRegionServer的上线和下线信息,并实时通知给HMaster;
3)存储HBase的Meta Table(hbase:meta)的位置,Meta Table表存储了集群中所有用户HRegion的位置信息,且不能split;
4)Zookeeper的引入使得Master不再是单点故障 HMaster虽然可以开启多个 但是不是越多越好

HRegionServer详解
一个HStore由一个MemStore 和0个或多个StoreFile组成。

MemStore:
是一个写缓存(In Memory Sorted Buffer),所有数据的写在完成WAL日志写后,会 写入MemStore中,由MemStore根据一定的算法将数据Flush到底层HDFS文件中(HFile),通常每个HRegion中的每个 Column Family有一个自己的MemStore。
StoreFile(Hfile):
用于存储HBase的数据(Cell/KeyValue)。在HFile中的数据是按RowKey、Column Family、Column排序,对相同的Cell(即这三个值都一样),则按timestamp倒序排列。
key:<rowkey ,列族,列,时间戳>
value:值

标签:基本,HRegion,HMaster,介绍,HRegionServer,hbase,数据,HBase
来源: https://blog.csdn.net/reyna9511/article/details/115170191

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有