扫描中间完成目录时出错 - dataproc Spark 作业

问题描述 投票:0回答:1

我们的

spark aggregation jobs
需要大量执行时间才能完成。本来应该在 5 分钟内完成,但实际需要 30 到 40 分钟才能完成。

dataproc cluster logging
说它正在尝试扫描中间完成的目录并且它不断出现。

enter image description here

如果我查看

spark UI
,它表示该工作实际上只花费了更少的时间,并且可能会因为某些原因而被搁置。

我尝试查看给定作业 ID 的纱线日志,但在那里找不到类似的错误消息。我在哪里可以看到云日志中出现的相同日志?

yarn logs -applicationId application_1700468925211_1632269

我读了一些文章,说它与 jobhistory 服务器有关,其中它试图循环扫描目录。

供参考:https://issues.apache.org/jira/browse/MAPREDUCE-6684

查看

mapred-site.xml
文件,我发现下面的属性指向临时存储桶的 gcs 存储桶位置,用于存储 dataproc 作业详细信息。

mapreduce.jobhistory.done-dir
mapreduce.jobhistory.intermediate-done-dir

<property>
    <name>mapreduce.jobhistory.always-scan-user-dir</name>
    <value>true</value>
    <description>Enable history server to always scan user dir.</description>
</property>


<property>
        <name>mapreduce.jobhistory.recovery.enable</name>
        <value>true</value>
        <description>
            Enable history server to recover server state on startup.
        </description>
    </property>

我们可以将上述禁用为 false 以解决问题吗?我对此方法非常怀疑,因为我们在生产中面临这个问题,并且无法在较低的环境中复制。期待有意义的建议。

apache-spark google-cloud-platform mapreduce google-cloud-logging dataproc
1个回答
0
投票

我登录到

master node
并更改了
mapred-site.xml
文件并将
mapreduce.jobhistory.always-scan-user-dir
属性设置为
false

cd /etc/hadoop/conf/
sudo vi mapred-site.xml

<property>
    <name>mapreduce.jobhistory.always-scan-user-dir</name>
    <value>true</value>
    <description>Enable history server to always scan user dir.</description>
</property>

此后,我取消了现有正在运行的作业并停止并重新启动了

dataproc cluster
。作业运行良好,并且执行时间较短。

不太确定此问题的原因,尽管我们有其他具有类似配置的集群,并且它们运行得绝对正常。

© www.soinside.com 2019 - 2024. All rights reserved.