Apache Kafka 基本操作

啓動ZooKeeper

打開一個新終端並鍵入以下命令

#cd /usr/local/zookeeper-3.4.13/
#bin/zkServer.sh start

關閉ZooKeeper,請鍵入以下命令

#cd /usr/local/zookeeper-3.4.13/
#bin/zkServer.sh stop

啓動Kafka Broker,請鍵入以下命令

#cd /usr/local/kafka_2.11-2.1.1/

#nohup bin/kafka-server-start.sh ./config/server.properties > /dev/null 2>&1 &

關閉Kafka Broker,請鍵入以下命令

#cd /usr/local/kafka_2.11-2.1.1/

#bin/kafka-server-stop.sh

若是執行以上命令成功,需要更改kafka-server-stop.sh配置文件

#vim bin/kafka-server-stop.sh

PIDS=$(ps ax | grep -i 'kafka' | grep java | grep -v grep | awk '{print $1}')

將配置文件更改爲以上格式,再次執行kafka-server-stop.sh就可以成功了

創建主題

創建topic名稱爲hello-kafka,3個副本,6個分區

--create: 指定創建topic動作

--topic:指定新建topic的名稱

--zookeeper: 指定kafka連接zk的連接url,該值和server.properties文件中的配置項{zookeeper.connect}一樣

--config:指定當前topic上有效的參數值,參數列表參考文檔爲: Topic-level configuration

--partitions:指定當前創建的kafka分區數量,默認爲1個

--replication-factor:指定每個分區的複製因子個數,默認1個

#cd /usr/local/kafka_2.11-2.1.1/

#bin/kafka-topics.sh --create -zookeeper kafka01:2181 --replication-factor 3 --partitions 6 --topic hello-kafka

查看主題

查看hello-kafka主題信息,3個副本數,6個分區

--describe: 指定是展示詳細信息命令

--zookeeper: 指定kafka連接zk的連接url,該值和server.properties文件中的配置項{zookeeper.connect}一樣

--topic:指定需要展示數據的topic名稱

#bin/kafka-topics.sh --describe -zookeeper kafka01:2181 --topic hello-kafka


查看所有主題信息

#bin/kafka-topics.sh --list --zookeeper kafka01:2181


啓動生產者以發送消息

hello-kafka主題模擬發送消息

#bin/kafka-console-producer.sh --broker-list kafka01:9092 --topic hello-kafka

啓動消費者以接收消息

hello-kafka主題模擬接收消息

#bin/kafka-console-consumer.sh --bootstrap-server kafka01:9092 --topic hello-kafka --from-beginning


修改主題分區數

爲主題添加分區數,先創建一個topic分區數爲3

#bin/kafka-topics.sh --create -zookeeper kafka01:2181 --replication-factor 3 --partitions 3 --topic bike-kafka

查看bike-kafka分區數


爲bike-kafka添加分區數爲6個

#bin/kafka-topics.sh --zookeeper kafka01:2181 --alter --topic bike-kafka --partitions 6

再查看bike-kafka的總共分區數

刪除主題

默認情況下Kafka的Topic是沒法直接刪除的,需要進行相關參數配置

#bin/kafka-topics.sh --zookeeper kafka01:2181 --delete --topic hello-kafka


Note: This will have no impact if delete.topic.enable is not set to true.## 默認情況下,刪除是標記刪除,沒有實際刪除這個Topic;如果運行刪除Topic,兩種方式:
方式一:通過delete命令刪除後,手動將本地磁盤以及zk上的相關topic的信息刪除即可
方式二:配置server.properties文件,給定參數delete.topic.enable=true,重啓kafka服務,此時執行delete命令表示允許進行Topic的刪除


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章