kafka+zk 集羣--3個broker 3個zookeeper

http://blog.csdn.net/yehuang_0801/article/details/62891971node

準備工做:apache

1. 準備3臺機器(Linux(ubuntu~16.04.4)),IP地址分別爲:192.168.244.201,192.168.244.202,192.168.244.203ubuntu

 

2. 下載kafka穩定版本,個人版本爲:kafka_2.9.2-0.8.1.1.tgz 網絡

3. 分別解壓放入到想安裝的目錄下,個人目錄爲:/data/apache 解壓命令爲:tar -xzf kafka_2.9.2-0.8.1.1.tgzapp

1、搭建zookeeper集羣spa

安裝目錄/data/apache/zookeeper-3.4.9.net

因爲zk之前已經安裝過了,參考http://lib.csdn.NET/article/Hbase/50254,裏面有詳細的zk集羣搭建步驟。server

截圖zk啓動的命令,以及查看狀態的命令,防止忘記得意blog

1.201啓動的信息ip

[plain] view plain copy

  1. /data/apache/zookeeper-3.4.9/bin/zkServer.sh start  

[plain] view plain copy

  1. /data/apache/zookeeper-3.4.9/bin/zkServer.sh status  

[plain] view plain copy

  1. /data/apache/zookeeper-3.4.9/bin/zkServer.sh stop  

2.202啓動的信息

下面的一句話引用網絡,再結合上面的信息,後面是另一個202啓動了:

因爲ZooKeeper集羣啓動的時候,每一個結點都試圖去鏈接集羣中的其它結點,先啓動的確定連不上後面還沒啓動的,因此打印出來的部分的異常是能夠忽略的。集羣在選出一個Leader後,最後穩定了。其餘結點可能也出現相似問題,屬於正常。

至此,zookeeper集羣搭建完成。

2、進入主題kafka集羣的搭建

1. 下載並解壓Kafka

kafka tgz 下載地址http://kafka.apache.org/downloads

 

cd /data/apache 執行tar -xzf kafka_2.12-0.10.2.0.tgz
 

2. 修改配置文件

修改 conf/server.properties

 

zookeeper.connect=192.168.244.201:2181,192.168.244.202:2181,192.168.244.203:2181

 

broker.id分別改爲

broker.id=201

broker.id=202

broker.id=203

host.name分別改爲(若是不改,client訪問集羣時,若是沒在hosts配置對應機器的 hostname,訪問將會報錯)

host.name=192.168.244.201

host.name=192.168.244.202

host.name=192.168.244.203

可根據需求修改

port: broker節點使用端口號 默認 9092
log.dir: 消息目錄位置

 

log.dirs=/data/usr/kafka_logs

3.複製到其它兩臺機器上

scp -r /data/apache/kafka_2.12-0.10.2.0/ jack@slave1:/data/apache/

scp -r /data/apache/kafka_2.12-0.10.2.0/ jack@slave2:/data/apache/

4.建立topic並查看

 

./kafka-topics.sh --create --zookeeper 192.168.244.201:2181 --replication-factor 2 --partitions 2 --topic test-replicated-topic
./kafka-topics.sh --describe --zookeeper 192.168.244.201:2181 --topic my-replicated-topic
./kafka-topics.sh --list --zookeeper 192.168.244.201:2181
./kafka-topics.sh --create --zookeeper 192.168.244.201:2181 --replication-factor 2 --partitions 2 --topic producer_test


#查看建立的Topic
./kafka-topics.sh --list --zookeeper node-1:2181
#查看相應Topic的狀況
./kafka-topics.sh --describe --zookeeper node-1:2181 --topic test
#發送消息
./kafka-console-producer.sh --broker-list 192.168.244.201:9092 --topic stock
#接收消息

./kafka-console-consumer.sh --zookeeper 192.168.244.201:2181 --topic stock  --from-beginning

 

5.停機

ps -ef|grep server.properties

pkill -9 -f server.properties

6.啓動

/data/apache/kafka_2.12-0.10.2.0/bin/kafka-server-start.sh /data/apache/kafka_2.12-0.10.2.0/config/server.properties &

7.完全刪除Kafka中的topic(摘抄於http://blog.csdn.net/fengzheku/article/details/50585972)

 

一、刪除kafka存儲目錄(server.properties文件log.dirs配置,默認爲"/tmp/kafka-logs")相關topic目錄

二、Kafka 刪除topic的命令是:

     ./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】

     若是kafaka啓動時加載的配置文件中server.properties沒有配置delete.topic.enable=true,那麼此時的刪除並非真正的刪除,而是把topic標記爲:marked for deletion

     你能夠經過命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 來查看全部topic

 

     此時你若想真正刪除它,能夠以下操做:

     (1)登陸zookeeper客戶端:命令:/data/apache/zookeeper-3.4.9/bin/zkCli.sh

     (2)找到topic所在的目錄:ls /brokers/topics

     (3)找到要刪除的topic,執行命令:rmr /brokers/topics/【topic name】便可,此時topic被完全刪除。

 

    另外被標記爲marked for deletion的topic你能夠在zookeeper客戶端中經過命令得到:ls /admin/delete_topics/【topic name】,

    若是你刪除了此處的topic,那麼marked for deletion 標記消失

    zookeeper 的config中也有有關topic的信息: ls /config/topics/【topic name】暫時不知道有什麼用

 

總結:

完全刪除topic:

 一、刪除kafka存儲目錄(server.properties文件log.dirs配置,默認爲"/tmp/kafka-logs")相關topic目錄

 二、若是配置了delete.topic.enable=true直接經過命令刪除,若是命令刪除不掉,直接經過zookeeper-client 刪除掉broker下的topic便可。

相關文章
相關標籤/搜索