我正在使用以下代码运行应用程序。我不明白为什么只有 1 个执行器在使用,即使我有 3 个。当我尝试增加范围时,我的工作失败导致任务管理器失去执行器。在总结中,我看到了随机写入的值,但随机读取为 0(可能导致所有数据都在一个节点上,并且不需要随机读取来完成作业)。
val rdd: RDD[(Int, Int)] = sc.parallelize((1 to 10000000).map(k => (k -> 1)).toSeq)
val rdd2= rdd.sortByKeyWithPartition(partitioner = partitioner)
val sorted = rdd2.map((_._1))
val count_sorted = sorted.collect()
编辑:我增加了执行程序和驱动程序的内存和内核。我还将执行者的数量从 4 个更改为 1 个。这似乎有所帮助。我现在看到每个节点上的随机读取/写入。