kafka 分区和 rdd partition 一一对应, 但这种对应关系在 shuffle 操作后破坏
LocationStrategies: spark executor 和 kafka partition 的映射策略
streaming 任务需要在幂等输出后存储 offset, 方法:
(1) rdd checkpoint (X) : 该操作会附带 rdd 的 offset,
(2) 用 kafka 的 commitOffset api 提交, offset 保存在 kafka 的队列中