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

HBase(十)整合Hive

Hive的安装部署 先决条件 搭建好三节点Hadoop集群; hadoop100上先安装好MySQL服务; 准备安装包 下载hive安装包 apache-hive-3.1.2-bin.tar.gz 规划安装目录 /opt/pkg/hive 上传安装包到hadoop100服务器中 解压 解压安装包到指定的规划目录/opt/pkg/ 修改配置文件 进入hive安装目录 重新命名hive目录 修改/opt/pkg//conf目录下的hive-site.xml, 默认... ... [查看更多]

Views: 15

HBase(九)集成MapReduce

HBase表中的数据最终都是存储在HDFS上,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase表中的数据,并且MR可以将处理后的结果直接存储到HBase表中。 参考: http://hbase.apache.org/book.html#mapreduce 实战一:HBase表到HBase表 需求:读取HBase当中myuser这张表的f1:name、f1:age数据,将数据写入到另外一张myuser2表的f1列族里面去 第一步:创建myuser2这张hbase表... ... [查看更多]

Views: 12