设为首页收藏本站

小牛社区-大数据学习交流社区|大数据免费学习资源

 找回密码
 立即注册!

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 101|回复: 0

Sparksql解析异常java.lang.StackOverflowError处理

[复制链接]

130

主题

0

帖子

28

积分

吃土小白

Rank: 1

积分
28
发表于 2017-10-24 15:56:27 | 显示全部楼层 |阅读模式
  如果你在Spark SQL中运行的SQL语句过长的话,会出现 java.lang.StackOverflowError 异常: 
java.lang.StackOverflowError 
  at org.apache.spark.sql.hive.HiveQl$$anonfun$22.apply(HiveQl.scala:924)
  at org.apache.spark.sql.hive.HiveQl$$anonfun$22.apply(HiveQl.scala:924)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
  at scala.collection.immutable.List.foreach(List.scala:318)
  at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
  at scala.collection.AbstractTraversable.map(Traversable.scala:105)
  at org.apache.spark.sql.hive.HiveQl$.nodeToPlan(HiveQl.scala:924)
  at org.apache.spark.sql.hive.HiveQl$.nodeToPlan(HiveQl.scala:1214)
  at org.apache.spark.sql.hive.HiveQl$.nodeToRelation(HiveQl.scala:1225)
  at org.apache.spark.sql.hive.HiveQl$$anonfun$22.apply(HiveQl.scala:966)
  at org.apache.spark.sql.hive.HiveQl$$anonfun$22.apply(HiveQl.scala:924)
  这是因为程序运行的时候 Stack 大小大于 JVM 的设置大小。我们可以通过在启动Spark-sql 的时候加上 --driver-java-options "-Xss10m" 选项解决这个问题。 
  -Xss 是 JVM 为每个线程分配的堆栈大小。JDK 1.5 之前每个线程堆栈默认大小为256K;JDK 1.5 以后每个线程堆栈默认大小为1M。默认的大小设置查看可以通过运行下面的命令获取: 
[iteblog@www.iteblog.com ~]$ java -XX:+PrintFlagsFinal -version | grep ThreadStackSize 
  intx CompilerThreadStackSize                   = 0                                   {pd product}
  intx ThreadStackSize                           = 1024                                {pd product}
  intx VMThreadStackSize                         = 1024                                {pd product}
java version "1.8.0_77" 
Java(TM) SE Runtime Environment (build 1.8.0_77-b03) 
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) 
  具体大小的设置需要根据实际的应用程序来决定,不能随便设置。
优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。 
100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。 
注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会! 
本博客文章除特别声明,全部都是原创! 
禁止个人和公司转载本文、谢谢理解:过往记忆(http://www.iteblog.com/)
本文链接: 【Spark sql解析异常java.lang.StackOverflowError处理】(http://www.iteblog.com/archives/2151.html)
<img alt="SosoImg"/>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册!

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

快速回复 返回顶部 返回列表