现在有一个任务是这样的,采用 HDFS+Hbase 的方式优化 HDFS 对小文件的支持,方案大概是:
小于阀值的文本文件直接存入 Hbase,待到小文件数量足够时,合并成一个文件存入 HDFS,其中最基本的要求是访问文件的 URI 不变。
那么,问题来了。我的设想是写一个类似后台服务的程序,检测所有在终端输入的 shell 命令,如果有 hdfs dfs -put 等读写文件的命令就将命令截获并经过程序的黑匣处理(小于阀值的文件存 hbase 等操作)。以及当用户在编写 hadoop 程序的时候,代码里访问 hdfs://localhost:9000/filepath 也能够正确返回 hbase 里存储的小文件。技术上有没有实现的可能性呢?要求是用户感知不到的,不知道有没有更简单并且更好的实现方法。
看过一些关于优化 hdfs 的小文件存储的论文以及专利,感觉在工程方面说的还是不够清楚,有些技术细节不知道通过什么方式实现。
小于阀值的文本文件直接存入 Hbase,待到小文件数量足够时,合并成一个文件存入 HDFS,其中最基本的要求是访问文件的 URI 不变。
那么,问题来了。我的设想是写一个类似后台服务的程序,检测所有在终端输入的 shell 命令,如果有 hdfs dfs -put 等读写文件的命令就将命令截获并经过程序的黑匣处理(小于阀值的文件存 hbase 等操作)。以及当用户在编写 hadoop 程序的时候,代码里访问 hdfs://localhost:9000/filepath 也能够正确返回 hbase 里存储的小文件。技术上有没有实现的可能性呢?要求是用户感知不到的,不知道有没有更简单并且更好的实现方法。
看过一些关于优化 hdfs 的小文件存储的论文以及专利,感觉在工程方面说的还是不够清楚,有些技术细节不知道通过什么方式实现。