Kafka之集群安裝

Kafka是一個(gè)分布式流媒體平臺(tái)。發(fā)布和訂閱記錄流,類(lèi)似于消息隊(duì)列或企業(yè)消息傳遞系統(tǒng)。以容錯(cuò)持久的方式存儲(chǔ)記錄流。處理記錄發(fā)生的流。本文講述在三臺(tái)主機(jī)上安裝kafka集群的主要步驟

主要內(nèi)容:

  • 1.啟動(dòng)Zookeeper
  • 2.安裝Kafka
  • 3.測(cè)試
  • 4.其它
  • 5.一鍵腳本

集群規(guī)劃如下:

用戶(hù) 主機(jī)名 ip 進(jìn)程
hadoop hadoop1 192.168.2.111 Zookeeper、Kafka
hadoop hadoop2 192.168.2.112 Zookeeper、Kafka
hadoop hadoop3 192.168.2.113 Zookeeper、Kafka

1.啟動(dòng)Zookeeper

之前Zookeeper集群安裝已經(jīng)安裝好了,現(xiàn)在只需要啟動(dòng)即可
可以使用腳本批量啟動(dòng),也可以多窗口運(yùn)行命令啟動(dòng),啟動(dòng)后的狀態(tài)如下:

image.png

使用客戶(hù)端創(chuàng)建一個(gè)/kafka目錄來(lái)存放kafka相關(guān)的配置文件

./bin/zkCli.sh

創(chuàng)建kafka節(jié)點(diǎn)來(lái)存放kafka的配置文件

create /kafka ''

1.2.安裝Kafka

1.2.1.下載

下載地址:傳送們
根據(jù)自己的Scala版本下載相應(yīng)的kafka版本即可,如果沒(méi)有,就自己編譯

image.png

1.2.2.上傳解壓

tar -zxvf kafka_2.11-1.0.1.tgz -C /opt/soft

1.2.3.配置啟動(dòng)

1、修改config/server.properties文件如下:

#必須 設(shè)置broker.id(從0開(kāi)始,3個(gè)節(jié)點(diǎn)分別設(shè)為0,1,2,不能重復(fù))
broker.id=0
#可選 用來(lái)監(jiān)聽(tīng)鏈接的端口,producer 或 consumer 將在此端口建立連接 
port=9092
#可選 日志文件目錄
log.dirs=/opt/soft/kafka_2.11-1.0.1/kafka-logs 
#可選  在當(dāng)前 broker 上的partition數(shù)量
num.partitions=1 
#必須 Zookeeper服務(wù)器
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181/kafka 

這里需要說(shuō)明的是,默認(rèn)Kafka會(huì)使用ZooKeeper默認(rèn)的根 "/" 路徑,這樣有關(guān)Kafka的配置就會(huì)散落在ZooKeeper根路徑下面,如果你有其他的應(yīng)用也在使用ZooKeeper集群,查看ZooKeeper中數(shù)據(jù)可能會(huì)不直觀,所以強(qiáng)烈建議指定一個(gè)路徑,這就是我們?yōu)槭裁从脄ookeeper客戶(hù)端創(chuàng)建/kafka節(jié)點(diǎn)的原因,然后直接在zookeeper.connect配置項(xiàng)中指定:
zookeeper.connect= node2:2181,node3:2181,node4:2181/kafka

2、將kafka_2.11-1.0.1拷貝到其它主機(jī)(hadoop2、hadoop3)

 scp -r kafka_2.11-1.0.1/ hadoop@hadoop2:/opt/soft
 scp -r kafka_2.11-1.0.1/ hadoop@hadoop3:/opt/soft

3、修改其它主機(jī)(hadoop2、hadoop3)的broker.id

broker.id=1
broker.id=2

4、啟動(dòng)
可以編寫(xiě)一鍵啟動(dòng)腳本,也可以批量窗口操作,運(yùn)行如下命令:

nohup bin/kafka-server-start.sh   config/server.properties > kafka.log 2>&1 &

5、查看是否啟動(dòng)成功

jps
image.png

如圖,每臺(tái)機(jī)器都應(yīng)該有如上圖的2個(gè)進(jìn)程

3.測(cè)試

3.1.創(chuàng)建、查看、生產(chǎn)、消費(fèi)

# 創(chuàng)建一個(gè)叫做“TEST”的topic,它有3個(gè)分區(qū),3個(gè)副本
./bin/kafka-topics.sh --create --bootstrap-server hadoop1:9092,hadoop2:9092,hadoop3:9092 --topic TEST --partitions 3 --replication-factor 3

# 查看Topics
./bin/kafka-topics.sh --list --bootstrap-server hadoop1:9092,hadoop2:9092,hadoop3:9092
./bin/kafka-topics.sh --describe --bootstrap-server hadoop1:9092,hadoop2:9092,hadoop3:9092

# 創(chuàng)建一個(gè)生成者往TEST寫(xiě)數(shù)據(jù)
./bin/kafka-console-producer.sh --broker-list hadoop1:9092,hadoop2:9092,hadoop3:9092 --topic TEST

# 創(chuàng)建一個(gè)消費(fèi)者從頭開(kāi)始消費(fèi)
./bin/kafka-console-consumer.sh --broker-list hadoop1:9092,hadoop2:9092,hadoop3:9092 --topic TEST --from-beginning
生產(chǎn)者

Topic名為T(mén)EST,有3個(gè)Partition ,有3個(gè)副本
編號(hào)為0的Partition,Leader在broker.id=1這個(gè)節(jié)點(diǎn)上,負(fù)責(zé)該P(yáng)artition的讀寫(xiě),副本在broker.id為1、0、2這個(gè)三個(gè)節(jié)點(diǎn)上,Isr表示所有存活的副本,并跟broker.id=1這個(gè)節(jié)點(diǎn)同步

消費(fèi)者

3.2.刪除

1、刪除topic

./bin/kafka-topics.sh --delete --zookeeper hadoop1:2181,hadoop2:2181,hadoop3:2181/kafka --topic TEST

4.其它

  • 如遇到問(wèn)題可以在前面設(shè)置的日志文件夾log.dirs里查看啟動(dòng)日志
  • 查看Zookeeper 下 /kafka里的配置信息
ls /kafka/brokers/ids
image.png

5.一鍵腳本

設(shè)置環(huán)境變量(三臺(tái)主機(jī))

export KAFKA_HOME=/opt/soft/kafka_2.11-1.0.1/
export PATH=$PATH:$KAFKA_HOME/bin

startkafka.sh 一鍵啟動(dòng)腳本(設(shè)置Kafka的環(huán)境變量)

cat ./slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile;nohup kafka-server-start.sh /opt/soft/kafka_2.11-1.0.1/config/server.properties >/dev/null 2>&1 &"
}&
wait
done 

stopkafka.sh 一鍵停止腳本(設(shè)置Kafka的環(huán)境變量)

cat ./slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile;jps |grep Kafka |cut -c 1-4 |xargs kill -s 9 "
}&
wait
done

slave

hadoop1
hadoop2
hadoop3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容