本文为您汇总了使用JindoDistCp时的常见问题。
list性能低
问题说明
如果您在使用JindoDistCp的过程中,发现list性能较慢,且遇到如下信息:
Successfully list objects with prefix xxx/yyy/ in bucket xxx recursive 0 result 315 dur 100036.615031MS
其中
dur 100036.615031MS
代表此次list耗时,单位为毫秒。OSS上文件正常的list速度是1000个文件耗时1秒,您可以根据当前目录下文件的数量来判断该list耗时是否异常。例如,上述信息显示list 315个文件的目录需要100秒,显然是不正常的。解决方案
执行以下命令,增加客户端内存。
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx4096m"
Checksum报错
问题说明
在使用JindoDistCp的过程中报错,报错信息如下。
Failed to get checksum store.
解决方案
OSS-HDFS默认的Checksum算法是COMPOSITE_CRC,如果HDFS配置参数dfs.checksum.combine.mode为MD5MD5CRC,则需要变更OSS-HDFS的fs.oss.checksum.combine.mode配置为MD5MD5CRC。代码示例如下。
hadoop jar jindo-distcp-${version}.jar --src /data --dest oss://destBucket/ --hadoopConf fs.oss.checksum.combine.mode=MD5MD5CRC
拷贝OSS文件到OSS-HDFS时报错
问题说明
使用JindoDistCp拷贝OSS文件到OSS-HDFS时报错,报错信息如下。
Exception raised while copying data file, verify checksum failed
解决方案
如果OSS中的文件不是通过JindoDistCp从HDFS迁移到OSS的,则需要通过参数--disableChecksum跳过Checksum检查。代码示例如下。
hadoop jar jindo-distcp-${version}.jar --src oss://ossBucket/ --dest oss://dlsBucket/ --disableChecksum
如何查看JindoDistCp是否执行成功?
如果执行JindoDistCp时没有添加--ignore
参数,则执行过程中有问题会报错退出。如果添加了--ignore
参数,则可以查看JindoDistCp Counters信息以确认数据完整性。例如COPY_FAILED、CHECKSUM_DIFF等,详情请参见JindoDistCp Counters。