在HDFS的早期版本中,出于种种考虑,没有支持文件的追加写。但从1.0.4版本开始,支持了文件追加写。配置文件中也有是否开启该功能的选项:
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
而对于公有云上常见的对象存储,比如S3和OSS,是否支持追加写呢?
OSS的一般文件不支持append。不过可以创建追加写类型文件,就能够支持append。调用AppendObject接口会创建一个追加类型文件,后续就可以对该文件进行追加写操作。但这种模式似乎很少使用。
S3同样是不支持append的。
在对象存储服务上想对文件追加内容,一般都需要下载后追加然后再上传覆盖原来的文件。
以下论述摘自hudi官网:Hudi interacts with lake storage using the Hadoop FileSystem API, which makes it compatible with all of its implementations ranging from HDFS to Cloud Stores to even in-memory filesystems like Alluxio/Ignite. Hudi internally implements its own wrapper filesystem on top to provide additional storage optimizations (e.g: file sizing), performance optimizations (e.g: buffering), and metrics. Uniquely, Hudi takes full advantage of