kafka常用命令

zookeeper

  1. 安装

     # 安装zookeeper
     brew info zookeeper
     brew install zookeeper
     # 安装路径
     ls /usr/local/Celler/zookeeper
     # 配置信息路径
     ls /usr/local/etc/zookeeper
    
  2. 启动

    # 启动服务端
    ./zkServer start
    # 启动客户端
    ./zkCli start
    
  3. zkCli命令

    # 查看当前节点信息
    ls /
    # 查看当前节点数据及更新次数等信息
    ls2 /
    # 创建节点并设置关联值
    create /node_test "test"
    # 创建一个新的空节点
    create /node_test ""
    # 获取节点内容
    get /node_test
    # 修改节点内容
    set /node_test "new text balabala..."
    # 删除节点
    delete /node_test
    # 删除节点及子节点
    rmr /node_test
    # 连接到其他zookeeper服务器
    connect host:port
    # 关闭连接
    close
    # 操作指令历史
    history
    # 重复执行某个指令,使用格式 redo id,id为histroy命令查询出来的编号
    redo
    
  4. 四字命令

    # 使用示例 查询服务配置信息
    echo conf | nc 127.0.0.1 2181
    
    • conf 查看相关服务配置信息
    • cons 查询连接到服务端的客户端信息
    • dump 查询未经处理的会话和临时节点
    • envi 查询服务环境的信息
    • reqs 查询未经处理的请求
    • ruok 测试服务器是否正常运行
    • stat 查询关于性能和链接的客户端列表
    • wchs 查询服务器watch信息
    • wchc 通过session查询服务器watch信息
    • wchp 通过路径查询服务器watch信息
    • quit 退出

kafka

  1. 安装

    brew info kafka
    brew install kafka
    # 安装路径
     ls /usr/local/Celler/kafka
     # 配置信息路径
     ls /usr/local/etc/kafka
    
  2. 启动

    # 后台启动
    ./kafka-server-start -daemon /usr/local/etc/kafka/server.properties
    ./kafka-server-start /usr/local/etc/kafka/server.properties.
    
  3. kafka-topic使用

    # 查询topics
    kafka-topics --list --zookeeper localhost:2181
    # 创建
    kafka-topics --create --zookeeeper localhost:2181 --replication-factor 1 --partitions 3 --topic test
    # 查询topic详情
    kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
    
  4. kafka-console-producer/kafka-console-consumer

    # 生产者 (阻塞)
    kafka-console-producer --broker-list localhost:9092  --topic test
    # 消费者 (阻塞)
    kafka-console-consumer --bootstrap-server  localhost:9092 --from-beginning  --topic test
    
  5. kafka-consumer-groups

    # 查看consumer group消费情况
    kafka-consumer-groups --new-consumer --bootstrap-server 127.0.0.1:9092 --group testGroup --describe
    #  查看consumer group消费情况
    kafka-consumer-groups -bootstrap-server localhost:9092 --group testGroup --describe
    # 初始化consumer group 的offset,需先停掉消费者 --to-earliest
    kafka-consumer-groups --bootstrap-server localhost:9092 --group testGroup --topic test --reset-offsets --to-earliest --execute
    # 将consumer group 的offset置为最新(不消费旧的数据),需先停掉消费者 --to-latest
    kafka-consumer-groups --bootstrap-server localhost:9092 --group testGroup --topic test --reset-offsets --to-latest --execute
    # 设置任意偏移量 --to-offset
    $ kafka-consumer-groups --bootstrap-server localhost:9092 --group testGroup --topic test --reset-offsets --to-offset 1 --execute
    
  6. 删除topic步骤

    1. 如果被删除的topic正在被程序使用(生产/消费),先停止这些占用的程序。因为如果有程序正在生产或者消费该topic,则该topic的offset信息一致会在broker更新。调用kafka delete命令则无法删除该topic。同时,需要设置 auto.create.topics.enable = false,默认设置为true。如果设置为true,则produce或者fetch 不存在的topic也会自动创建这个topic。这样会给删除topic带来很多意向不到的问题。所以,这一步很重要,必须设置auto.create.topics.enable = false,并认真把生产和消费程序彻底全部停止。

    2. server.properties 设置 delete.topic.enable=true

      如果没有设置 delete.topic.enable=true,则调用kafka 的delete命令无法真正将topic删除,而是显示(marked for deletion)

    3. 调用命令删除topic:

      kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】

    4. 删除kafka存储目录(server.properties文件log.dirs配置,默认为"/data/kafka-logs")相关topic的数据目录。

      注意:如果kafka 有多个 broker,且每个broker 配置了多个数据盘(比如 /data/kafka-logs,/data1/kafka-logs …),且topic也有多个分区和replica,则需要对所有broker的所有数据盘进行扫描,删除该topic的所有分区数据。

    5. 找一台部署了zk的服务器,使用命令:

      bin/zkCli.sh -server 【zookeeper server:port】

      登录到zk shell,然后找到topic所在的目录:ls /brokers/topics,找到要删除的topic,然后执行命令:

      rmr /brokers/topics/【topic name】

      即可,此时topic被彻底删除。

      如果topic 是被标记为 marked for deletion,则通过命令 ls /admin/delete_topics,找到要删除的topic,然后执行命令:

      rmr /admin/delete_topics/【topic name】

      备注:

      网络上很多其它文章还说明,需要删除topic在zk上面的消费节点记录、配置节点记录,比如:

      rmr /consumers/【consumer-group】

      rmr /config/topics/【topic name】

      其实正常情况是不需要进行这两个操作的,如果需要,那都是由于操作不当导致的。比如step1停止生产和消费程序没有做,step2没有正确配置。也就是说,正常情况下严格按照step1 – step5 的步骤,是一定能够正常删除topic的。

    6. 完成之后,调用命令:

      ./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】

      查看现在kafka的topic信息。正常情况下删除的topic就不会再显示。

      但是,如果还能够查询到删除的topic,则重启zk和kafka即可。 |

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值