2014-09-04 71 views
1

有关堆栈溢出以及hadoop 2.x文档的其他问题表明HDFS重命名操作是原子操作。但是,hadoop 2.x文档还指出以下内容:HDFS原子重命名文件系统依赖关系

请注意,重命名的原子性取决于文件系统 的实现。请参阅文件系统文档 细节 来源:Hadoop 2.x FileContext documentation

这句话也意味着依赖于底层的文件系统。直到知道我不可能理解或评论那句话的确切含义。只是文件系统的重命名操作也必须是原子的吗?什么类型的常用文件系统与该句子相冲突?

回答

0

DistributedFileSystem的重命名似乎是原子的。 rename(Path src, Path dst, final Options.Rename... options)方法有一个Javadoc注释: /** * This rename operation is guaranteed to be atomic. */ latest documentation也说原子重命名是Hadoop兼容的FileSystem的核心期望之一,所以我会假设像WebHdfsFileSystem和S3FileSystem这样的经常使用的FileSystems支持atomic重命名。源代码有点难以遵循,所以我不能100%确定。