我正在使用Spark Streaming Framework在Spark中开发一个应用程序。 现在我的目标是了解并行化如何在Spark中运行,以及如何使用它来加速我的输入数据处理。 这是我的问题: 我有一个DStream,在每个Batch Interval中都有一个RDD,其中只有一个分区有数据,该分区中的4个LinkedLists是精确的(我不确定RDD有多少分区,可能是4个给定的内核数量)我的电脑,因为我在本地模式下运行)。 我使用以下内容尝试并行化我的RDD:
JavaDStream<LinkedList<Integer>> rddWithPartitions=rddWithDataInOnePartition.repartition(4);
也就是说,有了这个,我打算将我的RDD并行化,使每个分区有一个LinkedList,而不是一个分区中的四个。
当我做rddWithPartitions.print()
时,我的确认为我认为4个分区充满了数据,但是当我转到Spark UI,即Executors时,我只看到一个,意思是(我认为)那个我只使用一名工人,因此没有实现并行化。
我确实有多个任务(虽然它是三个而不是四个,我认为会是这样),但我不确定我是否正在使用我的电脑上的所有四个核心,每个核心处理我的RDD的一个分区。
我如何确保实现这种并行化? 我希望我不要混淆。 非常感谢你。