kafka集群部署及仍然存在的問題

2021-07-05 07:33:47 字數 2187 閱讀 4088

一、kafka使用心得:

1.實際上chroot是在kafka/config/server.properties中設定。

2.在kafka程序啟動之前,要先在zookeeper上建立好chroot對應的目錄

3.kafk程序啟動後,會在chroot下面建立以下的目錄

consumers : 用來記錄消費者的資訊,下面的目錄是對應consumer指定的group.id

config : 用來記錄topics和changes資訊

brokers : 用來記錄broker機器的資訊

controller : 未知

controller_epoch : 未知

4.目前使用的是0.8.1.1版本的kafka,配置項說明以這為準:

producer是不需要指定zk.connect的。直接指定metadata.broker.list就可以了。實際上broker知道對應的zookeeper的chroot

5.consumer需要知道kafka對應的zookeeper的chroot,否則就無法確定broker的資訊。

實際上zookeeper + chroot和broker list資訊是互相對應的,知道了乙個,就可以獲得另乙個的資訊。

二、kafka單機模式

由於原來在zookeeper中/kafka是永久節點,所以換乙個目錄叫kafka2,這一點只要修改config/servers.properties的zookeeper.connect

這一項就可以做到。

kafka程序啟動後,會在zookeeper中建永久節點:在brokers/ids下建乙個名為1的節點(因為節點的id名是1)。它的屬性裡有以下資料

啟動客戶端往kafka裡寫入資料時,會在logs/目錄下生成

topic1-0

topic1-1

說明這個topic一共有2個partition。(配置檔案裡有num.partitions=2)

裡面各有兩個檔案:

00000000000000000000.index

00000000000000000000.log

生產者往kafka中寫入10條訊息,內容都寫到了topic1-1中,也就是parition 1中。

寫入成功後,會在zookeeper中的brokers/topics下生成以下的節點

topic1

這個是topic的名字

不知道為什麼,資料都往partition 1寫

三、kafka的consumer group

啟動consumer,指定group.id

在zookeeper中,會建立節點

consumers/$

下面有offset

owners

ids對於offset來說

/1儲存著partition 1讀取的offset

owners裡儲存的是

$$ids裡儲存的是$$的對應資訊

四、kafka的集群模式

把另乙個broker也啟動起來,原來的broker機器名是kafka1,另乙個broker的機器名是kafka2

注意,config/server.properties中

host.name=kafka1

需要設定這一項,否則預設host.name是localhost,在集群模式下可能會有問題。

寫入資料時,broker.list要設定為kafka1:9092,kafka2:9092

五,仍然沒有解決的問題:

雖然資料能寫進去,但是發現總是往partition 1寫

kafka1

du -hs ~/kafka/log/topic*/*.log

0 /home/hadoop/kafka/log/topic0-0/00000000000000000000.log

4.0k /home/hadoop/kafka/log/topic1-1/00000000000000000000.log

0 /home/hadoop/kafka/log/topic3-0/00000000000000000000.log

kafka2

du -hs log/topic*/*.log

4.0k log/topic0-1/00000000000000000000.log

0 log/topic1-0/00000000000000000000.log

36k log/topic3-1/00000000000000000000.log

Kafka 集群部署

kafka是乙個分布式訊息佇列,需要依賴zookeeper,請先安裝好zk集群 kafka安裝包解壓 tar xf kafka 2.10 0.9.0.1 tgz mv kafka 2.10 0.9.0.1 usr kafka cd usr kafka 配置檔案 server.properties t...

kafka集群部署

一台伺服器上可以啟動多個broker例項,或者將broker部署到多台伺服器上,以下以172.16.50.21集群為例,多台伺服器上部署broker。tar xzf kafka 2.11 1.0.0.tgz cd kafka 2.11 1.0.0kafka依賴zookeeper,如果環境中沒有zoo...

Kafka集群部署

前提 在啟動kafaka集群,呼叫 bin kafka server start.sh config server.properties 前,需要把每台機器上zookeeper服務都給啟動了。zookeeper的安裝配置看,1 kafka集群規劃 s101 s102 s103 s104 zk zk ...