这是因为你的spark的slave节点和kafka的broker节点重合时,kafka的topic分区不均衡,没有分布在不同节点上,spark拉取数据就近原则,在那里拉取就在该节点计算,你可以建立多个分区均衡在各个节点上。导致这个原因是你的createDirectStream方法导致的,因为这个方法会自己映射你的kafka分区对应spark的分区,如果分区过少就会不均衡。
原文:http://blog.csdn.net/u013013024/article/details/72957265