首页 > 其他分享 >kafka常用命令

kafka常用命令

时间:2023-06-19 11:11:06浏览次数:36  
标签:-- zookeeper kafka topic sh 常用命令 server

转 https://www.cnblogs.com/xgss/articles/16580433.html

 

1 启动zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties 

 

2 启动kafka

bin/kafka-server-start.sh config/server.properties

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

  当然这个是单机的命令,集群的命令后面再讲

 

查看是否启动

jps -lm

  没有kafka,说明没有启动kfka

  说明启动kafka了

 

停止kafka

bin/kafka-server-stop.sh

 

5 停止zookeeper

bin/zookeeper-server-stop.sh

 

6 创建topic

1)单个

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

 

2)集群创建

  执行这个需要搭建多机器的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

 

解释:

--topic后面的test0是topic的名称

--zookeeper应该和server.properties文件中的zookeeper.connect一样

--config指定当前topic上有效的参数值

--partitions指定topic的partition数量,如果不指定该数量,默认是server.properties文件中的num.partitions配置值

--replication-factor指定每个partition的副本个数,默认是1个

 

3)也可以向没有的topic发送消息的时候创建topic

  需要开启自动创建配置

auto.create.topics.enable=true

  使用程序直接往kafka中相应的topic发送数据,如果topic不存在就会按默认配置进行创建。

 

7 展示topic

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

 

 描述topic

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

要查看多个topic用逗号分割

 

1)leader

  是该partitons所在的所有broker中担任leader的broker id,每个broker都有可能成为leader,负责处理消息的读和写,leader是从所有节点中随机选择的.

  -1表示此broker移除了

 

2)Replicas:

  显示该partiton所有副本所在的broker列表,包括leader,不管该broker是否是存活,不管是否和leader保持了同步。列出了所有的副本节点,不管节点是否在服务中.

 

3)Isr

  in-sync replicas的简写,表示存活且副本都已同步的的broker集合,是replicas的子集,是正在服务中的节点.

 

比如上面结果的第一行:Topic: test0  Partition:0    Leader: 0       Replicas: 0,2,1 Isr: 1,0,2

Partition: 0[该partition编号是0]

Replicas: 0,2,1[代表partition0 在broker0,broker1,broker2上保存了副本]

Isr: 1,0,2 [代表broker0,broker1,broker2都存活而且目前都和leader保持同步]

Leader: 0

代表保存在broker0,broker1,broker2上的这三个副本中,leader是broker0

leader负责读写,broker1、broker2负责从broker0同步信息,平时没他俩什么事

 

8 查看topic的partition及增加partition

/kafka-topics.sh –zookeeper 10.2.1.1:2181 –topic mcc-logs –describe 

 

9 删除Topic

1)删除

/bin/kafka-topics.sh --zookeeper localhost: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就可以了。

 

2)完全删除

  如果不想修改配置也可以完全删除

(1)删除kafka存储目录(server.propertiewenjian log.dirs配置,默认为“/tmp/kafka-logs”)下对应的topic。(不同broker下存储的topic不一定相同,所有broker都要看一下)

 

(2)进入zookeeper客户端删掉对应topic

        zkCli.sh  -server 127.0.0.1:42182

 

(3)找到topic目录:

        ls   /brokers/topics

 

(4)删掉对应topic

    rmr  /brokers/topic/topic-name

 

(5)找到目录:

        ls    /config/topics

 

(6)删掉对应topic

        rmr  /config/topics/topic-name  

  这样就完全删除了

 

10 删除topic中存储的内容

  在config/server.properties中找到如下的位置

  

  删除log.dirs指定的文件目录,

  登录zookeeper client。

  命令:

/home/ZooKeeper/bin/zkCli.sh

  删除zookeeper中该topic相关的目录

  命令:

rm -r /kafka/config/topics/test0

rm -r /kafka/brokers/topics/test0

rm -r /kafka/admin/delete_topics/test0 (topic被标记为marked for deletion时需要这个命令)

  重启zookeeper和broker

 

11 生产者发送消息

bin/kafka-console-producer.sh --broker-list 130.51.23.95:9092 --topic my-replicated-topic

  这里的ip和端口是broker的ip及端口,根据自己kafka机器的ip和端口写就可以

 

12 消费者消费消息

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --new-consumer --from-beginning --consumer.config config/consumer.properties

 

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

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic hive-mdatabase-hostsltable  --time -1 --broker-list node86:9092 --partitions 0

  注: time为-1时表示最大值,time为-2时表示最小值

  不指定--partitions 就是指这个topic整体的情况

 

14 查看指定group的消费情况

kafka-consumer-groups.sh --bootstrap-server 172.20.72.93:9092 --describe --group mygroup

  运行结果:

GROUP:消费者组
TOPIC:topic名字
PARTITION :partition id
CURRENT-OFFSET:  当前消费到的offset                
LOG-END-OFFSETSIZE :最新的offset
 LAG:未消费的条数
CONSUMER-ID:消费者组中消费者的id,为—代表没有active的消费者
HOST:消费者的机器ip,为—代表没有active的消费者
CLIENT-ID:消费者clientID,为—代表没有active的消费者

 

15 查看所有group的消费情况

kafka-consumer-groups.sh --bootstrap-server 172.20.72.93:9092 --all-groups --all-topics --describe

 

16 修改group消费的offset

kafka-consumer-groups.sh --bootstrap-server 172.20.72.93:9092 --group mygroup --reset-offsets --topic mytopic --to-offset 61 --execute

  上面就是把mygroup在mytopic的消费offset修改到了61

  重设位移有几种选项:
--to-earliest:   设置到最早位移处,也就是0
--to-latest:     设置到最新处,也就是主题分区HW的位置
--to-offset NUM: 指定具体的位移位置
--shift-by NUM:  基于当前位移向前回退多少
--by-duration:   回退到多长时间

 

17 查看指定group中活跃的消费者

kafka-consumer-groups.sh --bootstrap-server 172.20.72.93:9092 --describe --group mygroup --members

 

18 增加topic分区数

  (只能增加不能减少)

  为topic t_cdr 增加10个分区

bin/kafka-topics.sh --zookeeper node01:2181  --alter --topic t_cdr --partitions 10

 

标签:--,zookeeper,kafka,topic,sh,常用命令,server
From: https://www.cnblogs.com/jthr/p/17490623.html

相关文章

  • Git常用命令
    1.gitremote关联远端仓库[email protected]:git_username/repository_name.gitgitremoteremoveorigingitremote-v2.gitbranch本地分支关联远程分支(目的是在执行gitpull/push操作时就不需要指定对应的远程分支)gitbranch--set-upstream-to=......
  • SpringBoot整合Kafka
    第一步: 第二步: 第三步:  ......
  • kafka的启动--windows版
    首先下载并安装kafka然后进入到安装目录输入cmd然后先启动zookeerper输入下面的命令zookeeper-server-start.bat../../config/zookeeper.properties再启动kafka,输入下面命令kafka-server-start.bat../../config/server.properties已完成启动!! ......
  • kafka工作原理
    1.工作流程以及文件存储机制 kafka中的消息是以topic进行分类的,生产消费消息都是面向topic。 topic是逻辑上的概念,partition分区是物理上的概念,每个分区对应一个log文件,该log文件存储的就是producer生产的log数据。producer生产的数据会追加到文件末端。消费者组中的每个消费......
  • Windows中安装和使用Kafka
    ......
  • ?Docker常用命令-精简版
    以下内容按照上文图示进行展开,此文适合懂得Docker简单使用的一些同学,所以对对应的用法不做过多的介绍。基础命令#显示docker的基本信息dockerversion#系统信息,镜像和容器的数量dockerinfo镜像镜像拉取:dockerpull#搜索镜像dockersearch镜像名称#拉取镜像,不加版本默......
  • ?Docker常用命令-精简版
    以下内容按照上文图示进行展开,此文适合懂得Docker简单使用的一些同学,所以对对应的用法不做过多的介绍。基础命令#显示docker的基本信息dockerversion#系统信息,镜像和容器的数量dockerinfo镜像镜像拉取:dockerpull#搜索镜像dockersearch镜像名称#拉取镜像,不加版本默......
  • Maven常用命令及其作用
    一、Maven常用命令及其作用Maven的生命周期包括:clean、validate、compile、test、package、verify、install、site、deploy,其中需要注意的是:执行后面的命令时,前面的命令自动得到执行,(其中,也可以跳过其中的步骤,如:test,在mvninstall或mvnpackage后加上-Dmaven.test.skip=true或-Ds......
  • Dos常用命令
    win+R输入cmd打开#盘符切换:#查看当前目录下的所有文件dir#切换目录cdchangedirectory#返回上一级cd..#清理屏幕cls(clearscreen)#退出终端exit#查看电脑IPipconfig#打开应用calc计算器mspaint画画notepad记事本#ping命令pingwww.baidu.com......
  • Linux下常用命令
    scp用于上传,下载,两台服务器文件复制上传文件到服务器:scpusername@servername:/path/filename/tmp/local_destination从服务器上下载文件到本地:scp/path/local_filenameusername@servername:/path从服务器上下载整个目录到本地:scp-rusername@servername:remote_dir/......