本文共 1834 字,大约阅读时间需要 6 分钟。
1. 背景
HBase 可以很方便的将图片、文本等文件以二进制的方式进行存储。虽然 HBase 一般可以处理从 1 字节到 10MB 大小的二进制对象,但是 HBase 通常对于读写路径的优化主要是针对小于 100KB 的值。当 HBase 处理数据为 100KB~10MB 时, 由于分裂(split)和压缩(compaction)会引起写的放大,从而会降低 HBase 性 能。所以在 HBase2.0+引入了 MOB 特性,这样保持了 HBase 的高性能、强一致 性和低开销。
若要启用 MOB 功能,需要在每个 RegionServer 进行配置,并在建表或者修改表 时对指定列族启用 MOB 特性。在 HBase 尝鲜版中启用 MOB 功能,需要由 admin 用户设置定期进程,以重新优化 MOB 数据的分布。
2. 启用和配置 RegionServer 上的 MOB 特性
增加或者修改 hbase-site.xml 文件中的某些配置
2.1 设置 MOB 文件的缓存配置
说明:
2.2 配置 MobMasterObserver 作为协处理器的 master
主要用于表在删除后,MOB 文件的归档。
MOB的管理 MOB 特性为 HBase 引入新的读写路径,此时我们采用外部工具对其进行优化处理,一个是 expiredMobFileCleanerTTL 处理 TTL 和时间的过期数据,另一个是清理工具用来合并小的 MOB 文件或者多次更新、删除的 MOB 文件。
2.2.1 清理过期的 MOB 数据(expiredMobFileCleaner)
设置清理延时
2.2.2 清理工具
属性值设置如下:
说明:
警告
使用清理工具最坏的情况:MOB 文件压缩合并成功,但是相关的(put)更新失败。 这意味着新的 MOB 文件已经创建但未能将新的 MOB 文件路径。存入 HBase 中, 因此 HBase 不会指向这些 MOB 文件。小贴士
请检查 yarn-site.xml 的配置,在 yarn.application.classpath 中添加 hbase 的安装 路径:$HBASE_HOME/ 和 hbase 的 lib 路径: $HBASE_HOME/lib/
在表中开启 MOB 特性 a 将列族设置为 MOB
2.2.3 设置 MOB 单元格的阈值,默认为 102400
对于客户端而言,MOB 单元格操作和普通单元格类似。
2.2.4 插入 MOB 值
2.2.5 获取 MOB 值
2.2.6 获取 MOB 所有数据(raw =true)
运行一个 MOB 示例
转载地址:http://gklox.baihongyu.com/