chh*_*rma 11 hadoop checksum hdfs
我们需要在通过Webhdfs从Linux服务器将文件移动到Hadoop(HDFS)后验证校验和吗?
我想确保HDFS上的文件在复制后没有损坏.但检查校验和是否必要?
在将数据写入HDFS之前,我读取客户端做校验和
有人可以帮助我理解如何确保Linux系统上的源文件与使用webhdfs的Hdfs上的摄取文件相同.
小智 9
如果您的目标是比较驻留在HDFS上的两个文件,我不会使用"hdfs dfs -checksum URI",因为在我的情况下,它会为具有相同内容的文件生成不同的校验和.
在下面的示例中,我将比较具有相同内容的两个文件在不同位置:
old-school md5sum方法返回相同的校验和:
$ hdfs dfs -cat /project1/file.txt | md5sum
b9fdea463b1ce46fabc2958fc5f7644a -
$ hdfs dfs -cat /project2/file.txt | md5sum
b9fdea463b1ce46fabc2958fc5f7644a -
Run Code Online (Sandbox Code Playgroud)
但是,对于具有相同内容的文件,HDFS上生成的校验和是不同的:
$ hdfs dfs -checksum /project1/file.txt
0000020000000000000000003e50be59553b2ddaf401c575f8df6914
$ hdfs dfs -checksum /project2/file.txt
0000020000000000000000001952d653ccba138f0c4cd4209fbf8e2e
Run Code Online (Sandbox Code Playgroud)
有点令人费解,因为我希望对相同的内容生成相同的校验和.
可以使用hadoop fs命令计算文件的校验和.
用法:hadoop fs -checksum URI
返回文件的校验和信息.
例:
hadoop fs -checksum hdfs://nn1.example.com/file1 hadoop fs -checksum file:/// path/in/linux/file1
有关更多详细信息,请参阅:Hadoop文档
因此,如果你想在linux和hdfs中使用comapre file1,你可以使用上面的实用程序.
我写了一个库,您可以用它来计算本地文件的校验和,就像hadoop在hdfs文件上所做的一样。
因此,您可以比较校验和以进行交叉校验。 https://github.com/srch07/HDFSChecksumForLocalfile
| 归档时间: |
|
| 查看次数: |
16722 次 |
| 最近记录: |