HBase 2.0+优化处理中等大小对象(MOB)实战
需积分: 9 132 浏览量
更新于2024-09-06
收藏 81KB PDF 举报
"HBase实践之MOB使用指南未翻译.pdf"
在HBase中,MOB(Medium Objects)功能是为了解决存储大量中等大小对象(100KB到10MB之间)时性能下降的问题。HBase原生设计最适合处理小到中等大小的值,但当处理超过100KB的大数据量时,由于分裂和压缩导致的写放大,其性能会受到影响。从HBase 2.0版本开始,引入了对MOB的支持,以更好地管理这类大对象,同时保持高性能、强一致性,并降低操作开销。
启用和配置MOB功能涉及以下几个步骤:
1. **配置Region Server**:
在`hbase-site.xml`配置文件中,需要添加或修改以下属性来设置MOB文件缓存:
- `<property><name>hbase.mob.file.cache.size</name><value>SIZE</value></property>`:设定MOB文件缓存的大小,SIZE应为一个合适的内存值,例如100MB。
- `<property><name>hbase.hregion.memstore.mob.threshold</name><value>THRESHOLD</value></property>`:设定触发MOB存储的阈值,例如100KB,即当单元格值大于THRESHOLD时,数据将作为MOB存储。
2. **创建或修改表的Column Family**:
当创建新表或修改已有表时,需要在相应的Column Family上启用MOB特性:
```
create 'TABLE_NAME', {NAME => 'FAMILY_NAME', VERSIONS => 1, COMPRESSION => 'GZ', BLOOMFILTER => 'ROW', DATA_BLOCK_ENCODING => 'DIFF', ENCODE_ON_WRITE => true, BLOCKCACHE => true, MOB_ENABLED => true}
alter 'TABLE_NAME', {NAME => 'FAMILY_NAME', MOB_ENABLED => true}
```
3. **预览版优化**:
在早期版本中,管理员还需要设置定期进程来重新优化MOB数据的布局。这通常涉及到运行MOB相关的清理和压缩任务,以确保数据高效存储和访问。
4. **MOB的读写流程**:
- **写入**:当单元格值超过阈值时,HBase会将其写入单独的MOB文件,并在HFile中保存指向这些文件的指针。
- **读取**:读取时,如果发现指针,HBase会从MOB文件缓存中加载数据。如果缓存中没有,数据会被加载到缓存中,以供后续请求使用。
5. **性能和优化**:
- MOB功能通过减少对主内存的占用和优化存储结构,提高了处理大数据对象时的性能。
- 定期执行MOB压缩有助于控制文件数量和大小,防止过多的小文件问题,从而维持系统性能。
6. **监控与维护**:
监控MOB缓存命中率、MOB文件数量以及垃圾回收情况是关键,以便及时调整配置,确保系统的稳定性和效率。
HBase的MOB功能是为了应对大规模的中等大小对象存储需求,通过分离大对象并优化其存储和访问方式,提供了高效的解决方案。正确配置和管理MOB特性对于充分利用HBase在大数据场景下的优势至关重要。
2017-02-19 上传
2021-12-13 上传
2021-09-20 上传
2023-09-09 上传
2018-06-05 上传
weixin_38743968
- 粉丝: 404
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫