Kafka常用命令

版权声明:欢迎转载,转载请说明出处https://csdn.yanxml.com。大数据Github项目地址https://github.com/SeanYanxml/bigdata。 https://blog.csdn.net/u010416101/article/details/53905593

Kafka常用命令

感觉最近有一阵子没有玩Kafka了,都有点生疏了,我们今天就来讲解如何使用命令操作Kafka:

  • 启动命令
  • 创建Topic
  • 查看Topic列表
  • 删除Topic
  • Producer和Consumer 写入和消费数据
  • 其他命令

根据前一篇如何在阿里云上构建Kafka系统,想必大家都已经知道了如何配置Kafka了,但是有了Kafka后应当如何进行下一步的操作呢?这便是本节的主要内容了。

1. 启动命令

启动kafka很简单,配置好前置的操作后,先进入zookeeper的目录下,启动zookeeper

先到…/Software/Zookeeper/zookeeper-3.4.6目录下

cd zookeeper-3.4.6
//先看下当前目录
pwd
结果:/Users/XXX/Software/Zookeeper/zookeeper-3.4.6
//启动Zookeeper
./bin/zkServer.sh  start
//关闭Zookeeper 当然我们这边就不用关闭了,大家知道就好
./bin/zkServer.sh  stop

启动后结果如下所示,就代表命令执行成功了:

sh-3.2# ./bin/zkServer.sh start
JMX enabled by default
Using config: /Users/Sean/Software/Zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

PS:因为kafka是需要注册在zookeeper上面,通过zookeeper进行管理和调度的,所以启动kafka之前,我们必须要启动zookeeper。

随后我们进入Kafka目录下,启动kafka,具体操作命令如下所示:

cd kafka_2.11-0.10.1.0
//查看当前目录
pwd
/Users/xxx/Software/Kafka/kafka_2.11-0.10.1.0
//启动kafka
./bin/kafka-server-start.sh ./config/server.properties

看到没有报错之后kafka就是已经成功被运行了,当然可以jps -lm查看一下,操作命令如下:

jps -lm
// 结果如下
7111 org.apache.zookeeper.server.quorum.QuorumPeerMain /Users/Sean/Software/Zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
7357 sun.tools.jps.Jps -lm
7119 kafka.Kafka ./config/server.properties
sh-3.2#

可以看到zookeeper和kafka都已经运行起来了,当然这个是单机的命令,集群的命令后面再讲。
这样启动又一个坏处,就是kafka启动完毕之后,不能关闭终端,为此,我们可以运行这条命令:

nohup ./bin/kafka-server-start.sh config/server.properties >  /dev/null 2>&1 &
运行结果:
[1] 7404

多个kafka的话,在各个虚拟机上运行kafka启动命令多次即可。


2. 创建Topic

创建Topic命令如下所示:
创建一个test的Topic

./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

多集群创建,执行这个需要搭建多机器的kafka集群环境,zkq1/zkq2/zkq3分别代表了3台zookeeper集群的三台机器

./bin/kafka-topics.sh --create --zookeeper zkq1:2181,zkq2:2181,zkq3:2181 --replication-factor 6 --partition 6 --topic test

3. 查看Topic

创建完成后我们需要查看Topic到底是否创建成功了,可以执行如下命令:

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

同理,zookeeper集群的话,写集群的三台机器的地址即可。
操作的步骤如下所示,大家一看便知:

//创建Topic  test test2 test3
sh-3.2# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
//结果
Created topic "test".
sh-3.2# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test2
//结果
Created topic "test2".
sh-3.2# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test3
//结果
Created topic "test3".
//查询
sh-3.2# ./bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181
//结果
test
test2
test3

4. 删除Topic

删除Topic其实页很简单,执行命令如下:

./bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --delete --topic test

当然,如果你的server.properties内没有配置相关的配置的话,会出现如下错误:

Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

这边是说,你的Topic已经被标记为待删除的Topic,但是呢,你配置文件的开关没有打开,所以只是给它添加了一个标记,实际上,这个Topic并没有被删除。只有,你打开开关之后,会自动删除被标记删除的Topic。

解决办法:
设置server.properties文件内的“delete.topic.enable=true”,并且重启Kafka就可以了。

参考:
kafka删除的操作


5. 发送和消费数据

发送数据

./bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test
//输入内容
sdfsdfsdf
sdfsdfsdfsdf
woshi yanxu
dfsdfsdfsdf
sdgdfgdfgdfg
dfgdfgdfg

消费数据

./bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning
//内容
c
ls
sdfsdfsdf
sdfsdfsdfsdf
woshi yanxu
dfsdfsdfsdf
sdgdfgdfgdfg
dfgdfgdfg


6. 其他操作

其他操作参考其他博客内容

  1. 迁移kafka数据
  2. kafka常用命令总结
  3. Kafka命令行常用命令说明
阅读更多

扫码向博主提问

在风中的意志

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Java
  • 大数据
去开通我的Chat快问

没有更多推荐了,返回首页