Hbase
文章平均质量分 88
拼命菇凉
我只相信命运在我手中
展开
-
HBase系列——HBase总结
HBase1.1 HBase写数据1.1.1 写数据流程client发送写的请求,获取meta region路由信息--------->zk集群;zk返回meta region的路由信息(HRegionServer1)---------->clientclient获取根据rowkey获取在meta表中的region信息----->HRegionServer1HRegionServer1返回region信息(HRegionServer2)-------------->cli原创 2021-03-15 12:34:28 · 1038 阅读 · 0 评论 -
HBase系列--HBase Region合并
1.为什么要合并region这个需要从Region的Split来说。当一个Region被不断的写数据,达到Region的Split的阀值时(由属性hbase.hregion.max.filesize来决定,默认是10GB),该Region就会被Split成2个新的Region。随着业务数据量的不断增加,Region不断的执行Split,那么Region的个数也会越来越多。一个业务表的Region越多,在进行读写操作时,或是对该表执行Compaction操作时,此时集群的压力是很大的。这里笔者做过一个线上原创 2021-03-03 17:18:50 · 2611 阅读 · 1 评论 -
HBase系列--写流程之深度理解
1.写数据的方式1.1 Single Put单条记录单条记录的随机put操作。Single Put所对应的接口定义如下:在AsyncTable接口中的定义:CompletableFuture<void> put(Put put);在Table接口中的定义:void put(Put put) throw IOException;1.2 Batch Put汇聚了几十条甚至是几百上千条记录之后的小批次随机put操作。Batch Put只是本文对该类型操作的称法,实际的接口名称如下原创 2021-03-03 14:16:09 · 658 阅读 · 1 评论 -
HBase系列--数据刷写MemStore Flush
本文基于 HBase 2.0.21. 是什么?顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在WAL中之后,RegsionServer会在内存中存储键值对。2. 什么时候会触发?3. 触发条件是什么?有很多情况会触发 MemStore 的 Flush 操作,所以我们最好需要了解每种情况在什么时候触发 Memstore Flush。总的来说,主要有以下几种情况会触发 Memstore Flush:Region 中所有 MemStore 占用的内存超过相关阈值整个 R原创 2021-03-03 13:49:41 · 350 阅读 · 0 评论 -
HBase系列--RowKey的设计原则
1. RowKey是什么?与nosql数据库们一样,RowKey是用来检索记录的主键。访问HBASE table中的行,只有三种方式:通过单个RowKey访问(get)通过RowKey的range(正则)(like)全表扫描(scan)RowKey行键 (RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为 10-100bytes),在HBASE内部,RowKey保存为字节数组。存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分原创 2021-03-02 20:12:50 · 1646 阅读 · 0 评论 -
HBase系列--列族设计及影响
1.列族是什么?HBASE表中的每个列,都归属于某个列族。列族是表的schema的一部 分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。2. 列族的设计Hbase官网建议每张表的列族数建议设在1-3之间,所以说列族的设计并不是越多越好。3.为什么不是越多越好其实可以大致分为5个方面来理解。3.1 对Flush的影响回顾一下HBase,每张表会根据RowKey值被切分为多个region,每个原创 2021-03-02 17:21:53 · 4146 阅读 · 0 评论 -
phoenix映射hbase中数据类型问题
关于Phoenix映射Hbase数据字段类型Demo一. 原理注意:1.在hbase中必须将value值进行Bytes.toBytes(),才能在phoenix中映射出你所需要的字段值 2.在Phoenix映射表的时候必须使用unsigned_*类型二. 使用Hbase Shell2.1 Hbase中操作2.1.1 创建表create 'jinshan' ,'info','info1'2.1.2 插入数据put 'jinshan','1001','info:create原创 2020-10-10 19:11:05 · 1926 阅读 · 0 评论