好程序员大数据学习路线Hbase总结-创新互联

好程序员大数据学习路线Hbase总结,为什么有hbase

10年积累的成都网站制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有怀远免费网站建设让你可以放心的选择与我们合作。

随着数据的逐渐增大,传统的关系型数据库无法满足对数据的查询和存储,而hive不是数据库,只是数据仓库,虽然能够满足简单的存储要求,但是始终无法满足对非结构化和半结构化的数据的存储和查询

2hbase是什么

Hbase是阿帕奇旗下的一款开源的,多版本的,可扩展的非关系型数据库。

他是基于谷歌的bigtable的基础上,建立在hdfs上的一款提供高 可靠性的,高性能的列式存储,可伸缩,实时读写的nosql的数据库系统

3适用场景

海量数据存储

随机实时读写和管理数据

4特点

列式存储

模式:无模式(不需要use gp1808,就可以直接创建表了,所以导致hbase中的表是不可以重名的)

数据类型:单一的byte[]

多版本(version):每个值都可以有多个版本

稀疏存储:如果kv为null,则不占用存储空间

5结构框架

Client:

hbase的客户端,包含访问的hbase的接口(linux shell ,java api)

维护一些cache(缓存)来加速hbase的速度,比如region的位置信息

Zookeeper:

好程序员大数据学习路线Hbase总结

监控hmaster的状态,保证有且只有一个active的hmaster,达到高可用

存储所有的region的寻址入口,

实时监控hregionserver的状态,将regionserrver的上下线信息实时通知给hmaster

存储hbase的所有表的信息(hbase的元数据)

Hmster(hbase的老大)

为regionserver分配region(新建表)

负责regionserver的负载均衡

负责region的重新分配(处理hregionserver异常,hregion裂变)

Hdfs上的垃圾文件回收

处理schema的更新请求

Hregionserver(hbase的小弟)   

维护老大给他的region(管理本机上的region)

处理client对region的IO请求,并和hdfs交互

Regionserver负责切分在运行过程中变大的region

Hregion:

Hbase中分布式的存储和负载的最小单元,表或者是表的一部分

(在HBase中数据按主键排序,同时表按主键划分为多个Region

Region按大小分割的,随着数据增多,Region不断增大,当增大到一个阀值的Region就会分成两个新的Region)

Region虽然是分布式存储的最小单元,但并不是存储的最小单元。每个Region包含着多个Store对象。每个Store包含一个MemStore或若干StoreFile,StoreFile包含一个或多个HFile。MemStore存放在内存中,StoreFile存储在HDFS上。

Hlog;

对hbase的操作进行记录,使用wal(Write-Ahead-Log)写数据,优先写入log,然后再写入memstore,以防数据丢失时可以进行日志回滚回复数据

Store:

相当于一个列簇。

Memstore:128M

内存缓冲区,用于将数据批量刷新到hdfs上

Hstorefile(hfile)

Hbase中的数据是以hfile的形式存储到hdfs上

好程序员大数据学习路线Hbase总结

写流程:

1client通过zookeeper的调度,向regionserver发出写数据请求,在region中写数据

2数据被写入region的memstore,直达memstore达到预设的阈值(128M)

3memstore中的数据被flush成一个storefile

4随着storefile文件的不断增多,当其数量增长到一定阈值的时候,触发了compact合并操作,将多个storefile合并成一个storefile,同时进行版本合并和数据删除

5storefiles通过不断的compact合并操作,逐渐形成越来越大的storefile

6单个storefile大小超过一定阈值之后,触发spilt操作,把当前的region切分成2个新的region,父region会下线,新切出的2个字region会被hmaster分配到相应的regionserver上,使得原先的一个region的压力的以分配到2个region上

读流程:

1client访问zookeeper,查找root表,获取meta表的信息

2从meta表中查找,获取存放的目标的region信息,从而找到对应的regionserver

3通过regionserver获取需要查询的数据

4regionserver的内存分为memstore和blockcache两部分,memstore主要用于写数据,blockcache主要用于读数据,请求先到memstore中查数据,查不到就在blockcache在查,再查不到就会到storefile上读,并把读的结果放入blockcache

寻址过程:client-->Zookeeper-->-ROOT-表-->.META.表-->RegionServer-->Region-->client

好程序员大数据学习路线Hbase总结

Rowkey:行键,和mysql的主键一样,不允许重复,按照字典顺序排列

Columnfamily:列簇

Column:列

Timestamp:时间戳,默认显示最新的时间戳

Version:版本号,记录数据的版本

Cell:单元格,一个key 一个value

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:好程序员大数据学习路线Hbase总结-创新互联
分享URL:http://scyanting.com/article/ececi.html