Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark PySpark上超出了GC开销限制_Apache Spark_Pyspark_Apache Spark Sql - Fatal编程技术网

Apache spark PySpark上超出了GC开销限制

Apache spark PySpark上超出了GC开销限制,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我目前正在使用PySpark处理大量日志,并且我的集群上面临一些内存问题 这给我带来了以下错误: HTTP错误500 访问/jobs/时出现问题。原因: 由以下原因导致的服务器错误: java.lang.OutOfMemoryError:超出GC开销限制 以下是我当前的配置: spark.driver.cores 3 spark.driver.memory 6g spark.executor.cores 3 spark.executor.instances 20 spark.exe

我目前正在使用PySpark处理大量日志,并且我的集群上面临一些内存问题

这给我带来了以下错误:

HTTP错误500

访问/jobs/时出现问题。原因:

由以下原因导致的服务器错误:

java.lang.OutOfMemoryError:超出GC开销限制

以下是我当前的配置:

spark.driver.cores  3
spark.driver.memory 6g
spark.executor.cores    3
spark.executor.instances    20
spark.executor.memory   6g
spark.yarn.executor.memoryOverhead  2g
首先,我不会在spark工作中缓存/保留任何内容

我读到过,它可能是一种记忆过剩的东西,这就是我增加它的原因。但这似乎还不够。 我还读到,垃圾收集器也可能有问题。这是我这里的主要问题,当你必须处理许多不同的数据库时,最佳实践是什么

我必须做大量的加入,我正在用SparkSql做这件事,并且我正在创建许多临时视图。这是一个坏习惯吗?做一些巨大的SQL请求并在一个SQL请求中加入10个连接会更好吗?它会降低代码的可读性,但它能帮助解决我的问题吗


谢谢,

嗯,我想我已经解决了我的问题。这是关于广播的事

我认为由于我的连接非常大,它们需要相当长的时间,因此我禁用了广播:

config("spark.sql.autoBroadcastJoinThreshold", "-1")
问题似乎已经解决了


谢谢,

您使用的spark版本是什么?您是否能够验证传递给spark的驱动程序JVM的
-Xmx
参数值?您是否尝试使用visualvm连接到驱动程序以检查哪些对象占用了这么多内存?请确保您的
spark.memory.fraction=0.6
。如果该值高于遇到垃圾收集错误的值,请参阅