如何配置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中的数据,暂不支持备份与容灾。
操作步骤
- 登录MRS Manager。
- 单击“参数类别”类型选择“全部配置”,然后在左边窗口选择 。 ,
- 在“hbase.coprocessor.master.classes”配置项中增加值“org.apache.hadoop.hbase.filestream.coprocessor.FileStreamMasterObserver”。
- 单击“保存配置”,在弹出窗口中勾选“重新启动受影响的服务或实例。”选项,然后单击“是”,重启HBase服务。