Apache spark Spark流式RDD分区
在Spark streaming中,是否可以将特定RDD分区分配给集群中的特定节点(用于数据位置?) 例如,我得到一个事件流[a,a,a,b,b],并且有一个2节点的Spark集群 我希望所有a总是去节点1,所有b总是去节点2Apache spark Spark流式RDD分区,apache-spark,spark-streaming,Apache Spark,Spark Streaming,在Spark streaming中,是否可以将特定RDD分区分配给集群中的特定节点(用于数据位置?) 例如,我得到一个事件流[a,a,a,b,b],并且有一个2节点的Spark集群 我希望所有a总是去节点1,所有b总是去节点2 谢谢 这可以通过为RDD指定自定义分区器来实现。RangeBasedPartitioner将根据范围对RDD进行分区,但您可以使用自定义分区器实现任何分区逻辑。分区相对平衡通常很有用/重要,根据您的输入数据,这样做可能会导致问题(如散乱等)。因此请小心。这可以通过为RDD
谢谢 这可以通过为RDD指定自定义分区器来实现。RangeBasedPartitioner将根据范围对RDD进行分区,但您可以使用自定义分区器实现任何分区逻辑。分区相对平衡通常很有用/重要,根据您的输入数据,这样做可能会导致问题(如散乱等)。因此请小心。这可以通过为RDD指定自定义分区器来实现。RangeBasedPartitioner将根据范围对RDD进行分区,但您可以使用自定义分区器实现任何分区逻辑。分区相对平衡通常是有用的/重要的,根据您的输入数据,这样做可能会导致问题(例如散乱等),因此请小心。感谢您的回复。我得到一个自定义分区器(特别是RangePartitioner)将允许我进行分区,这样a在这里,b在那里,但我还想控制一个分区对Spark节点的分配。我在想,虽然a转到分区1,但是如果节点1忙于处理其他内容,Spark可能仍然会选择让节点2处理分区1。如果这仅仅是关于数据局部性的,Spark已经基于数据局部性进行了调整,您可以通过更改
Spark.locality来控制它。等等
。酷,我会研究一下。谢谢谢谢你的回复。我得到一个自定义分区器(特别是RangePartitioner)将允许我进行分区,这样a在这里,b在那里,但我还想控制一个分区对Spark节点的分配。我在想,虽然a转到分区1,但是如果节点1忙于处理其他内容,Spark可能仍然会选择让节点2处理分区1。如果这仅仅是关于数据局部性的,Spark已经基于数据局部性进行了调整,您可以通过更改Spark.locality来控制它。等等
。酷,我会研究一下。谢谢您正在使用哪种流类型?您正在使用哪种流类型?