gpt4 book ai didi

java - 有什么方法可以检查 Hadoop 文件是否已经打开进行写入?

转载 作者:可可西里 更新时间:2023-11-01 16:38:59 24 4
gpt4 key购买 nike

多个 Java 实例在我的机器上运行,我想检查 Hadoop 文件是否已经在写入(fs.create(file) 或 fs.append(file))模式下以任何方式打开的实例。

我在 Hadoop 文件的 FileStatus 中试过,没有找到任何东西。

有什么方法可以检查 Hadoop 文件是否已经打开进行写入?

一种方法是再次尝试创建/附加文件并捕获异常,但我有数千个文件并且不想尝试每个文件。此外,如果创建/追加成功,那么我必须关闭文件并且 lastModifiedTime 也会更改。我不想修改 Hadoop 文件的 FileStatus。

最佳答案

DistributedFileSystem 提供了方法isFileClosed(path) 来检查文件是否打开写入。

try {
DistributedFileSystem dfs = new DistributedFileSystem();
Path path = new Path("/path/to/hadoop/file");
FileSystem fs = path.getFileSystem(conf);
dfs.initialize(fs.getUri(),conf);

if (dfs.exists(path) && !dfs.isFileClosed(path)) {
System.out.println("File " + path +" already opened in write mode");
}
} catch (IOException e) {
e.printStackTrace();
}

关于java - 有什么方法可以检查 Hadoop 文件是否已经打开进行写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45605977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com