更新时间:2024-08-03 GMT+08:00

如何配置HBase文件存储

使用条件

集群版本小于MRS 3.x。

使用场景

HBase文件存储模块(HBase FileStream,简称HFS)是HBase的独立模块,它作为对HBase与HDFS接口的封装,应用在MRS的上层应用,为上层应用提供文件的存储、读取、删除等功能。

在Hadoop生态系统中,无论是HDFS,还是HBase,在面对海量文件存储的时候,在某些场景下,都会存在一些很难解决的问题:

  • 如果把海量小文件直接保存在HDFS中,会给NameNode带来极大的压力。
  • 由于HBase接口以及内部机制的原因,一些较大的文件也不适合直接保存到HBase中。

HFS的出现,就是为了解决需要在Hadoop中存储海量小文件,同时也要存储一些大文件的混合场景。简单来说,就是在HBase表中,需要存放大量的小文件(10MB以下),同时又需要存放一些比较大的文件(10MB以上)。

HFS为以上场景提供了统一的操作接口,这些操作接口与HBase的函数接口类似。必须在HBase的配置参数“hbase.coprocessor.master.classes”中增加一个值:“org.apache.hadoop.hbase.filestream.coprocessor.FileStreamMasterObserver”

  • 如果只有小文件,确定不会有大文件的场景下,建议使用HBase的原始接口进行操作。
  • HFS接口需要同时对HBase和HDFS进行操作,所以客户端用户需要同时拥有这两个组件的操作权限。
  • 直接存放在HDFS中的大文件,HFS在存储时会加入一些元数据信息,所以存储的文件不是直接等于原文件的。不能直接从HDFS中移动出来使用,而需要用HFS的接口进行读取。
  • 使用HFS接口存储在HDFS中的数据,暂不支持备份与容灾。

操作步骤

  1. 登录MRS Manager
  2. 单击服务管理 > HBase > 服务配置“参数类别”类型选择“全部配置”,然后在左边窗口选择HMaster > 系统
  3. “hbase.coprocessor.master.classes”配置项中增加值“org.apache.hadoop.hbase.filestream.coprocessor.FileStreamMasterObserver”
  4. 单击“保存配置”,在弹出窗口中勾选“重新启动受影响的服务或实例。”选项,然后单击“是”,重启HBase服务。