报错信息如下:
Error: java.io.IOException: File copy failed: hftp://master01.la.hadoop.sogou-op.org:50070/user/slave/norm/web-fast_urlfilter/201507/20150701/fast_urlfilter.err.log.2015-07-01_09.web-fast_urlfilter.10.12.10.127.fast_urlfilter.lzo --> viewfs://nsX/tmp/fast_urlfilter.err.log.2015-07-01_09.web-fast_urlfilter.10.12.10.127.fast_urlfilter.lzo
at org.apache.hadoop.tools.mapred.CopyMapper.copyFileWithRetry(CopyMapper.java:284)
at org.apache.hadoop.tools.mapred.CopyMapper.map(CopyMapper.java:252)
at org.apache.hadoop.tools.mapred.CopyMapper.map(CopyMapper.java:50)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1892)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
Caused by: java.io.IOException: Couldn't run retriable-command: Copying hftp://master01.la.hadoop.sogou-op.org:50070/user/slave/norm/web-fast_urlfilter/201507/20150701/fast_urlfilter.err.log.2015-07-01_09.web-fast_urlfilter.10.12.10.127.fast_urlfilter.lzo to viewfs://nsX/tmp/fast_urlfilter.err.log.2015-07-01_09.web-fast_urlfilter.10.12.10.127.fast_urlfilter.lzo
at org.apache.hadoop.tools.util.RetriableCommand.execute(RetriableCommand.java:101)
at org.apache.hadoop.tools.mapred.CopyMapper.copyFileWithRetry(CopyMapper.java:280)
... 10 more
解决方法:
第一种方法:修改hdfs-site
<property>
<name>dfs.checksum.type</name>
<value>CRC32</value>
</property>
第二种方法:加-D参数
hadoop distcp -Ddfs.checksum.type=CRC32 -update src dst
原因:
hadoop1.0中的校验和类型是CRC32,但是到了hadoop2.0,校验和类型改成了CRC32C。