2017-06-23 20 views
1

我正在尝试使用hadoop fs -checksum来计算本地文件校验和。但它只返回None。为本地文件制作HDFS卡箍校验和。

[[email protected] tmp]$ hadoop fs -checksum file:///user/centos//a.json file:///user/centos/a.json NONE

我一直在使用

hadoop fs -copyFromLocal a.json file:///user/centos/a.json使得本地文件夹/user/centos产生.a.json.crc file尝试。但结果校验和仍然没有返回。

如何让Hadoop在本地计算校验和?

回答

1

hadoop fs -checksum当前不具备从本地文件系统计算文件校验和的功能。可能的解决办法是:

  • 阿帕奇JIRA HADOOP-12326轨道配套的本地文件系统上的文件作为hadoop fs -checksum命令的目标。如果您现在真的需要此功能,那么您可以下载Hadoop源代码,应用附加到HADOOP-12326的修补程序,并按照BUILDING.txt中的说明创建自定义版本。请注意,该修补程序尚未得到Apache Hadoop社区的批准和承诺,因此使用时风险自负。
  • 如果您只是在将文件从HDFS复制到本地文件系统时寻找一种方法来携带CRC信息,那么您可以将-crc参数传递给get命令。

实施例:

hadoop fs -get -crc hello 

ls -lrta 
... 
-rw-r--r-- 1 cnauroth     cnauroth      12 Jun 23 15:28 .hello.crc 
-rw-r--r-- 1 cnauroth     cnauroth      6 Jun 23 15:28 hello 
...