kafka基本命令(一)

35 阅读3分钟

安装环境

kafka的运行需要jdk、kafka的安装包,首先需要下载对应的安装包,此处就以jdk1.8为例

jdk环境安装

  1. 解压jdk的安装包

tar zxvf jdk-8u281-linux-x64.tar.gz

  1. 修改环境变量
sudo vim ~/.bashrc

在文件的末尾加上以下内容

export JAVA_HOME=/opt/jdk1.8.0_281  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

使环境变量马上生效

source ~/.bashrc

  1. 验证jdk是否安装成功

java -version

kafka环境安装

1.解压kafka的安装包

tar zxvf kafka-

  1. kafka需要使用到 Zookeeper,因此需要先启动Zookeeper的服务,进入kafka的安装目录下:

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

  1. 在启动了Zookeeper之后,可以运行以下命令启动kafka

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

停止kafka运行命令如下:

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

kafka常见命令

  1. 创建一个名字为test的主题,并且只使用单个分区

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

相关可选参数

参数描述例子
--bootstrap-server 指定kafka服务指定连接到的kafka服务; 如果有这个参数,则 --zookeeper可以不需要--bootstrap-server localhost:9092
--zookeeper弃用, 通过zk的连接方式连接到kafka集群;--zookeeper localhost:2181 或者localhost:2181/kafka
--replication-factor副本数量,注意不能大于broker数量;如果不提供,则会用集群中默认配置--replication-factor 3
--partitions分区数量,当创建或者修改topic的时候,用这个来指定分区数;如果创建的时候没有提供参数,则用集群中默认值; 注意如果是修改的时候,分区比之前小会有问题--partitions 3
--replica-assignment副本分区分配方式;创建topic的时候可以自己指定副本分配情况;--replica-assignment BrokerId-0:BrokerId-1:BrokerId-2,BrokerId-1:BrokerId-2:BrokerId-0,BrokerId-2:BrokerId-1:BrokerId-0 ; 这个意思是有三个分区和三个副本,对应分配的Broker; 逗号隔开标识分区;冒号隔开表示副本
--config <String: name=value>用来设置topic级别的配置以覆盖默认配置;只在--create 和--bootstrap-server 同时使用时候生效; 可以配置的参数列表请看文末附件例如覆盖两个配置 --config retention.bytes=123455 --config retention.ms=600001
--command-config <String: command 文件路径>用来配置客户端Admin Client启动配置,只在--bootstrap-server 同时使用时候生效;例如:设置请求的超时时间 --command-config config/producer.proterties ; 然后在文件中配置 request.timeout.ms=300000
  1. 查看主题命令

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

查询单个主题: bin/kafka-topics.sh --topic test --bootstrap-server localhost:9092 --describe --exclude-internal

批量查询Topic(正则表达式匹配,查询所有Topic) bin/kafka-topics.sh --topic ".*?" --bootstrap-server localhost:9092 --describe --exclude-internal

  1. 测试topic生产和消费消息

发送消息:

bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test

消费消息: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

  1. 动态调整kafka某个topic下的分区partitions数量

在Kafka消费组中,要求消费者组中的消费者实例个数不能超过分区的数量,否则会出现部分消费者闲置的情况发生。所以当我们增加消费者数量时,对应可能需要调整分区数量

bin/kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic Test-22 --partitions 3

上述命令将分区数量调整为3。注意:分区数量只能增加不能减少

5.查看topic详情命令

bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test2