gpt4 book ai didi

hadoop - 如何判断一个大文件是否已经在我的hdfs集群中?

转载 作者:可可西里 更新时间:2023-11-01 14:59:03 25 4
gpt4 key购买 nike

我有一个很大的jar包要安装到我的hdfs集群,但是如果我以前安装过,我不想安装两次,所以需要一种方法来判断hdfs中的jar包是不是和我本地的一样。我想用校验和来解决这个问题。我的代码是这样的:

val fs = FileSystem.get(conf)
val lfs = FileSystem.getLocal(conf);
val localchecksum = lfs.getFileChecksum(src)
val hdfschecksum = fs.getFileChecksum(dst)
if(!localchecksum.equals(hdfschecksum)){
//upload the jar file
}

不幸的是,LocalFileSystem 没有实现getFileChecksum,默认返回null,所以我的代码不再起作用了。 那么,如何判断jar文件是否已经在hdfs集群中,欢迎使用任何方法。

最佳答案

为什么不自己编写 md5 校验和?从 hdfs 加载文件做校验和(你自己的版本),从本地加载文件,计算校验和并比较。

这是从另一个 SOF 问题复制过来的代码

MessageDigest md = MessageDigest.getInstance("MD5");
try (InputStream is = Files.newInputStream(Paths.get("file.txt"))) {
DigestInputStream dis = new DigestInputStream(is, md);
/* Read stream to EOF as normal... */
}
byte[] digest = md.digest();

md5 checksum in java

关于hadoop - 如何判断一个大文件是否已经在我的hdfs集群中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21308199/

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