进入kafka目录(非bin目录)
cd /usr/local/kafka/kafka_2.11-2.1.0
Kafka启动命令(备注:先进入kafka目录)
常规模式启动kafka
bin/kafka-server-start.sh config/server.properties
进程守护模式启动kafka
nohup bin/kafka-server-start.sh config/server.properties
Kafka关闭命令(备注:先进入kafka目录)
bin/kafka-server-stop.sh
查看kafka是否成功启动
jps(显示的有进程号代表成功)
创建Topic(1个分区,1个副本)
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic mytest
--create:创建主题的动作指令
--zookeeper:指定kafka所连接的zookeeper服务地址
--topic:指定了所要创建主题的名称
--partitions:指定了分区个数
--replication-factor:指定了副本因子 一个broker创建topic的时候只能是一个副本
查看topic详情
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic mytest
--describe:查看详情动作指令
修改Topic分区数
./bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic mytest --partitions 6
topic列表查询(备注:先进入kafka目录)
./bin/kafka-topics.sh --list --zookeeper localhost:2181
删除topic
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic mytest5
方式二
// 进入zk客户端
./zkCli.sh -server localhost:2181
// 查看所有topic
ls /brokers/topics
// 删除topic
rmr /brokers/topics/test1
查看集群中各个broker的分区副本的分配情况
// 进入zk客户端
./zkCli.sh -server localhost:2181
// 查看分配情况
get /brokers/topics/mytopic
创建生产者
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytest
ps. 1)若producer 和 consumer 两个窗口同时打开,在producer输入信息,consumer会立即消费信息并打印在终端
创建消费者
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest
启动生产者和消费者时开始报错:could not be established. Broker may not be available
在配置plaintext的时候,若配置的是152.189.36.2:如:listeners=PLAINTEXT://152.189.36.2:9092
那么启动消费者的时候应该将localhost换为152.189.36.2
/bin/kafka-console-consumer.sh --bootstrap-server 152.189.36.2:9092 --topic mytest
console-consumer 从头重新消费topic中的消息
./bin/kafka-console-consumer.sh --bootstrap-server 152.189.36.2:9092 --topic mytest --from-beginning
查看消费者的消费偏移量offset-查看特定consumer group 详情
./bin/kafka-consumer-groups.sh --bootstrap-server 152.189.36.2:9092 --group mygroup --describe
CURRENT-OFFSET: 当前消费者群组最近提交的offset,也就是消费者分区里读取的当前位置
LOG-END-OFFSET: 当前最高水位偏移量,也就是最近一个读取消息的偏移量,同时也是最近一个提交到集群的偏移量
LAG:消费者的CURRENT-OFFSET与broker的LOG-END-OFFSET之间的差距
命令参数说明:
topic作用域:当前有3种作用域指定方式:--all-topics(为consumer group下所有topic的所有分区调整位移),--topic t1 --topic t2(为指定的若干个topic的所有分区调整位移),--topic t1:0,1,2(为指定的topic分区调整位移)
唯一重设策略:
--to-earliest:把位移调整到分区当前最小位移
--to-latest:把位移调整到分区当前最新位移
--to-current:把位移调整到分区当前位移
--to-offset <offset>: 把位移调整到指定位移处
--shift-by N: 把位移调整到当前位移 + N处,注意N可以是负数,表示向前移动
--to-datetime <datetime>:把位移调整到大于给定时间的最早位移处,datetime格式是yyyy-MM-ddTHH:mm:ss.xxx,比如2017-08-04T00:00:00.000
--by-duration <duration>:把位移调整到距离当前时间指定间隔的位移处,duration格式是PnDTnHnMnS,比如PT0H5M0S
--from-file <file>:从CSV文件中读取调整策略
执行方案:
什么参数都不加:只是打印出位移调整方案,不具体执行
--execute:执行真正的位移调整
--export:把位移调整方案按照CSV格式打印,方便用户成csv文件,供后续直接使用
查看消费者组列表
./bin/kafka-consumer-groups.sh --bootstrap-server 152.189.36.2:9092 --list
将消费者偏移量设置为最初偏移量
./bin/kafka-consumer-groups.sh --bootstrap-server 172.31.218.92:9092 --group mygroup --topic test5 --reset-offsets --to-earliest --execute
执行结果:
可看到新的offset为0了,再次查看消费者偏移量:
如上可以看到,test5的current-offset都变为了0,log-end-offset和lag变为了一样
将消费者偏移量设置为任意偏移量
./bin/kafka-consumer-groups.sh --bootstrap-server 172.31.218.92:9092 --group mygroup --topic test5 --reset-offsets --to-offset 3 –execute
将消费者偏移量设置为最近偏移量
使用jmap查看kafka当前的堆内存信息
jmap -heap 17784 (17784为kafka进程号 通过jps可查看)