文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Hive/ Hive常见问题/ 使用Spark引擎执行复杂的Hive SQL任务时报错“java.lang.StackOverflowError”
更新时间:2025-12-10 GMT+08:00
分享

使用Spark引擎执行复杂的Hive SQL任务时报错“java.lang.StackOverflowError”

问题

MRS 3.6.0-LTS及之后版本,使用Spark引擎运行复杂的Hive SQL任务失败,在HiveServer运行日志中查看报错信息,内容如下:

...
Caused by: org.apache.spark.SparkException: java.lang.StackOverflowError
at java.io.ObjectStreamClass$WeakClassKey.<init>(ObjectStreamClass.java:2600)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:382)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1209)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1637)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1598)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1521)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1253)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:409)
at scala.collection.immutable.List$SerializationProxy.writeObject(List.scala:516)
at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)

处理步骤

  1. 可以在Hive客户端调大以下参数-Xss的值:

    set spark.executor.extraJavaOptions=-Xss10M;

    set spark.driver.extraJavaOptions=-Xss10M;

    set spark.yarn.cluster.driver.extraJavaOptions=-Xss10M;

  2. 参数调大后再重新运行Hive SQL任务。

相关文档