HDFS文件比较

ftw*_*ftw 6 hadoop hive hdfs

我怎么能比较两个HDFS文件,因为没有diff

我正在考虑使用Hive表并从HDFS加载数据,然后在2个表上使用join语句.有没有更好的方法?

Cha*_*guy 16

diffhadoop 没有提供命令,但您可以使用以下diff命令在shell中实际使用重定向:

diff <(hadoop fs -cat /path/to/file) <(hadoop fs -cat /path/to/file2)
Run Code Online (Sandbox Code Playgroud)

如果您只是想知道2个文件是否相同而不关心知道差异,我建议采用另一种基于校验和的方法:您可以获取两个文件的校验和,然后进行比较.我认为Hadoop不需要生成校验和,因为它们已经存储,所以它应该很快,但我可能错了.我不认为有一个命令行选项,但您可以使用Java API轻松完成此操作并创建一个小应用程序:

FileSystem fs = FileSystem.get(conf);
chksum1 = fs.getFileChecksum(new Path("/path/to/file"));
chksum2 = fs.getFileChecksum(new Path("/path/to/file2"));
return chksum1 == chksum2;
Run Code Online (Sandbox Code Playgroud)