1. 程式人生 > >kafka zk常用命令

kafka zk常用命令

lis creat mce 單位 serve produce 情況 目錄 使用

1 創建topic:

  kafka-topics.sh --create --zookeeper 3.3.3.3:2181 --replication-factor 1 --partitions 3 --topic test_one

  replication-factor 副本的個數 (因為創建的副本都是存儲在其他broker的,所以這裏配置的個數不能大於集群中的broker個數)

  partitions 分區個數

執行後的結構:

  drwxr-xr-x 2 root root 4096 8月 11 17:07 test_one-0/ 第一個分區
  drwxr-xr-x 2 root root 4096 8月 11 17:07 test_one-1/ 第二個分區
  drwxr-xr-x 2 root root 4096 8月 11 17:07 test_one-2/ 第三個分區

2 生產消息(手動在命令行執行):kafka-console-producer.sh --broker-list 3.3.3.3:9092 --topic test_one

由於有三個分區,所以我們未手動指定消息的分區規則的情況下,消息會均勻的分發到三個分區,我們可以通過server.properties中log.dirs所配置目錄下的  replication-offset-checkpoint文件查看各個分區的消息個數,如下:

  root@131:aaaa# cat replication-offset-checkpoint
  0
  3
  test_one 2 24
  test_one 0 24
  test_one 1 23

test_one為topicname,後面的0 1 2是分區號,後面的24 24 23就是當前這個分區的消息個數

3 查看topic的詳細信息: kafka-topics.sh -describe -zookeeper 3.3.3.3:2181 -topic test_one

  # kafka-topics.sh -describe -zookeeper .3.3.3.3:2181 -topic test_one

  Topic:test_one PartitionCount:3 ReplicationFactor:1 Configs:
  Topic: test_one Partition: 0 Leader: 0 Replicas: 0 Isr: 0
  Topic: test_one Partition: 1 Leader: 0 Replicas: 0 Isr: 0
  Topic: test_one Partition: 2 Leader: 0 Replicas: 0 Isr: 0

   這個結果顯示了分區的個數,哪個是主分區,那些是有效節點:

Partition:分區編號;

  Leader:當前分區編號的主分區

   Replicas:當前分區的所有節點(主節點+備節點)

   Isr:當前分區的所有節點中的有效節點

    判斷是否有效節點的條件:1,與主節點保持心跳的節點;2,未同步的消息數量小於我們設置的閾值;3,當前節節點卡住的時間小於我們配置的閾值

  註:

    這裏需要註意的是,kafka裏所說的副本/leader/主節點/從節點等都是以分區為單位的,而不是topic;

4 登陸zk客戶端查看topic等信息

  4.1 登陸客戶端:zkCli.sh -server 192.168.138.131:2181

  4.2 查看根節點信息:[zk: 192.168.138.131:2181(CONNECTED) 0] ls /

    [zk: 3.3.3.3:2181(CONNECTED) 0] ls /
    [controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, config]

    可以使用ls + 路徑查看需要的信息,如:ls /brokers/topics/test_one/partitions

    [zk: 3.3.3.3:2181(CONNECTED) 9] ls /brokers/topics/test_one/partitions
    [0, 1, 2]

kafka zk常用命令