一、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 ...