Kafka1.0日常维护

日常维护操作

4.1 创建topic两个备份6个分区:

./kafka-topics.sh --create --zookeeper app212:2181 --replication-factor 2 --partitions 6 --topic t_test

4.2 查看存在的topic:

./kafka-topics.sh --zookeeper app212:2181 --list

4.3 查看topic详细信息:


./kafka-topics.sh --describe --zookeeper app212:2181 --topic t_test

topic详细信息

4.4 生产数据:

./kafka-console-producer.sh --broker-list localhost:9092 --topic t_test

模拟生产数据

4.5 消费数据:

消费数据:
./kafka-console-consumer.sh --zookeeper app211:2181 --topic t_test

模拟消费数据

4.6 查看topic某分区偏移量最大(小)值

./kafka-run-class.sh kafka.tools.GetOffsetShell --topic t_test  --time -1 --broker-list 10.242.167.216:9092,10.242.167.217:9092,10.242.167.218:9092 --partitions 0
time为-1时表示最大值,time为-2时表示最小值

偏移量

4.7 删除topic

只会删除zookeeper中的元数据,消息文件须手动删除

./kafka-topics.sh --zookeeper app212:2181 --delete --topic t_test

4.8 增加topic分区数(只能增加)

./kafka-topics.sh --zookeeper app212:2181  --alter --topic t_test --partitions 10

4.8.1 查看group消费情况

kafka-consumer-groups.sh --bootstrap-server host:9092 --group group_name --describe

4.9 增加topic副本数

创建partitions-extension-push-token-topic.json
vim /opt/kafka/partitions-extension-push-token-topic.json

{
    "partitions": [
        {
            "topic": "t_test",
            "partition": 0,
            "replicas": [
                4,
                5,
				6
            ]
        },
        {
            "topic": "t_test",
            "partition": 1,
            "replicas": [
                5,
                6,
				1
            ]
        },
        {
            "topic": "t_test",
            "partition": 2,
            "replicas": [
                6,
                1,
				2
            ]
        },
		{
            "topic": "t_test",
            "partition": 3,
            "replicas": [
                1,
                2,
				3
            ]
        },
		{
            "topic": "t_test",
            "partition": 4,
            "replicas": [
                2,
                3,
				4
            ]
        },
		{
            "topic": "t_test",
            "partition": 5,
            "replicas": [
                3,
                4,
				5
            ]
        }
    ],
    "version": 1
}

执行变更:

命令:./kafka-reassign-partitions.sh --zookeeper localhost:2181  --reassignment-json-file
[root@dbmspreapp212 bin]# ./kafka-reassign-partitions.sh --zookeeper localhost:2181  --reassignment-json-file  ../partitions-extension-push-token-topic.json --execute
Current partition replica assignment

{"version":1,"partitions":[{"topic":"t_test","partition":1,"replicas":[5,6],"log_dirs":["any","any"]},{"topic":"t_test","partition":5,"replicas":[3,4],"log_dirs":["any","any"]},{"topic":"t_test","partition":2,"replicas":[6,1],"log_dirs":["any","any"]},{"topic":"t_test","partition":3,"replicas":[1,2],"log_dirs":["any","any"]},{"topic":"t_test","partition":4,"replicas":[2,3],"log_dirs":["any","any"]},{"topic":"t_test","partition":0,"replicas":[4,5],"log_dirs":["any","any"]}]}

Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.

验证结果:

./kafka-reassign-partitions.sh --zookeeper localhost:2181  --reassignment-json-file  ../partitions-extension-push-token-topic.json --verify
[root@dbmspreapp212 bin]# ./kafka-reassign-partitions.sh --zookeeper localhost:2181  --reassignment-json-file  ../partitions-extension-push-token-topic.json --verify
Status of partition reassignment: 
Reassignment of partition t_test-5 completed successfully
Reassignment of partition t_test-2 completed successfully
Reassignment of partition t_test-0 completed successfully
Reassignment of partition t_test-4 completed successfully
Reassignment of partition t_test-1 completed successfully
Reassignment of partition t_test-3 completed successfully

查看结果
变更前:

[root@dbmspreapp212 bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic t_test
Topic:t_test	PartitionCount:6	ReplicationFactor:2	Configs:
	Topic: t_test	Partition: 0	Leader: 4	Replicas: 4,5	Isr: 4,5
	Topic: t_test	Partition: 1	Leader: 5	Replicas: 5,6	Isr: 5,6
	Topic: t_test	Partition: 2	Leader: 6	Replicas: 6,1	Isr: 6,1
	Topic: t_test	Partition: 3	Leader: 1	Replicas: 1,2	Isr: 1,2
	Topic: t_test	Partition: 4	Leader: 2	Replicas: 2,3	Isr: 2,3
	Topic: t_test	Partition: 5	Leader: 3	Replicas: 3,4	Isr: 3,4

变更后

[root@dbmspreapp212 bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic t_test
Topic:t_test	PartitionCount:6	ReplicationFactor:3	Configs:
	Topic: t_test	Partition: 0	Leader: 4	Replicas: 4,5,6	Isr: 4,5,6
	Topic: t_test	Partition: 1	Leader: 5	Replicas: 5,6,1	Isr: 5,6,1
	Topic: t_test	Partition: 2	Leader: 6	Replicas: 6,1,2	Isr: 6,1,2
	Topic: t_test	Partition: 3	Leader: 1	Replicas: 1,2,3	Isr: 1,2,3
	Topic: t_test	Partition: 4	Leader: 2	Replicas: 2,3,4	Isr: 2,3,4
	Topic: t_test	Partition: 5	Leader: 3	Replicas: 3,4,5	Isr: 3,4,5

4.10 减少topic副本数

类似于增加副本数,只需要更改json文件的replicas配置项

4.11 Kafka集群扩容(重分配topic分区)

创建topic-to-move.json
vim /opt/kafka/topic-to-move.json

{
    "topics": [
        {
            "topic": "t_test"
        }
    ],
    "version": 1
}

生成迁移分配规则json文件:

./kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to-move-json-file ../topic-to-move.json --broker-list "1,2,3,4,5,6,8" --generate
[root@dbmspreapp212 bin]# ./kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to-move-json-file ../topic-to-move.json --broker-list "1,2,3,4,5,6,8" --generate
Current partition replica assignment
{"version":1,"partitions":[{"topic":"t_test","partition":1,"replicas":[6,1],"log_dirs":["any","any"]},{"topic":"t_test","partition":5,"replicas":[4,5],"log_dirs":["any","any"]},{"topic":"t_test","partition":6,"replicas":[5,6],"log_dirs":["any","any"]},{"topic":"t_test","partition":2,"replicas":[1,2],"log_dirs":["any","any"]},{"topic":"t_test","partition":3,"replicas":[2,3],"log_dirs":["any","any"]},{"topic":"t_test","partition":4,"replicas":[3,4],"log_dirs":["any","any"]},{"topic":"t_test","partition":0,"replicas":[5,6],"log_dirs":["any","any"]}]}

Proposed partition reassignment configuration
{"version":1,"partitions":[{"topic":"t_test","partition":1,"replicas":[1,8],"log_dirs":["any","any"]},{"topic":"t_test","partition":5,"replicas":[5,4],"log_dirs":["any","any"]},{"topic":"t_test","partition":6,"replicas":[6,5],"log_dirs":["any","any"]},{"topic":"t_test","partition":2,"replicas":[2,1],"log_dirs":["any","any"]},{"topic":"t_test","partition":3,"replicas":[3,2],"log_dirs":["any","any"]},{"topic":"t_test","partition":4,"replicas":[4,3],"log_dirs":["any","any"]},{"topic":"t_test","partition":0,"replicas":[8,6],"log_dirs":["any","any"]}]}

其中的Current partition replica assignment指的是迁移前的partition replica;Proposed partition reassignment configuration 指的就是迁移分配规则json。需要将该json文件保存到json文件中(如expand-cluster-reassignment.json)
vim /opt/kafka/expand-cluster-reassignment.json

{"version":1,"partitions":[{"topic":"t_test","partition":1,"replicas":[1,8],"log_dirs":["any","any"]},{"topic":"t_test","partition":5,"replicas":[5,4],"log_dirs":["any","any"]},{"topic":"t_test","partition":6,"replicas":[6,5],"log_dirs":["any","any"]},{"topic":"t_test","partition":2,"replicas":[2,1],"log_dirs":["any","any"]},{"topic":"t_test","partition":3,"replicas":[3,2],"log_dirs":["any","any"]},{"topic":"t_test","partition":4,"replicas":[4,3],"log_dirs":["any","any"]},{"topic":"t_test","partition":0,"replicas":[8,6],"log_dirs":["any","any"]}]}

执行迁移分配

./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file ../expand-cluster-reassignment.json --execute
[root@dbmspreapp212 bin]# kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file ../expand-cluster-reassignment.json --execute
Current partition replica assignment

{"version":1,"partitions":[{"topic":"t_test","partition":1,"replicas":[6,1],"log_dirs":["any","any"]},{"topic":"t_test","partition":5,"replicas":[4,5],"log_dirs":["any","any"]},{"topic":"t_test","partition":6,"replicas":[5,6],"log_dirs":["any","any"]},{"topic":"t_test","partition":2,"replicas":[1,2],"log_dirs":["any","any"]},{"topic":"t_test","partition":3,"replicas":[2,3],"log_dirs":["any","any"]},{"topic":"t_test","partition":4,"replicas":[3,4],"log_dirs":["any","any"]},{"topic":"t_test","partition":0,"replicas":[5,6],"log_dirs":["any","any"]}]}

Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.

验证

./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file ../expand-cluster-reassignment.json --verify
[root@dbmspreapp212 bin]# ./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file ../expand-cluster-reassignment.json --verify
Status of partition reassignment: 
Reassignment of partition t_test-5 completed successfully
Reassignment of partition t_test-2 completed successfully
Reassignment of partition t_test-0 completed successfully
Reassignment of partition t_test-4 completed successfully
Reassignment of partition t_test-6 completed successfully
Reassignment of partition t_test-1 completed successfully
Reassignment of partition t_test-3 completed successfully

结果:

[root@dbmspreapp212 bin]# ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic t_test
Topic:t_test	PartitionCount:7	ReplicationFactor:2	Configs:
	Topic: t_test	Partition: 0	Leader: 8	Replicas: 8,6	Isr: 6,8
	Topic: t_test	Partition: 1	Leader: 1	Replicas: 1,8	Isr: 1,8
	Topic: t_test	Partition: 2	Leader: 1	Replicas: 2,1	Isr: 1,2
	Topic: t_test	Partition: 3	Leader: 2	Replicas: 3,2	Isr: 2,3
	Topic: t_test	Partition: 4	Leader: 3	Replicas: 4,3	Isr: 3,4
	Topic: t_test	Partition: 5	Leader: 4	Replicas: 5,4	Isr: 4,5
	Topic: t_test	Partition: 6	Leader: 5	Replicas: 6,5	Isr: 5,6

4.12 Kafka集群节点下线

和扩容相反,--broker-list "1,2,3,4,5,8",比如下线节点6,然后生成文件等进行操作。
重新leader、重新均衡,下线节点完成后重新均衡下
./kafka-preferred-replica-election.sh --zookeeper localhost:2181

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值