Apache spark 火花容器被纱线杀死
我有一个675GB的拼花地板文件的巨大数据集,压缩速度很快,我必须将它与4,5个大小像10GB的表连接起来。我有一个500多个节点的集群,每个节点都有128GB的ram,但我只能运行一个执行器atmost 28GB,否则Thread不会分配内存。 请建议我应该如何处理这个场景。 目前,我运行的是pyspark 1.6,每个节点只运行一个执行器,内存为26 Gb。 但是,如果我在运行整个join-in-hive,这需要时间,但要完成。 我应该如何有效地使用我的集群和进程来加入spark 谢谢Apache spark 火花容器被纱线杀死,apache-spark,yarn,Apache Spark,Yarn,我有一个675GB的拼花地板文件的巨大数据集,压缩速度很快,我必须将它与4,5个大小像10GB的表连接起来。我有一个500多个节点的集群,每个节点都有128GB的ram,但我只能运行一个执行器atmost 28GB,否则Thread不会分配内存。 请建议我应该如何处理这个场景。 目前,我运行的是pyspark 1.6,每个节点只运行一个执行器,内存为26 Gb。 但是,如果我在运行整个join-in-hive,这需要时间,但要完成。 我应该如何有效地使用我的集群和进程来加入spark 谢谢 sP
sPradeep您应该尝试增加spark.sql.shuffle.partitions,默认值为200。此参数控制分区的数量,从而控制执行洗牌时的任务,例如在加入、groupBy等过程中。请尝试5000的值,看看是否有效。我尝试使用4000,但再次失败。如果我是正确的,spark.sql.shuffle.partitions使我的shuffle rdd在洗牌后转换为4000个分区,而不管两个表都有多少个分区。