Spark Thriftserver 由于 tableau 查询而停止或冻结


大约

30人通过Spark-shell和tableau(10.4)使用火花簇(Spark 2.2)。节俭服务器每天被杀死或冻结一次,因为 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 -> sun.java.command 的 web-ui 复制):

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 文件。

难道我做错了什么,为什么 tableau 能够杀死节俭者?我能提供任何其他信息来帮助您帮助我吗?

我们可以通过设置以下内容来绕过此问题:

spark.sql.thriftServer.incrementalCollect=true

将此参数设置为 true 后,节俭服务器将向每个分区的请求者发送结果。这减少了节俭服务器发送结果时节俭服务器所需的内存峰值。

相关内容

  • 没有找到相关文章

最新更新