关于堆栈溢出和Hadoop2.x文档的其他问题都指出,HDFS重命名操作是原子操作。但是Hadoop2.x文档还声明如下:
注意,重命名的原子性取决于文件系统实现。详情请参阅文件系统文档。资料来源:Hadoop2.x FileContext文档
这个短语还意味着对底层文件系统的依赖。直到我知道这句话的确切含义,我是不可能理解的。仅仅是文件系统的重命名操作也必须是原子操作吗?哪种常用的文件系统与这句话有冲突?
发布于 2015-09-30 05:48:13
DistributedFileSystem的重命名似乎是原子化的。rename(Path src, Path dst, final Options.Rename... options)方法有一个Javadoc注释:/** * This rename operation is guaranteed to be atomic. */ 最新文件还说原子重命名是与Hadoop兼容的FileSystem的核心期望之一,所以我假设像WebHdfsFileSystem和S3FileSystem这样经常使用的FileSystems支持原子重命名。源代码有点难理解,所以我不能百分之百确定。
https://stackoverflow.com/questions/25662356
复制相似问题