gpt4 book ai didi

scala - Spark 作业完成但应用程序需要时间关闭

转载 作者:行者123 更新时间:2023-12-04 00:38:00 32 4
gpt4 key购买 nike

使用 Scala 运行 spark 作业,正如预期的那样,所有作业都按时完成,但不知何故,一些 INFO 日志在作业停止前打印了 20-25 分钟。

发布一些 UI 屏幕截图可以帮助您解决问题。

  • 以下是 4 个阶段所用的时间:

  • Time taken by 4 stages
  • 以下是连续作业 ID 之间的时间
    time between consecutive job ids

  • 我不明白为什么在两个工作 ID 之间花费了这么多时间。

    以下是我的代码片段:
        val sc = new SparkContext(conf)
    for (x <- 0 to 10) {
    val zz = getFilesList(lin);
    val links = zz._1
    val path = zz._2
    lin = zz._3
    val z = sc.textFile(links.mkString(",")).map(t => t.split('\t')).filter(t => t(4) == "xx" && t(6) == "x").map(t => titan2(t)).filter(t => t.length > 35).map(t => ((t(34)), (t(35), t(5), t(32), t(33))))
    val way_nodes = sc.textFile(way_source).map(t => t.split(";")).map(t => (t(0), t(1)));
    val t = z.join(way_nodes).map(t => (t._2._1._2, Array(Array(t._2._1._2, t._2._1._3, t._2._1._4, t._2._1._1, t._2._2)))).reduceByKey((t, y) => t ++ y).map(t => process(t)).flatMap(t => t).combineByKey(createTimeCombiner, timeCombiner, timeMerger).map(averagingFunction).map(t => t._1 + "," + t._2)
    t.saveAsTextFile(path)
    }
    sc.stop()

    更多后续: spark-1.4.1 saveAsTextFile to S3 is very slow on emr-4.0.0

    最佳答案

    当我发表评论时,我建议使用 spark-csv 包而不是 sc.saveAsTextFile并且使用该包直接写入 s3 没有问题:)

    我不知道你是使用 s3 还是 s3n,但也许可以尝试切换。我在 Spark 1.5.2 (EMR-4.2) 上使用 s3a 时遇到过问题,其中写入一直超时并切换回 s3 解决了问题,因此值得一试。

    应该加快写入 s3 的其他一些事情是使用 DirectOutputCommiter

    conf.set("spark.hadoop.mapred.output.committer.class","com.appsflyer.spark.DirectOutputCommitter")

    并禁用 _SUCCESS 文件的生成:
    sc.hadoopConfiguration.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")

    请注意,必须在 SparkContext 的 hadoop 配置上设置禁用 _SUCCESS 文件。而不是在 SparkConf .

    我希望这有帮助。

    关于scala - Spark 作业完成但应用程序需要时间关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002184/

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