kafka常用運維命令

2021-10-01 02:20:27 字數 3535 閱讀 1774

啟動

kafka啟動之前需要先啟動zookeeper,如果沒有安裝zookeeper 可使用kafka自帶zookeeper啟動

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

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

正常啟動所有資訊會列印在控制台,關閉控制台會結束kafka程式,可用後台啟動命令

bin/kafka-server-start.sh -daemon config/server.properties 或者

bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 & (&1是乙個整體,代表引用標準輸出檔案描述符,後面乙個&代表後台執行)

關閉
bin/zookeeper-server-stop.sh 

bin/kafka-server-stop.sh

或者 ps -ef | grep kafka 查出kafka程序的pid 然後 kill -9 kafka程序id

建立和列出topic
建立topic

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

--bootstrap-server 指定kafka服務ip和埠

--replication-factor 指定備份副本數

--partitions 指定topic分割槽數

--topic 指定topic名

列出topic

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

傳送訊息和接受訊息
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytest

this is a message

this is another message

>bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest --from-beginning

kafka設定多broker模式
在單台機器上啟動多個kafka程序模擬多機環境 

1 複製server.properties檔案

> cp config/server.properties config/server-1.properties

> cp config/server.properties config/server-2.properties

2 分別修改server.properties檔案 內容如下

config/server-1.properties:

broker.id=1

listeners=plaintext://:9093

log.dirs=/tmp/kafka-logs-1

config/server-2.properties:

broker.id=2

listeners=plaintext://:9094

log.dirs=/tmp/kafka-logs-2

3 啟動其他2個kafka程序(加上之前啟動kafka程序,現在本機上有3個執行的kafka程序)

> bin/kafka-server-start.sh config/server-1.properties &

...> bin/kafka-server-start.sh config/server-2.properties &

...4 建立乙個3備份的topic

> bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic

5 檢視topic的節點情況,可以使用describe命令

>bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic

topic:my-replicated-topic partitioncount:1 replicationfactor:3 configs:segment.bytes=1073741824

topic: my-replicated-topic partition: 0 leader: 2 replicas: 2,1,0 isr: 2,1,0

leader 代表讀寫節點的編號

replicas 代表備份節點的編號

isr 代表需要同步節點的編號

向新主題發布一些訊息

>bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

my test message 1

my test message 2

消費這些訊息

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

my test message 1

my test message 2

測試一下容錯新,根據前面的descibe命令 2號節點為leader節點,現在我們殺掉2號節點的程序

ps -ef | grep server-2.properties

kill -9 程序號

此時再次使用describe命令檢視節點情況

>bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic

topic:my-replicated-topic partitioncount:1 replicationfactor:3 configs:segment.bytes=1073741824

topic: my-replicated-topic partition: 0 leader: 1 replicas: 2,1,0 isr: 1,0

此時leader節點變為1 且2號節點不再同步集中

雖然之前的接受寫入的leader節點已經失效,但是現在仍然可以消費之前的資料

>bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

my test message

my another test message

kafka運維常用命令

kafka運維常用命令 列出所有的topic bin kafka topics.sh zookeeper 127.0.0.1 2181 list 檢視 topic資訊 bin kafka topics.sh zookeeper 127.0.0.1 2181 describe topic topicn...

常用Linux運維命令

1 檢視tcp連線狀態 netstat nat awk sort uniq c sort rn netstat n awk tcp end netstat n awk tcp end netstat n awk tcp end netstat n awk tcp sort uniq c sort r...

運維常用基礎命令

描述 命令清屏 clear ctrl l 方便看每條命令 多敲enter 建立目錄 mkdir 建立檔案 chmod 755 777 644 file chmod a all u user g group o others r w x file 檢視檔案許可權等 ll ls lh d directo...