為了安裝過程對一些參數的理解,我先在這里提一下kafka一些重點概念,topic,broker,producer,consumer,message,partition,依賴于zookeeper,
kafka是一種消息隊列,他的服務端是由若干個broker組成的,broker會向zookeeper,producer生成者對應一個topic主題生產的數據分成多個partition分區放在不同的broker中,
每個分區以message的形式存儲對應的消息數據(包括key,value,offset,inserttime),另一方面就是consumer消費者要向消息隊列拉數據的時候首先是通過訪問zookeeper獲取
一些元數據比如offset到對應的消息分區對應的讀的地址繼續讀下去。我簡單的畫了個圖,
?
接下來開始安裝步驟了
1.解壓
sudo tar -zxvf kafka_2.11-0.10.0.0.tgz[壓縮包路徑] -C /opt/modules/[解壓的目標路徑]
2.在kafka的根目錄下新建個文件夾用于存儲一些日志文件
mkdir kafka-logs
2.配置conf/server.properties文件
broker.id=0 log.dirs=/opt/modules/kafka_2.11-0.10.0.0/kafka-logs num.partitions=2 zookeeper.connect=hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181
3.分發到另外一臺服務器(這里只用了兩臺虛擬機服務器集群)并修改配置文件中的broker.id
scp -r ./kafka_2.11-0.10.0.0/ root@hadoop-senior02.kyhoon.com:/opt/modules broker.id =1
4.啟動集群的Zookeeper
bin/zkServer.sh start
5.啟動集群的kafka服務
nohup bin/kafka-server-start.sh config/server.properties &
6.創建topic
bin/kafka-topics.sh --zookeeper hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181 --topic test --replication-factor 1 --partitions 2 --create
7.查看topic
bin/kafka-topics.sh --zookeeper hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181 --list
8.創建生產者
bin/kafka-console-producer.sh --broker-list hadoop-senior01.kyhoon.com:9092 ,hadoop-senior02.kyhoon.com:9092 --topic test
9.創建消費者
bin/kafka-console-consumer.sh --zookeeper hadoop-senior01.kyhoon.com:2181 ,hadoop-senior02.kyhoon.com:2181 --topic test --from-beginning
10.在生產者端輸入消息回車,在消費者端看到對應的消息則證明安裝成功了
?
kyhoon