Apache spark Spark Thriftserver因tableau查询而停止或冻结

Apache spark Spark Thriftserver因tableau查询而停止或冻结,apache-spark,garbage-collection,apache-spark-sql,tableau-api,spark-thriftserver,Apache Spark,Garbage Collection,Apache Spark Sql,Tableau Api,Spark Thriftserver,大约30人通过spark shell和tableau(10.4)使用spark cluster(spark 2.2)。由于jvm需要收集大量垃圾,thriftserver每天会被杀死或冻结一次。以下是我可以在thriftserver日志文件中找到的错误消息: 错误SparkExecuteStatementOperation:执行查询时出错,currentState正在运行,java.lang.OutOfMemoryError:超出GC开销限制 错误SparkExecuteStatementOpe

大约30人通过spark shell和tableau(10.4)使用spark cluster(spark 2.2)。由于jvm需要收集大量垃圾,thriftserver每天会被杀死或冻结一次。以下是我可以在thriftserver日志文件中找到的错误消息:

错误SparkExecuteStatementOperation:执行查询时出错,currentState正在运行,java.lang.OutOfMemoryError:超出GC开销限制

错误SparkExecuteStatementOperation:执行查询时出错,currentState正在运行,java.lang.OutOfMemoryError:超出GC开销限制

错误TaskSchedulerImpl:XXX.XXX.XXX上的执行器2丢失:远程RPC客户端已解除关联。可能是由于容器超过阈值或网络问题。检查驱动程序日志中的警告消息。
线程“HiveServer2处理程序池:thread-152”java.lang.OutOfMemoryError中出现异常:java堆空间

一般资料:

Thriftserver通过以下选项启动(从master->sun.java.command的web ui复制):

org.apache.spark.deploy.SparkSubmit--masterspark://bd-master:7077 --conf spark.driver.memory=6G--conf spark.driver.extraClassPath=--hiveconf--class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2--executor memory 12G--total executor cores 12--supervision--driver cores 2 spark internal hive.server2.thrift.bind.host bd master--hiveconf hive.server2.thrift.port 10001

spark standalone群集在6台机器上有48个内核和240 GB内存。每台机器有8个内核和64 GB内存。其中两个是虚拟机

用户正在查询配置单元表,该配置单元表是在所有计算机上复制的1.6 GB csv文件


我做错什么了吗?为什么tableau能够杀死节俭者?我是否可以提供任何其他信息帮助您帮助我?

我们可以通过设置:

spark.sql.thriftServer.incrementalCollect=true

当此参数设置为true时,thriftserver将向每个分区的请求者发送一个结果。这将减少thriftserver在发送结果时所需的峰值内存。

我们可以通过设置:

spark.sql.thriftServer.incrementalCollect=true
当此参数设置为true时,thriftserver将向每个分区的请求者发送一个结果。这减少了thriftserver在发送结果时所需的内存峰值