SmallFS操作
功能简介
SmallFS新增小文件后台合并特性,能够自动发现系统中的小文件(通过文件大小阈值判断),在闲时进行合并,并把元数据外置到第三方KV系统来降低namenode压力,同时提供新的FileSystem接口,让用户能够透明地访问这些小文件。
新的FileSystem接口提供了丰富的文件操作功能,操作方式与HDFS完全相同,差别在于有些接口不支持或者部分支持。在编写SmallFS的API操作前,请先阅读SmallFS常用接口,充分了解SmallFileSystem是否支持所需要使用的API。
代码样例
使用SmallFS接口进行二次开发的时候,与HDFS重用的接口其二次开发时是一样的,可以直接参考HDFS的样例代码,如下所示:
- HDFS初始化
- 写文件
- 追加文件内容
- 读文件
- 删除文件
两者的差别在于访问SmallFS的时候需要额外进行配置,具体配置方式请查看编译并运行程序步骤 1章节的。
禁止的操作和约束
- 使用SmallFS接口进行二次开发的时候,当使用与HDFS不重用的接口进行二次开发时需要参照SmallFSFileSystem这个类。
- 小文件不支持Colocation。
- 小文件不支持设置存储策略。
- 每个小文件目录下有一个名为“.sfs”的目录,这个目录用于存放合并后的大文件,禁止直接操作这个目录,否则数据可能会丢失。
- 尽量不要使用HDFS接口操作小文件目录,否则易发生数据丢失的情况。