gpt4 book ai didi

Hadoop Distcp - 增加 distcp.dynamic.max.chunks.tolerable 配置和调整 distcp

转载 作者:可可西里 更新时间:2023-11-01 15:42:48 25 4
gpt4 key购买 nike

我正在尝试使用 distcp 在两个 hadoop 集群之间移动数据。大量的小文件需要移动大量的数据。为了让它更快,我尝试使用 -strategy dynamic,根据文档,它“允许更快的数据节点比更慢的节点复制更多的字节”。

我将映射器的数量设置为 400。当我启 Action 业时,我看到此错误:java.io.IOException:使用 splitRatio:2、numMaps:400 创建的 block 太多。减少 numMaps 或降低拆分比率以继续。

当我用谷歌搜索时,我找到了这个链接: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 的值。

但是,我不确定如何增加它。是否可以通过像 -Dmapreduce.job.queuename 一样传递它来为单个 distcp 作业更新此配置,或者我是否必须在 mapred-site.xml 上更新它?任何帮助将不胜感激。

如果有大量小文件,这种方法是否也适用?我可以使用任何其他参数来使其更快吗?任何帮助将不胜感激。

谢谢。

最佳答案

我想通了。可以使用 distcp 命令传递参数,而不必更新 mapred-site.xml:

hadoop distcp -Ddistcp.dynamic.recordsPerChunk=50 -Ddistcp.dynamic.max.chunks.tolerable=10000 -skipcrccheck -m 400 -prbugc -update -strategy dynamic "hdfs://source" "hdfs://target"

关于Hadoop Distcp - 增加 distcp.dynamic.max.chunks.tolerable 配置和调整 distcp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57514628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com