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

说明:

  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 文件的归档。

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

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

设置清理延时

2.2.2 清理工具

属性值设置如下:

说明:

  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/

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

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

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

2.2.4 插入 MOB 值

2.2.5 获取 MOB 值

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

运行一个 MOB 示例

案例篇-HBase 实战之 MOB 使用指南相关推荐

  1. 案例篇-HBase RowKey 设计指南

    1.为什么 Rowkey 这么重要 1.1 RowKey 到底是什么 我们常说看一张 HBase 表设计的好不好,就看它的 RowKey 设计的好不好.可见 RowKey 在 HBase 中的地位.那 ...

  2. 案例篇-HBase 在滴滴出行的应用场景和最佳实践

    1.背景 ** 1.1 对接业务类型** HBase 是建立在 Hadoop 生态之上的 Database,源生对离线任务支持友好,又因为 LSM 树是一个优秀的高吞吐数据库结构,所以同时也对接了很多 ...

  3. asp.net多图片上传案例_会计小明的故事-成本核算案例篇

    因涉及成本核算案例篇,所需要的图表比较多,但是知乎不同于微信可以直接将文档图表复制过来,知乎专栏文章,所有图表必须先截图,然后以图片形式展示.但是成本核算案例图表实在是太多,一一截图,一则影响整体观感 ...

  4. Ajax异步请求(重渲染DOM元素时,如何自动调用并执行JS自定义函数【含代码】)- 案例篇

    文章目录 Ajax异步请求(重渲染DOM元素时,如何自动调用并执行JS自定义函数[含代码])- 案例篇 效果截图: 重要代码: 附:全部HTML代码: Ajax异步请求(重渲染DOM元素时,如何自动调 ...

  5. 论 js中:(class、id)出乎意料的优先级?- 案例篇

    文章目录 论 js中:(class.id)出乎意料的优先级?- 案例篇 看图说明 · 案例场景: 重要代码 · 解析 · `提示`: `class / id` 在`js`中抓取的`优先级`:`[代码点 ...

  6. Kotlin第5篇项目实战2:开发【Kotlin】版QQ2006聊天工具-关东升-专题视频课程

    Kotlin第5篇项目实战2:开发[Kotlin]版QQ2006聊天工具-420人已学习 课程介绍         本视频是智捷课堂推出的一套"Kotlin语言学习立体教程"的视频 ...

  7. Java从小白到大牛第4篇项目实战视频课程2——Java版QQ-关东升-专题视频课程

    Java从小白到大牛第4篇项目实战视频课程2--Java版QQ-1778人已学习 课程介绍         本项目是Java SE技术实现的QQ2006聊天工具,所涉及到的知识点:Java面向对象.L ...

  8. Java从小白到大牛第4篇项目实战1——PetStore宠物商店-关东升-专题视频课程

    Java从小白到大牛第4篇项目实战1--PetStore宠物商店-1764人已学习 课程介绍         PetStore是Sun(现在Oracle)公司为了演示自己的Java EE技术,而编写的 ...

  9. 一文读懂HBase 2.0 MOB 特性

    前言 HBase 2.0 发布了很多新的特性,其中一个非常值得关注的是中等对象存储的特性,即 HBase MOB(Medium Object Storage)特性.HBase 2.0 MOB的引入,扩 ...

最新文章

  1. 把对象转换成JSON字符串 第二稿支持移动设备
  2. 树莓派3 mysql端口_树莓派3 之 安装Mysql服务
  3. 如何使用Visual Studio Code调试PHP CLI应用和Web应用
  4. win32框架,GDI图形编程写一个HelloWorld游戏_c语言
  5. XDOJ-1073-Nunchakus_求一个集合能否分裂成两个和相等的集合(dp、背包问题)
  6. Apache CXF 3.0:CDI 1.1支持可替代Spring
  7. Alibaba Sentinel 限流与熔断初探
  8. 第一节 如何用Go实现单链表
  9. 【渝粤教育】国家开放大学2018年春季 7385-21T公共关系学(本) 参考试题
  10. 百度网盘文件转存到阿里云盘工具,爱死这个软件了
  11. 【NanoPi2试用体验】nanopi2下的二维码识别
  12. 贝壳找房原生爬虫租房分析
  13. 洛谷p1179数字统计
  14. 一款界面友好的思维导图软件MindMaster
  15. Ubuntu16.04安装Redshift色温调节工具
  16. codeforces1064E Dwarves, Hats and Extrasensory Abilities
  17. emc 登录 java_连接EMC存储系统
  18. Python3.5 Django1.10 Scrapy1.2 Ubuntu16.04 HTML5
  19. 北航计算机学院王华峰,软件学院学术论坛第四次宣讲会
  20. 电脑假死卡的动不了_电脑卡死了动不了怎样恢复

热门文章

  1. 剑指offer (02):实现 Singleton 单例模式 (Python 实现详解)
  2. (筆記) 如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)
  3. 【十八】文件译文:graph.js.fmkr (测试报告模版配置文件)
  4. c语言abc组合abc cba=n,组合问题(先提取数字+全组合)
  5. java api练习_Java接口练习
  6. Guns启动项目抛出:脚本错误,flyway执行迁移异常
  7. [Teamcenter 2007 开发实战] 调用web service
  8. Teamcenter 开发中的一些问题
  9. header manipulation 漏洞_【资讯】HPE 修补了两个关键的远程可利用漏洞
  10. scada系统集成_专家 | 浅析地铁综合监控系统集成门禁系统