![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据.HBase
GraysonWP
路虽远,行则将至。天道酬勤,厚积薄发。
展开
-
HBase读写流程
读流程: Client先访问ZooKeeper来获取meta表在哪个HRegionServer上保存着; 通过获取到的IP来访问指定的HRegionServer,从而获取到meta即元数据信息; 通过元数据中存储的信息访问对应的HRegionServer,然后扫描所在HRegionServer的MemStore和StoreFile来查询数据; HRegionServer把查询到的数据响应给C...原创 2020-03-30 19:52:25 · 145 阅读 · 0 评论 -
HBase宕机如何处理
HBase宕机分为HMaster宕机和HRegionServer宕机: HMaster宕机:HMaster没有单点问题,HBase中可以启动多个HMaster,通过ZooKeeper的选举机制保证总有一个HMaster运行及对外提供服务。 HRegionServer宕机:当HRegionServer宕机时,HMaster会将其所管理的region重新分布到其他活动的HRegionServer上,...原创 2020-03-30 19:51:40 · 1993 阅读 · 0 评论 -
MemStore和StoreFile
HBase的一个table中的所有行都按照rowkey的字典序排列,table在行的方向上分割为多个region,region是按大小分割的(默认为10G),它是HBase中分布式存储和负载均衡的最小单元,不同的region可以分布在不同的Region Server上,但一个region是不会拆分到多个Server上的。每个region由一个或者多个store组成,每个store保存一个列簇,有几...原创 2020-03-30 19:50:54 · 2336 阅读 · 0 评论 -
HBase中scan和get的功能以及实现的异同
get: 按照RowKey获取唯一一条记录。get的方法处理分两种:设置了ClosestRowBefore和没有设置ClosestRowBefore的RowLock。主要用来保证行的事务性,即每个get是以一个row来标记的。 scan: 按照指定的条件获取一批记录。 可以通过setCaching和setBatch方法提高速度; 可以通过setStartRow与setEndRow来限定范...原创 2020-03-30 19:49:29 · 3507 阅读 · 0 评论 -
HBase中compact用途是什么,分为哪两种,它们之间有什么区别
在HBase中,每当有memstore数据flush到磁盘之后,就会形成一个storefile,当storefile的数量达到一定程度后,就需要将storefile文件来进行compact操作。compact的作用主要包括以下几个方面: 合并文件 清除过期、多余版本的数据 提高数据读写的效率 HBase中实现了两种compact的方式,分别为minor和major这两种,这两种方式的区别是: ...原创 2020-03-30 19:48:48 · 1975 阅读 · 0 评论 -
HBase的RowKey设计原则
长度原则: RowKey是一个二进制码流,其长度越短越好,一般不建议超过16个字节,主要由以下原因: 数据的持久化文件HFile是按照key/value存储的,如果RowKey过长比如100个字节,则1000万列数据光RowKey就要占用100*1000万=10亿个字节,将近1G数据,这会极大影响HFile的存储效率; MemStore将缓存部分数据到内存,如果RowKey字段过长,内存的有...原创 2020-03-30 19:47:51 · 144 阅读 · 0 评论 -
HBase和Hive的区别
二者的相同点是都是架构在Hadoop之上,都是用Hadoop作为底层存储。二者的区别是: Hive:Hive是一种类SQL的引擎,可以将SQL转化为MapReduce任务,只支持导入和查询,使用时需要预先定义表结构,主要用于离线处理。 HBase:HBase是一种NoSQL的key/value数据库,面向列式存储,支持增删改查,使用时只需要预先定义列簇,不需要具体到列,列可以动态修改,主要用于高...原创 2020-03-30 19:46:57 · 344 阅读 · 0 评论 -
HBase的特点
大:一个表可以有数十亿行,数百万列; 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列; 面向列:面向列的存储和权限控制,列独立检索; 稀疏:空列并不占用存储空间,表可以设计的非常稀疏; 数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳; 数据类型单一:HBase中的数据都是字符串,没有类型。...原创 2020-03-30 19:46:03 · 451 阅读 · 0 评论