开发者社区> hbase小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

案例篇-HBase 实战之 MOB 使用指南

简介: 1. 背景 HBase 可以很方便的将图片、文本等文件以二进制的方式进行存储。虽然 HBase 一般可以处理从 1 字节到 10MB 大小的二进制对象,但是 HBase 通常对于读写路径的优化主要是针对小于 100KB 的值。
+关注继续查看

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 文件的缓存配置

_2019_01_10_11_11_54

说明:

  1. hbase.mob.file.cache.size 打开的文件句柄缓存数,默认值是 1000。通 过增加文件句柄数可以提高读的性能,可以减少频繁的打开、关闭文件。若这个值设置过大,会导致“too many opened file handers”。
  2. hbase.mob.cache.evict.period MOB 缓存淘汰缓存的 MOB 文件时间间隔
    (以秒为单位),默认值为 3600 秒。
  3. hbase.mob.cache.evict.remain.ratio 当缓存的 MOB 文件数 目超 过hbase.mob.file.cache.size 设置的数目后,会触发 MOB 缓存淘汰机制 (eviction),0.5f 为剩余的 MOB 缓存比率(0~1),默认的比率为 0.5f。

2.2 配置 MobMasterObserver 作为协处理器的 master

主要用于表在删除后,MOB 文件的归档。

_2019_01_10_11_33_17

MOB的管理 MOB 特性为 HBase 引入新的读写路径,此时我们采用外部工具对其进行优化处理,一个是 expiredMobFileCleanerTTL 处理 TTL 和时间的过期数据,另一个是清理工具用来合并小的 MOB 文件或者多次更新、删除的 MOB 文件。

2.2.1 清理过期的 MOB 数据(expiredMobFileCleaner)

_2019_01_10_11_34_17

设置清理延时

_2019_01_10_11_34_57

2.2.2 清理工具

_2019_01_10_11_35_31

属性值设置如下:

_2019_01_10_11_54_35

说明:

  1. hbase.mob.compaction.invalid.file.ratio 如果在 MOB 文件中删除了太 多的单元格,则被视为作为无效文件,需要重新写入或者合并。当 MOB 文件 (mobFileSize)大小减去存在的单元格(existingCellsSize)大小之差除 以 MOB 文件(mobFileSize)的比率小于设定的值时,我们就认为其为无效 文件。默认值为0.3f。
  2. hbase.mob.compaction.small.file.threshold 如果 MOB 的大小小于阈值, 则视为小文件,需要合并。默认值为64MB。
  3. hbase.mob.compaction.memstore.flush.size MOB 里 memstore 大小,超过 此大小就会 flush,并且每个 sweep reducer 拥有各自 memstore。

警告
使用清理工具最坏的情况:MOB 文件压缩合并成功,但是相关的(put)更新失败。 这意味着新的 MOB 文件已经创建但未能将新的 MOB 文件路径。存入 HBase 中, 因此 HBase 不会指向这些 MOB 文件。

小贴士

请检查 yarn-site.xml 的配置,在 yarn.application.classpath 中添加 hbase 的安装 路径:$HBASE_HOME/ 和 hbase 的 lib 路径: $HBASE_HOME/lib/

_2019_01_10_11_55_54

在表中开启 MOB 特性 a 将列族设置为 MOB

_2019_01_10_11_56_20

2.2.3 设置 MOB 单元格的阈值,默认为 102400

_2019_01_10_11_57_07

对于客户端而言,MOB 单元格操作和普通单元格类似。

2.2.4 插入 MOB 值

_2019_01_10_11_59_07

2.2.5 获取 MOB 值

_2019_01_10_11_59_41

2.2.6 获取 MOB 所有数据(raw =true)

_2019_01_10_1_15_49

运行一个 MOB 示例

_2019_01_10_1_16_32

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
BigData之Hbase:Hbase数据管理的简介、下载、案例应用之详细攻略
BigData之Hbase:Hbase数据管理的简介、下载、案例应用之详细攻略
0 0
HBase&MR 集成官方案例 | 学习笔记
快速学习 HBase&MR 集成官方案例。
0 0
BigData之Hbase:Hbase数据管理的简介、下载、案例应用之详细攻略
BigData之Hbase:Hbase数据管理的简介、下载、案例应用之详细攻略
0 0
案例篇-HBase RowKey 设计指南
吴阳平 阿里巴巴 HBase 业务架构师
14522 0
案例篇-HBase 基本知识介绍及典型案例分析
吴阳平 阿里巴巴 HBase 业务架构师
20221 0
案例篇-HBase 在人工智能场景的使用
人工智能逐渐火热起来,特别是和大数据一起结合使用。人工智能的 主要场景又包括图像能力、语音能力、自然语言处理能力和用户画像能力等等。
1731 0
案例篇-HBase 在滴滴出行的应用场景和最佳实践
李扬 滴滴出行 资深软件开发工程师
1529 0
HBase基本知识介绍及典型案例分析
本文来自于2018年10月20日由中国 HBase 技术社区在武汉举办的中国 HBase Meetup 第六次线下交流会。 HBase基本知识介绍及典型案例分析 PPT 下载:http://hbase.group/slides/162 本次分享的内容主要分为以下五点: HBase基本知识; HBase读写流程; RowKey设计要点; HBase生态介绍; HBase典型案例分析。
2624 0
Hadoop原理与技术——Hbase实操
Hadoop原理与技术——Hbase实操
0 0
+关注
hbase小能手
HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。阿里云HBase技术团队共同探讨HBase及其生态的问题。
文章
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
HBase 基本知识介绍及典型案例分析
立即下载
HBase基本知识介绍及典型案例分析
立即下载
HBase 基本知识介绍及典型案例分析
立即下载