由于画面查询,Spark Thriftserver停止或冻结

时间:2017-10-27 16:42:26

标签: apache-spark garbage-collection apache-spark-sql tableau spark-thriftserver

火花群(火花2.2)由大约30人通过火花壳和画面(10.4)使用。每天一次,thriftserver被杀死或冻结,因为jvm需要收集许多垃圾。这些是我可以在thriftserver日志文件中找到的错误消息:

ERROR SparkExecuteStatementOperation: Error executing query, currentState RUNNING, java.lang.OutOfMemoryError: GC overhead limit exceeded

ERROR SparkExecuteStatementOperation: Error executing query, currentState RUNNING, java.lang.OutOfMemoryError: GC overhead limit exceeded

ERROR TaskSchedulerImpl: Lost executor 2 on XXX.XXX.XXX.XXX: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages. Exception in thread "HiveServer2-Handler-Pool: Thread-152" java.lang.OutOfMemoryError: Java heap space

一般信息:

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

org.apache.spark.deploy.SparkSubmit --master spark://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 --supervise --driver-cores 2 spark-internal hive.server2.thrift.bind.host bd-master --hiveconf hive.server2.thrift.port 10001

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

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

有什么我做错了为什么画面能够杀死thriftserver?我能提供哪些其他信息可以帮助你帮助我吗?

1 个答案:

答案 0 :(得分:0)

我们可以通过设置:

来绕过此问题
spark.sql.thriftServer.incrementalCollect=true

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