啟動
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...