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

Multiple Java instances are running on my machine and I want to check whether the Hadoop file is already opened in write (fs.create(file) or fs.append(file)) mode in any of the instances.

I Tried in FileStatus of the Hadoop file, not found anything.

Is there any way to check whether the Hadoop file is already opened for write?

One way is to try to create/append a file again and catch the exception, but I have thousands of files and don't want to try every file. Also, if create/append is a success, then I have to close the file and lastModifiedTime will also get changed. I don't want to modify the FileStatus of a Hadoop file.

解决方案

DistributedFileSystem provides the method isFileClosed(path) to check whether the file is opened for write.

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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值