【问题标题】:s3-dist-cp and hadoop distcp job infinitely loopin in EMRs3-dist-cp 和 hadoop distcp 作业在 EMR 中无限循环
【发布时间】:2016-07-19 15:16:53
【问题描述】:

我正在尝试将 193 GB 数据从 s3 复制到 HDFS。我正在为 s3-dist-cp 和 hadoop distcp 运行以下命令:

s3-dist-cp --src s3a://PathToFile/file1 --dest hdfs:///user/hadoop/S3CopiedFiles/

hadoop distcp s3a://PathToFile/file1 hdfs:///user/hadoop/S3CopiedFiles/

我在主节点上运行这些,并检查正在转移的金额。 花了大约一个小时,复制过来后,所有内容都被删除了,我的集群中的 4 个核心实例中的磁盘空间显示为 99.8%,并且 hadoop 作业永远运行。 一旦我运行命令,

16/07/18 18:43:55 INFO mapreduce.Job: map 0% reduce 0%
16/07/18 18:44:02 INFO mapreduce.Job: map 100% reduce 0%
16/07/18 18:44:08 INFO mapreduce.Job: map 100% reduce 14%
16/07/18 18:44:11 INFO mapreduce.Job: map 100% reduce 29%
16/07/18 18:44:13 INFO mapreduce.Job: map 100% reduce 86%
16/07/18 18:44:18 INFO mapreduce.Job: map 100% reduce 100%

这会立即打印,然后复制一个小时的数据。一切重新开始。

16/07/18 19:52:45 INFO mapreduce.Job: map 0% reduce 0%
16/07/18 18:52:53 INFO mapreduce.Job: map 100% reduce 0%

我在这里有什么遗漏吗?任何帮助表示赞赏。

另外我想知道在哪里可以找到主节点上的日志文件,以查看作业是否失败并因此循环? 谢谢

【问题讨论】:

    标签: loops hadoop emr distcp s3distcp


    【解决方案1】:

    就我而言,我将一个大压缩文件从 hdfs 复制到 s3,然后 hadoop distcp 比 s3-dist-cp 快得多。

    当我检查日志时,多上传部分在减少步骤中需要很长时间。 s3-dist-cp 上传一个块(134MB)需要 20 秒,而 hadoop distcp 只需 4 秒。

    distcp 和 s3-dist-cp 的区别在于 distcp 在 s3(在目标文件系统)创建临时文件,而 s3-dist-cp 在 hdfs 创建临时文件。

    我仍在研究为什么 distcp 和 s3-dist-cp 的多上传性能有很大不同,希望有好的见解的人可以在这里贡献。

    【讨论】:

      【解决方案2】:

      如果您可以选择 Hadoop 2.8.0 进行调查,并使用 s3a:// 文件系统,您可以获取它现在收集的大量文件系统统计信息。

      真正的性能杀手是 rename(),它在 s3 客户端中通过复制然后删除来模仿:如果任一 distcp 运行尝试使用重命名进行原子 distcp,这将增加大约 1 秒的延迟每 6-10MB 的数据。上传后延迟 16 秒的 134MB 将与“它是重命名”一起使用

      【讨论】:

        猜你喜欢
        • 2021-02-03
        • 2019-08-28
        • 2017-12-14
        • 2012-10-01
        • 2018-06-08
        • 1970-01-01
        • 2020-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多