Apache spark 无法更改';spark.sql.shuffle.partitions';有状态spark结构化流媒体应用
我有一个有状态(带有flagMapGroupsWithState)的spark结构化流媒体应用程序 根据spark的当前设计,一旦应用程序启动,似乎就没有办法更改spark.sql.shuffle.partitions,除非我停止应用程序,否则删除检查点数据(per),然后从clean重新启动-这是不可接受的,因为这样我将丢失存储在检查点中的所有中间状态 如何在不丢失数据的情况下,在这种限制下扩展我的应用程序 假设我在10个节点上用Apache spark 无法更改';spark.sql.shuffle.partitions';有状态spark结构化流媒体应用,apache-spark,spark-structured-streaming,Apache Spark,Spark Structured Streaming,我有一个有状态(带有flagMapGroupsWithState)的spark结构化流媒体应用程序 根据spark的当前设计,一旦应用程序启动,似乎就没有办法更改spark.sql.shuffle.partitions,除非我停止应用程序,否则删除检查点数据(per),然后从clean重新启动-这是不可接受的,因为这样我将丢失存储在检查点中的所有中间状态 如何在不丢失数据的情况下,在这种限制下扩展我的应用程序 假设我在10个节点上用spark.sql.shuffle.partitions=10个
spark.sql.shuffle.partitions=10个节点*4个核心/node*3=120启动了应用程序,稍后我需要通过添加另外20个节点来扩展集群
如果我不能将“spark.sql.shuffle.partitions”更改为更大的值,我就无法找到让spark利用新添加的节点的解决方案。Spark仍将数据集划分为120个分区,这意味着部分节点将处于空闲状态