我们使用具有6个分区的kafka主题,并且生产者的传入消息具有4个键key1,key2,key3,key4及其对应的值,我看到这些值仅分配给3个分区,其余的分区仍然为空。 / p>
答案 0 :(得分:0)
是的,按分区分配的消息是由该主题上的消息密钥对总分区数取模的哈希值确定的。例如。如果您要将密钥为 k 的消息 m 发送到具有 p 分区的主题 mytopic ,然后 m 进入 mytopic 中的分区 k .hashCode()% p 。我认为这也回答了您的第二个问题。在您的情况下,两个结果值将被映射到同一分区。
如果我的内存正确地为我服务,则Kafka-hdfs连接器应注意使用Kafka主题,并将其放入Hadoop HDFS中。您无需担心那里的分区,它已被抽象出来。