【问题标题】:Repartition() causes spark job to failRepartition() 导致火花作业失败
【发布时间】:2019-09-27 15:28:55
【问题描述】:

我有一个使用以下代码运行文件的 spark 作业。但是,此步骤会在输出文件夹中创建几个文件。

sampledataframe.write.mode('append').partitionBy('DATE_FIELD').save(FILEPATH)

所以我开始使用下面的代码行来重新分区这些文件并拥有一个文件。

sampledataframe.repartition('DATE_FIELD').write.mode('append').partitionBy('DATE_FIELD').save(FILEPATH)

这段代码运行了几个月,但最近开始失败并出现以下错误。

[2019-09-26 16:15:48,030] {bash_operator.py:74} INFO - 19/09/26 16:15:48 WARN TaskSetManager: Lost task 48.0 in stage 1.0 (TID 812, aaa.bbb.io): org.apache.spark.SparkException: Task failed while writing rows
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.sql.execution.datasources.DynamicPartitionWriterContainer.writeRows(WriterContainer.scala:417)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1$$anonfun$apply$mcV$sp$3.apply(InsertIntoHadoopFsRelation.scala:148)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1$$anonfun$apply$mcV$sp$3.apply(InsertIntoHadoopFsRelation.scala:148)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.scheduler.Task.run(Task.scala:89)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:247)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at java.lang.Thread.run(Thread.java:748)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - Caused by: java.io.IOException: FAILED_TO_UNCOMPRESS(5)

以前有人遇到过这个错误吗?你能告诉我如何解决这个问题吗?

【问题讨论】:

    标签: python apache-spark pyspark apache-spark-1.6


    【解决方案1】:

    我认为这与内存分配有关。最近您可能需要处理更多数据,这可能会导致超时/偏斜等问题...

    任何任务中是否存在任何数据偏斜。你能检查一下吗。另外请分享您的集群配置和您的 spark-submit 内存参数。

    【讨论】:

      【解决方案2】:

      这似乎主要是执行程序没有获得足够内存的问题。当您尝试创建单个文件时,代码将需要足够的内存来支持随机写入。

      如果文件太大,主节点上的内存就会成为瓶颈。

      可能的解决方案是:

      1. 检查 master 的资源使用情况,如果是则增加相同
        似乎被过度使用了。
      2. 长期解决方案是将依赖模块更新为 读取部分文件以使任务可扩展,然后您可以开始 编写部分文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-19
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 2014-06-29
        • 2016-10-10
        • 1970-01-01
        相关资源
        最近更新 更多