HBase MOB(Medium Object)使用入门指南

本文将详细地介绍 HBase MOB 的使用,本指南适合入门的开发者。


将不同大小的文件(比如图片、文档等)存储到 HBase 非常的简单方便。从技术上来说,HBase 可以直接在一个单元格(Cell)存储大小到10MB的二进制对象。然而,HBase 正常的读写路径仅仅对小于 100KB 的值进行了优化;当 HBase 处理大量大小到 10MB 的二进制对象时,由于分割(splits)和压缩(compactions)引起的写放大(write amplification),会导致性能的下降。


一种解决这个问题的办法是将大于 100KB 的对象直接存储到 HDFS,然后将这些文件的引用直接存储在 HBase 中,这就是本文介绍的 MOB 特性,详见 HBASE-11339。本文仅仅简单地介绍 MOB 的使用,关于 MOB 的具体实现请自行Google,或直接阅读相关源码。


前置条件


为了使用 MOB,你必须将 HFile 的版本设置为 3,如下

640?wx_fmt=png


在 HBase 表中使用 MOB


我们可以通过 HBase Shell 在创建表或者直接修改已有表的属性。我们还可以通过 HBase 的 Java API 来设置,具体如下。


通过 HBase Shell

HBase MOB(Medium Object)使用入门指南_第1张图片

其中


  • IS_MOB:是一个 Boolean 值选项,指定当前列族是否启用 MOB 功能;

  • MOB_THRESHOLD:指定多大的对象当做 MOB 来存储,单位为字节。如果你没有指定 MOB_THRESHOLD 的值,默认是 100KB;也就是说如果你在 HBase 中写入的对象大于这个尺寸,这个对象就会被当做 MOB 来处理。


通过 Java API

640?wx_fmt=png


HBase MOB 缓存相关参数


因为随时都可能存在大量 MOB 文件,与 HFiles 的数量相比,MOB 文件并不总是保持打开状态。 MOB文件读取器缓存是 LRU 缓存,它将最近使用的 MOB 文件保持打开状态。下面参数用于调整 HBase MOB 缓存。

HBase MOB(Medium Object)使用入门指南_第2张图片

HBase MOB(Medium Object)使用入门指南_第3张图片


测试 MOB 存储和检索性能


HBase 提供了一个 Java 实用程序

640?wx_fmt=png

以帮助测试 MOB 功能并为您的情况决定适当的配置值。 该实用程序运行如下:


HBase MOB(Medium Object)使用入门指南_第4张图片

其中


  • threshold Cell 大小达到多少阈值就认为是 MOB,默认是 1 kB,单位是字节。

  • minMobDataSize MOB 数据大小的最小值. 默认为 512 B,单位是字节。

  • maxMobDataSize MOB 数据大小的最大值. 默认为 5K,单位是字节。


手动压缩 MOB 文件


为了能够手动压缩 MOB 文件,HBASE-13012 中引入了 compact_mob 和 major_compact_mob 命令用于手动触发 MOB 文件的压缩,而不是等到相应的配置时间。这些命令中的每一个参数都是表名,第二个可选参数为列族名。如果指定了列族名,则仅压缩该列族的文件。否则将压缩所有启用 MOB 的列族文件。

640?wx_fmt=png

同时,我们也可以使用 Admin 类中提供的 API 进行压缩:

640?wx_fmt=png


MOB Sweeper


为了能够移除那些没有引用的 MOB 或者将小文件合并成大的文件,HBase 在 HBASE-11644 中引入了一个叫做 sweep tool 的清洁者,其内部使用的是 MapReduce。这个功能涉及到的参数如下

HBase MOB(Medium Object)使用入门指南_第5张图片

HBase MOB(Medium Object)使用入门指南_第6张图片

 

猜你喜欢

欢迎关注本公众号:iteblog_hadoop:

回复 spark_summit_201806 下载 Spark Summit North America 201806 全部PPT

spark_summit_eu_2018 下载 Spark+AI Summit europe 2018 全部PPT

0、回复 电子书 获取 本站所有可下载的电子书

1、Apache Spark 统一内存管理模型详解

2、Elasticsearch 6.3 发布,你们要的 SQL 功能来了

3、即将发布的 Apache Spark 2.4 都有哪些新功能

4、干货 | 深入理解 Spark Structured Streaming

5、Apache Spark 黑名单(Blacklist)机制介绍

6、Kafka分区分配策略(Partition Assignment Strategy)

7、Spark SQL 你需要知道的十件事

8、干货 | Apache Spark 2.0 作业优化技巧

9、[干货]大规模数据处理的演变(2003-2017)

10、Flink Forward 201809PPT资料下载

11、更多大数据文章欢迎访问https://www.iteblog.com及本公众号(iteblog_hadoop) 12、Flink中文文档: http://flink.iteblog.com 13、Carbondata 中文文档 http://carbondata.iteblog.com


640?wx_fmt=png

你可能感兴趣的:(HBase MOB(Medium Object)使用入门指南)