鲲鹏社区首页
中文
注册
云主机大数据Spark组件常见问题与解决方案

云主机大数据Spark组件常见问题与解决方案

大数据

发表于 2025/09/10

0

作者|何健聪

提交PySpark作业,报错Error "unknown queue: root.default"

问题现象

在新搭建的YARN集群上通过Airflow和SparkSubmitOperator提交了一个PySpark单词计数作业。报错Error "unknown queue: root.default"。

可能原因

yarn资源管理器中的root仅用于以分层形式对队列进行分组。

解决方法

将queue名由root.default改成default。

执行Spark SQL报错:org.apache.spark.sql.catalyst.errors.package$TreeNodeException

问题现象

在EMR集群上按小时跑的Spark SQL任务有时会失败,在driver端的日志中可以看到报错: org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree。

可能原因

driver端内存不足导致的报错。

解决方法

调大spark.driver.memory的值,由10GB扩到16GB。

sparksubmit中指定的spark.executor.cores为4,实际在yarn上运行任务时Container的vcore还是为1?

问题现象

sparksubmit中指定的spark.executor.cores为4,实际在yarn上运行任务时Container的vcore还是为1。

可能原因

yarn的调度策略导致,默认部署的yarn集群的配置文件“etc/hadoop/capacity-”

“scheduler.xmI”中yarn.scheduler.capacity.resource-calculator项配置的值为

org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator只分配内存资源。

解决方法

将DefaultResourceCalculator修改为DominantResourceCalculator并重启yarn集群。

在任务运行过程中查看是否生效。

spark任务能正常计算得到结果,但查看executor有很多是dead

问题现象

spark任务能正常计算得到结果,但查看executor有很多是dead,exceutor的日志有如下错误:

可能原因

大概率是因为内存问题导致,查看error日志无结果后,查看节点日志发现物理内存超出限制。

解决方法

增加堆外内存,将spark.executor.memoryOverhead由2GB改到4GB。

本页内容