集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

业界新闻

当前位置:首页 > >业界新闻 > >

大数据培训_HBase 存储中型对象

发布时间: 2019-06-13 10:54:36

  大数据培训_HBase 存储中型对象

  存储中型对象(MOB)
  数据有多种大小,并且在HBase中保存所有数据(包括图像和文档等二进制数据)是理想的选择。虽然HBase在技术上可以处理大小超过100 KB的单元格的二进制对象,但HBase的正常读取和写入路径针对小于100KB的值进行了优化。当HBase处理超过此阈值的大量对象(此处称为中型对象或MOB)时,由于拆分和压缩引起的写入放大,性能会降低。使用MOB时,理想情况下,您的对象将介于100KB和10MB之间(请参阅常见问题解答)。HBase?FIX_VERSION_NUMBER增加了对更好地管理大量MOB的支持,同时保持了性能,一致性和低运营开销。MOB支持是由HBASE-11339完成的工作提供的。要利用MOB,您需要使用HFile版本3。(可选)为每个RegionServer配置MOB文件读取器的缓存设置(请参阅配置MOB缓存),然后配置特定列以保存MOB数据。客户端代码无需更改即可利用HBase MOB支持。该功能对客户端是透明的。
  MOB压缩
  在MemStore刷新后,MOB数据被刷新到MOB文件中。一段时间后会有很多MOB文件。为了减少MOB文件数量,有一个周期性任务可以将小型MOB文件压缩成大型MOB文件(MOB压缩)。
  为MOB配置列
  为MOB配置列
  您可以在表创建或更改期间配置列以支持MOB,无论是在HBase Shell中还是通过Java API。两个相关的属性是boolean?IS_MOB和MOB_THRESHOLD,它是一个对象被认为是MOB的字节数,只需要IS_MOB。如果未指定MOB_THRESHOLD,则使用默认阈值100 KB。

  使用HBase Shell为MOB配置列:

大数据培训

  示例23.使用Java API为MOB配置列:


  配置MOB压缩策略
  默认情况下,一个特定日期的MOB文件会压缩为一个大型MOB文件。为了更多地减少MOB文件数,还支持其他MOB压缩策略:
  每日(daily)策略 - 每天将MOB文件压缩为一个大型MOB文件(默认策略)
  每周(weekly)策略 - 每周将MOB文件压缩为一个大型MOB文件
  每月(montly)策略 - 每月将MOB文件压缩为一个大型MOB文件

  使用HBase Shell配置MOB压缩策略:


  配置MOB压缩可合并阈值

  如果一个mob文件的大小小于默认值1280MB,它被认为是一个小文件,需要在mob compaction中合并。


  测试MOB

  HBase中提供了实用程序org.apache.hadoop.hbase.IntegrationTestIngestWithMOB以帮助测试MOB功能。该实用程序运行如下:


  threshold是当cells被认为是MOB时的阈值;默认值为1 kB,以字节为单位表示。
  minMobDataSize是MOB数据大小的最小值;默认值为512 B,以字节为单位表示。
  maxMobDataSize是MOB数据大小的较大值;默认值为5 kB,以字节为单位表示。
  配置MOB缓存
  因为可以随时存在大量MOB文件,与HFiles的数量相比,MOB文件并不总是保持打开状态。MOB文件读取器缓存是一个LRU缓存,它保持最近使用的MOB文件打开。要在每个RegionServer上配置MOB文件读取器的缓存,请将以下属性添加到RegionServer的hbase-site.xml中,根据您的环境自定义配置,然后重新启动或滚动重新启动RegionServer。

  MOB缓存配置示例:

<property>
    <name>hbase.mob.file.cache.size</name>
    <value>1000</value>
    <description>
      Number of opened file handlers to cache.
      A larger value will benefit reads by providing more file handlers per mob
      file cache and would reduce frequent file opening and closing.
      However, if this is set too high, this could lead to a "too many opened file handers"
      The default value is 1000.
    </description></property>
<property>
    <name>hbase.mob.cache.evict.period</name>
    <value>3600</value>
    <description>
      The amount of time in seconds after which an unused file is evicted from the
      MOB cache. The default value is 3600 seconds.
    </description></property>
<property>
    <name>hbase.mob.cache.evict.remain.ratio</name>
    <value>0.5f</value>
    <description>
      A multiplier (between 0.0 and 1.0), which determines how many files remain cached
      after the threshold of files that remains cached after a cache eviction occurs
      which is triggered by reaching the `hbase.mob.file.cache.size` threshold.
      The default value is 0.5f, which means that half the files (the least-recently-used
      ones) are evicted.
    </description></property>

上一篇: Docker培训_Docker操作

下一篇: H5培训_CSS选择器介绍

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!