Spark 2.x kafka LocationStrategies 的几种方式。
1. LocationStrategies.PreferBrokers()
仅仅在你 spark 的 executor 在相同的节点上,优先分配到存在 kafka broker 的机器上;
2. LocationStrategies.PreferConsistent();
大多数情况下使用,一致性的方式分配分区所有 executor 上。(主要是为了分布均匀)
3. LocationStrategies.PreferFixed(hostMap: collection.Map[TopicPartition, String])
4. LocationStrategies.PreferFixed(hostMap: ju.Map[TopicPartition, String])
如果你的负载不均衡,可以通过这两种方式来手动指定分配方式,其他没有在 map 中指定的,均采用 preferConsistent() 的方式分配;