Spark Thriftserver 由于画面查询而停止或冻结
Spark Thriftserver stops or freezes due to tableau queries
大约 30 人通过 spark-shell 和 tableau (10.4) 使用 spark 集群 (spark 2.2)。一天一次,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 使用以下选项启动(从 web-ui 的 master -> 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 内存。其中两个是虚拟机。
用户正在查询配置单元 table,这是一个在所有机器上复制的 1.6 GB csv 文件。
我做错了什么为什么 tableau 能够杀死 thriftserver?我可以提供任何其他信息来帮助您帮助我吗?
我们可以通过设置来绕过这个问题:
spark.sql.thriftServer.incrementalCollect=true
如果此参数设置为 true,thriftserver 将为每个分区向请求者发送一个结果。这减少了 thriftserver 在发送结果时所需的内存峰值。
大约 30 人通过 spark-shell 和 tableau (10.4) 使用 spark 集群 (spark 2.2)。一天一次,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 使用以下选项启动(从 web-ui 的 master -> 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 内存。其中两个是虚拟机。
用户正在查询配置单元 table,这是一个在所有机器上复制的 1.6 GB csv 文件。
我做错了什么为什么 tableau 能够杀死 thriftserver?我可以提供任何其他信息来帮助您帮助我吗?
我们可以通过设置来绕过这个问题:
spark.sql.thriftServer.incrementalCollect=true
如果此参数设置为 true,thriftserver 将为每个分区向请求者发送一个结果。这减少了 thriftserver 在发送结果时所需的内存峰值。