kafka相关

本文详细介绍了Kafka的Zookeeper启动、配置多个Zookeeper、创建与管理topic、理解replication-factor和partitions,以及如何进行Kafka的扩容和迁移操作。重点讲述了kafka-reassign-partitions.sh命令的使用,包括迁移前后的验证步骤,强调了迁移过程对磁盘IO的影响和分批迁移的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 kafka 的zk启动

bin/zookeeper-server-start.shconfig/zookeeper.properties &

 

Kafka配置多个zookeeper IP

#设置zookeeper,可连接多个zookeeper服务器

zookeeper.connect=192.168.1.100:2182,192.168.1.100:2183192.168.1.100:2184

 

创建topic

sh kafka-topics.sh --create --zookeeper 192.168.1.100:2182 --replication-factor 1 --partitions 5 --topic skyguo.test

replication-factor表示该topic需要在不同的broker中保存几份,这里replication-factor设置为2, 

 

运行生产者

sh kafka-console-producer.sh   --broker-list   192.168.1.100:9093    --topic skyguo.test 

其中--broker-list为broker列表

--broker-list <broker-list>             REQUIRED: The broker list stringin   

                                          theform HOST1:PORT1,HOST2:PORT2.

运行消费者

sh kafka-console-consumer.sh  --zookeeper 192.168.1.100:2182  --from-beginning  --topicskyguo.test  

 

创建topic

sh kafka-topics.sh   --create --zookeeper  192.168.1.100:2182  --replication-factor 2 --partitions 5  --topicguojunjie

注意  --replication-factor 为备份因子,个数需要小于等于broker个数

 

同一个topic下的不同parthon的数据是不一样的

查看topic在broker的运行情况(需要上报 每个broker的ip)

 

sh kafka-topics.sh  --zookeeper 192.168.1.100:2182   --describe   --topic newjun

Topic:newjun    PartitionCount:4    ReplicationFactor:2 Configs:

   Topic: newjun   Partition: 0    Leader: 2  Replicas: 2,0   Isr: 2,0

   Topic: newjun   Partition: 1    Leader: 0  Replicas: 0,1   Isr: 0,1

   Topic: newjun   Partition: 2    Leader: 1  Replicas: 1,2   Isr: 1,2

   Topic: newjun   Partition: 3    Leader: 2  Replicas: 2,1   Isr: 2,1

这是上面输出的说明。第一行给出了所有分区的总结,此外每一行都是一个分区的信息。因为我们现在在这个topic上只有两个分区,所以就只有两行。

 "leader" 负责给定分区中所有的读和写的任务。分区将随即选取一个节点作为leader。

“replicas” 列出了所有当前分区中的副本节点。不论这些节点是否是leader或者是否处于激活状态,都会被列出来。

“isr” 是表示“在同步中”的副本节点的列表。是replicas列表的一个子集,包含了当前处于激活状态的节点,并且leader节点开头。

注意在我们的例子中,节点1该topic仅有的一个分区中的leader节点。

如何对机器上的kafka程序进行监控处理。

 

 查看所有的topic

bin/kafka-topics.sh –list –zookeeper  192.168.1.100:2182 

 

kafka扩容、迁移

shkafka-reassign-partitions.sh  --zookeeper   192.168.1.100:2182  --reassignment-json-file comm_partitions-to-move.json  -execute     comm_partitions-to-move.json是个json文件,文件内容指定了topic,需要的迁移分区及目标分区。
sh kafka-topics.sh   --describe  --zookeeper    192.168.1.100:2182  --topic 20170320          Topic:20170320  PartitionCount:5    ReplicationFactor:3 Configs:

   Topic: 20170320 Partition: 0    Leader: 1  Replicas: 1,3,0 Isr: 1,3,0

   Topic: 20170320 Partition: 1   Leader: 3   Replicas: 3,0,1 Isr:3,0,1

   Topic: 20170320 Partition: 2   Leader: 0   Replicas: 0,1,3 Isr:0,1,3

   Topic: 20170320 Partition: 3   Leader: 1   Replicas: 1,0,3 Isr:1,0,3

   Topic: 20170320 Partition: 4   Leader: 3   Replicas: 3,1,0 Isr:3,1,0

格式如下:  comm_partitions-to-move.json

{

   "version":1,

   "partitions":

    [

       {"topic":"20170320","partition":1,"replicas":[3,4,1]}

    ]

}

说明将partion1 从 3,0,1,迁移为3,4,1

 运行如下命令,查看迁移过程bin/kafka-reassign-partitions.sh  --zookeeper host:2181--reassignment-json-file reassignment-node.json --verify

 迁kafka 迁移过程中,会出现磁盘io的突增,对机器负载有所影响,建议一次迁移的topic 分区数量不要太多,分批次迁移较为稳妥。
kafka 迁移完成后,需要同时使用verify 命令和describe验证。确保对涉及迁移的分区,leader 是Replicas的其中一个,并且Replicas是迁移后的目标节点,同时,Isr也必须是Replicas的子集。


kafka增加partitions

 sh kafka-topics.sh --zookeeper 10.209.24.21:2180 --alter--partitions 6 --topic 20170320 

./kafka-topics.sh --zookeeper 10.235.21.169:2182 --describe  --topic  device.info.new



 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值