啓動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的刪除