HBase(十四)SQL引擎Phoenix

Phoenix介绍 1.什么是Phoenix Phoenix是一个HBase的开源SQL引擎。你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。 2.Phoenix底层原理 Phoenix框架将命令行上键入的sql语句翻译成hbase指令,然后hbase用翻译好的指令去操作集群,执行完之后给客户端反馈结果。 3.安装部署 需要先安装好hbase集群,phoenix只是一个工具,只需要在一台机器上安装就可以了,这里我们选择node0... ... [查看更多]

Views: 19

HBase(十三)存储引擎设计与LSM-tree

前言 在数据存储的领域,有两大阵营,以B+tree为基础的关系型数据库,MySQL,SQLServer。以及以LSM-tree为基础的NoSQL key-value 存储, LevelDB。 LSM是(Log Structured Merge的简称)在分布式存储系统中通常会被设计成append-only的系统,LSM系统主要是顺序写优化,例如commit log等等,并作为分布式系统底层的基石。因此,要了解LSM的实现是十分重要的,下面主要介绍基于跳表的LSM-tree的实现 (Sk... ... [查看更多]

Views: 6

HBase(十二)Region 分裂策略

region中存储的是一张表的数据,当region中的数据条数过多的时候,会直接影响查询效率. 当region过大的时候,hbase会将region拆分为两个region , 这也是Hbase的一个优点。 HBase的region split策略一共有以下6种: 1、ConstantSizeRegionSplitPolicy 0.94版本前,HBase region的默认切分策略 当region中最大的store大小超过某个阈值(hbase.hregion.max.filesize=... ... [查看更多]

Views: 28

HBase(十一)RowKey设计和热点问题

RowKey设计三原则 1、长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10-100bytes,以byte[]形式保存,一般设计成定长。 建议尽可能短;但是也不能太短,否则rowkey前缀重复的概率增大 设计过长会降低memstore内存的利用率和HFile存储数据的效率。 2、散列原则 建议将rowkey的高位作为散列字段,这样将提高数据均衡分布在每个RegionServer,以实现负载均衡的几率。 如果没有散列字段,首字段直接... ... [查看更多]

Views: 4