1. 程式人生 > >Apache Kafka系列(二) 命令列工具(CLI)

Apache Kafka系列(二) 命令列工具(CLI)

Apache Kafka命令列工具(Command Line Interface,CLI),下文簡稱CLI。

1. 啟動Kafka

  啟動Kafka需要兩步:

  1.1. 啟動ZooKeeper 

[[email protected] kafka_2.12-0.11.0.0]# bin/zookeeper-server-start.sh config/zookeeper.properties

  1.2. 啟動Kafka Server

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-server-start.sh config/server.properties 

2. 列出Topic

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
HelloWorld

3. 建立Topic

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Demo1
Created topic "Demo1
".

  上述命令會建立一個名為Demo1的Topic,並指定了replication-factor和partitions分別為1。其中replication-factor控制一個Message會被寫到多少臺伺服器上,因此這個值必須小於或者

  等於Broker的數量。

4. 描述Topic

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic Demo1
Topic:Demo1     PartitionCount:1        ReplicationFactor:1
Configs: Topic: Demo1 Partition: 0 Leader: 0 Replicas: 0 Isr: 0

5. 釋出訊息到指定的Topic

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Demo1
>this
>is 
>the 
>firest
>input

  可以在控制檯逐行輸入任意訊息。命令的終止符是:control + C組合鍵。

6. 消費指定Topic上的訊息

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic Demo1
this
is 
the 
firest
input

7. 修改Topic

  7.1 增加指定Topic的partition,在第3步中建立的Demo1的partition是1。如下命令將增加10個partition

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --alter --zookeeper localhost:2181 --partitions 11 --topic Demo1
WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!

  7.2. 刪除指定Topic

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic Demo1
Topic Demo1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

    Note中指出該Topic並沒有真正的刪除,如果真刪除,需要把server.properties中的delete.topic.enable置為true

  7.3 給指定的Topic增加配置項,如給一個增加max message size值為128000

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic Demo1 --config max.message.bytes=128000
WARNING: Altering topic configuration from this script has been deprecated and may be removed in future releases.
         Going forward, please use kafka-configs.sh for this functionality
Updated config for topic "Demo1".

    warning中指出該命令已經過期,將來可能被刪除,替代的命令是使用kafka-config.sh。新命令如下:

[[email protected] kafka_2.12-0.11.0.0]# bin/kafka-configs.sh --alter --zookeeper localhost:2181 --entity-type topics --entity-name Demo1 --add-config max.message.bytes=12800
Completed Updating config for entity: topic 'Demo1'.

    需要使用entity-type置為topics,並在entity-name中指定對應的名稱

8. 結論

  本文展示了CLI所提供的一些常用的命令,這些基本的命令在運維Kafka過程中很實用。

相關推薦

Apache Kafka系列() 命令工具CLI

Apache Kafka命令列工具(Command Line Interface,CLI),下文簡稱CLI。 1. 啟動Kafka   啟動Kafka需要兩步:   1.1. 啟動ZooKeeper  [[email protected] kafka_2.12-0.11.0.0]# bin/zo

《自己動手寫java虛擬機器》學習筆記-----命令工具java

專案地址:https://github.com/gongxianshengjiadexiaohuihui 首先是Cmd的類 /** * @ClassName Cmd * @Description TODO * @Author Mr.G * @Date 2018/10/9 9:40

《自己動手寫java虛擬機器》學習筆記-----命令工具go

     專案地址:https://github.com/gongxianshengjiadexiaohuihui 在今年三月份的時候,看過這本書,但是可能知識儲備不足,許多東西都一知半解,導致看到一半就看不下去了,現在覺得自己進步挺大的,決定重新拾起這本書,並且把

python測試用例覆蓋率工具coverage教程(命令工具)

歡迎大家光臨我的部落格 簡介 coverage是一個檢測單元測試覆蓋率的工具,即檢查你的測試用例是否覆蓋到了所有的程式碼。 coverage命令列工具   當你通過pip install coverage成功安裝完coverage後,就會在pytho

AWS 命令介面CLI_管理AWS服務的統一工具

Amazon Web Services 誠聘精英。 Amazon Web Services (AWS) 是 Amazon.com 的一個充滿活力、不斷壯大的業務部門。我們現誠聘軟體開發工程師、產品經理、客戶經理、解決方案架構師、支援工程師、系統工程師以及設計師等人才。請訪問我

命令工具CMD執行java檔案

這篇文章將講解如何用命令列工具執行java檔案 一、命令列工具的使用 在開始選單中開啟執行工具,或使用快捷鍵win+R鍵開啟,輸入cmd即可。 輸入所要執行的java檔案的地址,即檔案所在資料夾的位置,如我的java測試檔案放在F:\Softw

跨平臺框架Cordova 命令簡介CLI

這一節,我們將看到如何通過Cordova命令列(CLI)建立新的專案,針對不同平臺進行編譯,並利用模擬器或真實裝置進行測試。CLI是跨平臺工作方式的主要工具。 當然,你也可以利用CLI進行一些專案的初始化工作,比如建立初始程式碼等等。稍後,你就可以針對不同平臺提供的SDK進

輕鬆學習Ionic 修改應用圖示及新增啟動畫面更新官方命令工具自動生成

 <platform name="android">              <icon src="res/android/ldpi.png" density="ldpi" />              <icon src="res/android/mdpi.png" de

ONOS程式設計系列()命令命令與服務開發

此文章承接ONOS程式設計系列(一) Application Tutorial ,如果尚未看過上一篇,請先看完上一篇,再回過頭來看此篇。 本文章的目的在於讓讀者明白: 如何將新建的application擴充套件為新的服務,以便其他服務或者應用可以呼叫它如何將該application的功能擴充套件為Kar

jdk命令工具

too left failed ccsm enter gcc mon 如果 空間大小 1、概述   熟悉java開發的人應該都知道在jdk的bin目錄下有許多的工具,這些工具主要用於監視虛擬機和故障處理。這些故障處理工具被Sun公司稱作為“禮物”附贈給JDK的使用者,並在軟

Silverlight & Blend動畫設計系列:旋轉動畫RotateTransform

target width duration pac 操作 縮放 () rop pri Silverlight的基礎動畫包括偏移、旋轉、縮放、傾斜和翻轉動畫,這些基礎動畫毫無疑問是在Silverlight中使用得最多的動畫效果,其使用也是非常簡單的。相信看過上一篇《偏移動畫(

mysql 命令操作管理操作

1.查詢所有存在的資料庫 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysq

mysql 命令操作高階sql語句

1.union,連線兩個以上的select語句的結果組合到一個結果集中,多個select語句中相同的資料會被刪除,多個union的select語句必須列數相同,比如第一個select選擇兩個列,那麼後續所有union的select語句都必須是兩列,不要求列的屬性一致,可以用u

mysql 命令處理事務

mysql中,事務是一些資料庫操作語句,有3個特點: 1.只有使用了InnoD引擎的資料庫或者表支援事務 2.事務可以用來維護資料庫完整性,保證成批的sql語句要麼全執行,要麼全不執行,不會出現部分執行失敗導致不一致的情況 3.事務用來管理insert,update,d

Windows CMD命令大全

命令簡介 cmd是command的縮寫.即命令列 。 雖然隨著計算機產業的發展,Windows 作業系統的應用越來越廣泛,DOS 面臨著被淘汰的命運,但是因為它執行安全、穩定,有的使用者還在使用,所以一般Windows 的各種版本都與其相容,使用者可以在Windo

java 命令匯入引用jar包

編譯:     E:/>javac -cp e:/jdom.jar test1.java 執行:    E:/>java -classpath e:/jdom.jar;  test1

CCF之命令選項java

試題編號: 201403-3 試題名稱: 命令列選項 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   請你寫一個命令列分析程式,用以分析給定的命令列裡包含哪些選項。每個命令列由若干個字串組成,它們之間恰好由一個空格分隔。這些

Linux常用命令彙總2

15、使用gnome-screenshot實現螢幕截圖 使用gnome-screenshot實現延時10秒螢幕截圖。輸入下面命令,然後開啟Applications/Accessories/Text Editor 方法:gnome-screenshot -d 10 16、使用

MySQL基礎之命令操作

                                          &

Qt 之命令編譯nmake

簡述 前兩節講解了如何在 Visual Studio 和 Qt Creator 中搭建 Qt 開發環境,並分享了我們第一個小程式 - Hello World。 下面分享如何使用命令列來編譯 Qt 程式。當然,MSVC 和 MinGW 的配置和編譯過程相差無幾