我正在尝试使用 distcp
. 有大量的数据与大量的小文件一起移动。为了加快速度,我试着用 -strategy dynamic
,根据文档,“允许更快的数据节点比较慢的节点复制更多的字节”。
我把Map绘制者的数目设为400。启动作业时,我看到以下错误: java.io.IOException: Too many chunks created with splitRatio:2, numMaps:400. Reduce numMaps or decrease split-ratio to proceed.
当我在谷歌上搜索时,我发现了这个链接:https://issues.apache.org/jira/browse/mapreduce-5402 在这个链接中,作者要求提供一个我们可以增加 distcp.dynamic.max.chunks.tolerable
解决问题。
罚单上说问题在版本中得到了解决 2.5.0
. 我使用的hadoop版本是 2.7.3
. 所以我相信我有可能提高 distcp.dynamic.max.chunks.tolerable
.
然而,我不知道如何才能增加。可以通过如下方式为单个distcp作业更新此配置吗 -Dmapreduce.job.queuename
或者我必须更新它 mapred-site.xml
? 任何帮助都将不胜感激。
如果有大量的小文件,这种方法是否也能很好地工作?有没有其他参数可以用来加快速度?任何帮助都将不胜感激。
谢谢您。
1条答案
按热度按时间vlju58qv1#
我终于弄明白了。可以使用distcp命令传递参数,而不必更新mapred-site.xml: