本文将详细地介绍 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,如下
在 HBase 表中使用 MOB
我们可以通过 HBase Shell 在创建表或者直接修改已有表的属性。我们还可以通过 HBase 的