常用命令:
.topic相关的操作
1. 创建topic
如能成功创建topic则表示集群安装完成,
也可以用jps命令查看kafka进程是否存在。
1
2
3
4
5
6
7
8 1bin/kafka-topics.sh \
2--create \
3--zookeeper 192.168.0.85:2181,192.168.0.86:2181,192.168.0.87:2181/kafka \
4--replication-factor 3 \
5--partitions 3 \
6--topic test
7
8
注意:创建的时候,生产上命名不要有标点符号的字符,就英文 可以带数字 默认小写,topic名称不规范,引起不必要的麻烦
解释:
–zookeeper指定zookeeper的地址和端口,
(这里为什么用/kafka,你在创建的时候用了,这里就要填写)
–partitions指定partition的数量,
–replication-factor指定数据副本的数量。
也就是说,如果有100条数据,会被切分成10份,每一份有三个副本,存放在不同的partition里。
2.通过list命令查看创建的topic:
1
2
3
4
5 1bin/kafka-topics.sh \
2--list \
3--zookeeper 192.168.0.85:2181,192.168.0.86:2181,192.168.0.87:2181/kafka
4
5
3.查看指定topic明细
1
2
3
4
5
6 1bin/kafka-topics.sh \
2--describe \
3--zookeeper 192.168.0.85:2181,192.168.0.86:2181,192.168.0.87:2181/kafka \
4--topic test
5
6
显示
1
2
3
4
5
6
7 1Topic:test PartitionCount:3 ReplicationFactor:3 Configs:
2 Topic: test Partition: 0 Leader(读写): brokerid 3 Replicas: 3,1,2 Isr: 3,1,2
3 Topic: test Partition: 1 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
4 Topic: test Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
5[root@yws85 kafka]#
6
7
1
2
3
4 1ll logs
2可以看到磁盘信息
3
4
解释:
第一行列出了这个topic的总体情况,如topic名称,分区数量,副本数量等。
第二行开始,每一行列出了一个分区的信息,如它是第几个分区,这个分区的leader是哪个broker,副本位于哪些broker,有哪些副本处理同步状态。
Partition: 分区
Leader : 负责读写指定分区的节点
Replicas : 复制该分区log的节点列表
Isr : “in-sync” replicas,当前活跃的副本列表(是一个子集),相当于一个排位,当 leader挂掉了并且可能成为Leader
重点:
1.ReplicationFactor:3 (生产上一般是3个副本就足够了,没有不要5个)
2. PartitionCount:3 (这个分区数量是根据 Spark partitions来的,比例1:1)
网址:http://spark.apache.org/docs/latest/streaming-kafka-0-10-integration.html
4.修改topic
使用—-alert原则上可以修改任何配置,以下列出了一些常用的修改选项:
(1)改变分区数量
最好在生产的时候规划好,整理好采购计划,多出百分之20/30左右
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 1 修改分区数量
2 bin/kafka-topics.sh \
3 --alter \
4 --zookeeper 192.168.0.85:2181,192.168.0.86:2181,192.168.0.87:2181/kafka \
5 --topic g5 --partitions 3
6 查看:
7[root@yws85 kafka]# bin/kafka-topics.sh --describe \
8> --zookeeper 192.168.0.85:2181,192.168.0.86:2181,192.168.0.87:2181/kafka \
9> --topic g5
10Topic:g5 PartitionCount:3 ReplicationFactor:1 Configs:
11 Topic: g5 Partition: 0 Leader: 3 Replicas: 3 Isr: 3
12 Topic: g5 Partition: 1 Leader: 1 Replicas: 1 Isr: 1
13 Topic: g5 Partition: 2 Leader: 2 Replicas: 2 Isr: 2
14[root@yws85 kafka]#
15
16
但是减少partition是不允许的。如果执行配置的partition变少,会抛出一个错误,显示partition数量只能增加
5…删除topic
1
2
3
4
5 1bin/kafka-topics.sh --delete \
2--zookeeper 192.168.0.85:2181,192.168.0.86:2181,192.168.0.87:2181/kafka \
3--topic test
4
5
已经被标识了,但是没有删除掉,
删除之前,需要先将server.properties文件中的配置delete.topic.enable=true更改一下,否则执行删除命令不会生效。
假如删除不干净:1.linux磁盘文件夹
2.zk的/kafka的 ls /kafka/brokers/topics 。。。ls /kafka/config/topics这里还有很多小文件
下面的文件。不是直接删掉kafka,最底层的元数据
当然了。在生产中尽量不要做删除工作