kafka相关命令整理(一)

1)启动kafka-zookeeper命令

#!/bin/sh

nohup bin/zookeeper-server-start.sh config/zookeeper.properties >/dev/null 2>&1  &

2)启动kafka-broker命令

#!/bin/sh

nohup bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &

3)创建topic

#bin/kafka-topics.sh --create --topic news_doc --replication-factor 2 --partitions 20 --zookeeper 114.113.145.7:2181

#bin/kafka-topics.sh --create --topic entry_doc --replication-factor 2 --partitions 20 --zookeeper 114.113.145.7:2181

#bin/kafka-topics.sh --create --topic crawler_mail --replication-factor 2 --partitions 5 --zookeeper 114.113.145.7:2181

4)查看所有的topic名称列表

bin/kafka-topics.sh --list --zookeeper 114.113.145.7:2181

5)删除topic

bin/kafka-topics.sh --delete --zookeeper 114.113.145.7:2181 --topic news_doc  

bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 114.113.145.7:2181 --topic news_doc

6)查看topic内的数据

bin/kafka-console-consumer.sh --zookeeper 10.136.64.57 --topic entry_doc

7)查看创建的topic信息

bin/kafka-topics.sh --describe --zookeeper 10.136.64.57:2181 --topic news_doc

8Kafka集群扩展以及重新分布分区

往已经部署好的Kafka集群里面添加机器是最正常不过的需求,但是新添加的Kafka节点并不会自动地分配数据,所以无法分担集群的负载,除非我们新建一个topic。但是现在我们想手动将部分分区移到新添加的Kafka节点上,Kafka内部提供了自带的kafka-reassign-partitions.sh工具来重新分布某个topic的分区。

在重新分布topic分区之前,我们先来看看现在topic的各个分区的分布位置:

./bin/kafka-topics.sh --topic iteblog --describe --zookeeper 10.136.64.57:2181

Topic:iteblog PartitionCount:7  ReplicationFactor:2 Configs:

  Topic: iteblog  Partition: 0  Leader: 1 Replicas: 1,2 Isr: 1,2

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

  Topic: iteblog  Partition: 2  Leader: 3 Replicas: 3,4 Isr: 3,4

  Topic: iteblog  Partition: 3  Leader: 4 Replicas: 4,1 Isr: 4,1

  Topic: iteblog  Partition: 4  Leader: 1 Replicas: 1,3 Isr: 1,3

  Topic: iteblog  Partition: 5  Leader: 2 Replicas: 2,4 Isr: 2,4

  Topic: iteblog  Partition: 6  Leader: 3 Replicas: 3,1 Isr: 3,1

从上面的输出可以看出,iteblog主题一共有7个分区,但是我们broker的个数只有4个,所以会导致某些broker维护更多的分区。现在我们在现有集群的基础上再添加一个Kafka节点,然后使用Kafka自带的kafka-reassign-partitions.sh工具来重新分布分区。该工具有三种使用模式:

  1generate模式,给定需要重新分配的Topic,自动生成reassign plan(并不执行)

  2execute模式,根据指定的reassign plan重新分配Partition

  3verify模式,验证重新分配Partition是否成功

9)修改kafkatopic分区个数

bin/kafka-topics.sh --zookeeper 10.136.64.57:2181 --alter --topic entry_doc  --partitions 40

posted @ 2017-11-28 13:30  Histring  阅读(134)  评论(0编辑  收藏  举报