Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 写入配置单元分区时的Spark暂存目录竞争条件?_Apache Spark_Hive_Apache Spark Sql - Fatal编程技术网

Apache spark 写入配置单元分区时的Spark暂存目录竞争条件?

Apache spark 写入配置单元分区时的Spark暂存目录竞争条件?,apache-spark,hive,apache-spark-sql,Apache Spark,Hive,Apache Spark Sql,在尝试将数据集写入配置单元表中的分区时,我会看到间歇性异常 原因:org.apache.hadoop.fs.filealreadyexistException:/user/hive/warehouse/devl_fr9.db/fr9_ftdelivery_cpy_2_4d8eebd3_9691_47ce_8acc_b2a51232; dabf6/。spark-staging-d996755c-eb81-4362-a393-31e8387104f0/date_id=20180604/part-00

在尝试将数据集写入配置单元表中的分区时,我会看到间歇性异常

原因:org.apache.hadoop.fs.filealreadyexistException:/user/hive/warehouse/devl_fr9.db/fr9_ftdelivery_cpy_2_4d8eebd3_9691_47ce_8acc_b2a51232; dabf6/。spark-staging-d996755c-eb81-4362-a393-31e8387104f0/date_id=20180604/part-00000-d996755c-eb81-4362-a393-E83104F0.c000客户拼花地板代码已存在。


如果我选中HDFS,则相关路径不存在。我只能假设这是关于临时暂存文件的一些竞争条件。我使用的是Spark 2.3

出现此问题的一个可能原因是,在作业执行期间,任务开始将数据写入该文件,但失败了

当任务失败时,它已经写入的数据由Spark(至少在2.3和2.4中确认)。因此,当其他执行器尝试重新执行失败的任务时,它将尝试写入具有相同名称的文件,您将获得FileReadyExistsException

在您的例子中,已经存在的文件被称为part-00000-d996755c-eb81-4362-a393-31e8387104f0.c000,因此您可能在stderr中有一条日志消息,指示任务00000由于失败而丢失,例如

WARN TaskSetManager: Lost task **00000** in stage...

如果您修复了此失败的原因(可能是OutOfMemoryError,如果问题是间歇性的),则FileReadyExistsException可能会得到解决,因为任务不会失败并留下临时文件。

问题是否已得到修复?在我的集群中,当多个作业正在运行且集群负载很重时,我也面临同样的问题。