HBase

目录

HBase是什么

为什么要用HBase

HBase架构


HBase是什么

Apache HBase™ is the  Hadoop database, a distributed, scalable, big data store.
HBase is a type of "NoSQL" database.

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库,是 Hadoop 数据库,一个分布式、可伸缩的大数据存储,利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务,主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库)。HBase是依赖Hadoop的。为什么HBase能存储海量的数据?因为HBase是在分布式文件系统(HDFS)的基础之上构建的。HDFS是文件系统,HBase是数据库。可以把HBase当做是MySQL,把HDFS当做是硬盘。HBase只是一个NoSQL数据库,把数据存在HDFS上。HBase在HDFS之上提供了高并发的随机写和支持实时查询,HBase可以以低成本来存储海量的数据并且支持高并发随机写和实时查询。HBase是列式存储,Mysql是行式存储 一行一行的存数据。列式存储每一列都会生成一个id,其实就是key value的存储。操作HBase的方式:shell 、JavaAPI 、Phoenix。

为什么要用HBase

先了解一下 Hadoop 存在的限制?Hadoop 可以通过 HDFS 来存储结构化、半结构甚至非结构化的数据,它是传统数据库的补充,是海量数据存储的最佳方法,它针对大文件的存储,批量访问和流式访问都做了优化,同时也通过多副本解决了容灾问题。

但是 Hadoop 的缺陷在于它只能执行批处理,并且只能以顺序方式访问数据,这意味着即使是最简单的工作,也必须搜索整个数据集,无法实现对数据的随机访问。实现数据的随机访问是传统的关系型数据库所擅长的,但它们却不能用于海量数据的存储。在这种情况下,必须有一种新的方案来解决海量数据存储和随机访问的问题,HBase 就是其中之一 (HBase,Cassandra,couchDB,Dynamo 和 MongoDB 都能存储海量数据并支持随机访问)。

Hadoop生态系统

HBase架构

Master 为Region server分配region,负责Region server的负载均衡,发现失效的Region server并重新分配其上的region,管理用户对table的增删改操作(对表结构增删改,即元数据)。RegionServer 维护region,处理对这些region的IO请求,Region server负责切分在运行过程中变得过大的region 。

Region HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据(每个region都有范围,startkey,endkey);每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分为两个新的region(裂变)。当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。 一个region由多个store组成,一个store对应一个CF(列族),store包括位于内存中的memstore(一个)和位于磁盘中的storefile(零至多个),写操作先写入memstore,当memstore中的数据达到某个阈值,hregionserver会启动flashcache进程写入storefile,每次写入形成单独的一个storefile 。当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、major、compaction),在合并过程中会进行版本合并和删除工作(major),形成更大的storefile。当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载均衡。客户端检索数据,先在memstore找,找不到再找storefile 。Minor:选取一些小的,相邻的storeFile合并成一个更大的storeFile。Major:指将所有的storeFile合并成一个storeFile(到一定时间执行,可能触发flush风暴)。

清理三类:被删除数据,TTL过期数据,版本号超过设定版本号的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆驼整理说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值