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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Tair(兼容Redis),内存型 2GB
简介: 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

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
402 3
|
3月前
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
65 1
|
6月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
265 7
|
6月前
|
存储 NoSQL 分布式数据库
【HBase入门与实战】一文搞懂HBase!
该文档介绍了HBase,一种高吞吐量的NoSQL数据库,适合处理大规模数据。HBase具备快速读写、列式存储和天然支持集群部署的特点,常用于高并发场景。NoSQL与关系型数据库的主要区别在于数据模型、查询语言和可伸缩性。HBase的物理架构包括Client、Zookeeper、HMaster和RegionServer,其中RegionServer管理数据存储。HBase的读写流程利用MemStore和Bloom Filter提高效率。此外,文档还提到了HBase的应用,如时间序列数据、消息传递和内容服务。
750 1
【HBase入门与实战】一文搞懂HBase!
|
6月前
|
数据可视化 JavaScript 关系型数据库
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(五)FineBI可视化
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(五)FineBI可视化
128 0
|
6月前
|
SQL 消息中间件 关系型数据库
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(四)实时计算需求及技术方案
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(四)实时计算需求及技术方案
190 0
|
6月前
|
SQL 消息中间件 分布式数据库
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(三)离线分析
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(三)离线分析
129 0
|
6月前
|
消息中间件 存储 数据采集
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(二)数据源
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(二)数据源
105 0
|
6月前
|
存储 消息中间件 分布式数据库
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(一)案例需求
基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(一)案例需求
103 0
|
11月前
|
存储 SQL 分布式数据库
分布式数据恢复-hbase+hive分布式存储数据恢复案例
hbase+hive分布式存储数据恢复环境: 16台某品牌R730XD服务器节点,每台物理服务器节点上有数台虚拟机,虚拟机上配置的分布式,上层部署hbase数据库+hive数据仓库。 hbase+hive分布式存储故障&初检: 数据库文件被误删除,数据库无法使用。 通过现场对该分布式环境的初步检测,发现虚拟机还可以正常启动,虚拟机里面的数据库块文件丢失。好在块文件丢失之后没有对集群环境写入数据,底层数据损坏可能性比较小。
下一篇
无影云桌面