【问题标题】:Asisstance in reducing execution time of distcp operation协助减少 distcp 操作的执行时间
【发布时间】:2019-06-03 21:35:25
【问题描述】:

我们有许多 distcp 作业将数据从主集群复制到备份集群。这些作业整天运行并复制几乎所有关键数据库的表。我们在这里使用 webhdfs。

其中一些作业运行数小时(对于巨大的表(ORC 格式)。有什么方法可以优化两个集群之间的 distcp 操作。 欢迎提出任何建议。

我们尝试使用带宽来加快速度。以下是我们脚本的摘录。

PROP="-Dmapreduce.task.timeout=300000 -Dmapred.job.queue.name=$YARN_QUEUE -Dmapred.job.name="cpy-${jobName}" -bandwidth 800"

hadoop distcp ${PROP} $1 WEBHDFS://$DESTNAMENODE$2 >> $3 2>&1

【问题讨论】:

    标签: performance hadoop hdfs hadoop-yarn distcp


    【解决方案1】:

    调distcp性能时我通常看的三件事;

    • 用于 distcp 操作的映射器数量

    “-m”选项将允许您指定使用的地图任务数量,可以说是同时复制的最大数量。尝试运行副本几次并逐渐增加此数字以查看最适合您的方案的方法。

    • 战略动态

    您可以使用“-strategy dynamic”标志运行 DistCp 作业,该标志将“动态”调整地图大小,使更快或响应速度更快的节点能够复制比速度较慢或繁忙的节点更多的数据。您可以在 DistCp 手册中了解更多相关信息。

    • 带宽

    看起来您已经尝试过“-bandwidth”选项,但我想在这里提及它,因为它绝对是一个重要因素。如果您的网络允许,请尝试进一步增加此值。

    【讨论】:

      猜你喜欢
      • 2016-07-13
      • 2012-12-31
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多