激動無比,終於成功搭建了一套集羣的kafka,記錄下個人搭建步驟,供你們參考,若有不對,請指正:java
首先搭建一個一主三從(或一主兩從)的集羣,linux
個人是ubuntu14,須要預選準備jdk包,而後解壓配置環境變量apache
路徑:/usr/local/jdkubuntu
解壓:tar -zxvf jdk-8u191-linux-x64.tar.gz緩存
編輯/etc/profile:vi /etc/profilebash
設置:服務器
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_191oracle
export JRE_HOME=${JAVA_HOME}/jrejvm
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libspa
export PATH=${JAVA_HOME}/bin:$PATH
更新配置生效:source /etc/profile
檢查~/.profile 和~/.bashrc 文件是否有環境變量配置存在,
(~/.bashrc ~/.profile /etc/profile)前兩個是當前用戶的配置,後面是系統配置,集羣中的服務器配置相同
卸載jdk:
卸載:
$ sudo apt-get autoremove default-jdk
若是不能卸載乾淨,用下面的方法完全卸載:
1、卸載JDK
$ sudo apt-get update
$ sudo apt-cachesearch java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e'^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)'-e 'java-common' | xargs sudo apt-get -y remove
$ sudo apt-get -yautoremove
2、清除配置信息:
$ dpkg -l | grep ^rc | awk '{print($2)}' |xargs
$ sudo apt-get -y purge
3、清除java配置及緩存:
$ bash -c 'ls -d /home/*/.java' | xargs
$ sudo rm -rf
4、手動清除JVMs:
$ rm -rf /usr/lib/jvm/*
依次配置其餘三臺jdk
搭建zookeeper,zookeeper能夠自行搭建也能夠使用kafka內置zookeeper,我這裏使用的是單獨搭建的zookeeper
下載安裝包到指定目錄
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
解壓:tar -zxvf zookeeper-3.4.13.tar.g
進入conf目錄下:
配置環境變量前先複製一份zoo.cfg:cp zoo_sample.cfg zoo.cfg
編輯文件zoo.cfg:vi zoo.cfg
設置
#數據目錄
dataDir=/usr/local/zookeeper/data
#日誌目錄
dataLogDir=/usr/local/zookeeper/data/log
#集羣配置,四臺設備的ip
server.1=192.168.56.100:2888:3885
server.2=192.168.56.101:2888:3886
server.3=192.168.56.102:2888:3887
server.4=192.168.56.103:2888:3888
保存退出
最後指定myid,放在dataDir=/usr/local/zookeeper/data目錄下
切換到數據所在目錄下:cd /usr/local/zookeeper/data
設置myid:echo '1' >myid #從1開始
其中myid順序配置
依次在四臺機執行啓動:/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh start
查看狀態:/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh status
中止:/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh stop
下載安裝包到指定目錄:wget http://mirror.bit.edu.cn/apache/kafka/2.2.1/kafka_2.12-2.2.1.tgz
解壓:tar -zxvf kafka_2.12-2.2.1.tgz
新建日誌目錄:mkdir kafkalogs
進入到配置目錄:cd config
編輯配置文件:vi server.properties
設置
#每一個節點的broker.id 都不能相同,從0開始這是,後面其餘三臺依次配置1、2、3
broker.id=0
#默認PLAINTEXT://:9092
listeners=PLAINTEXT://:9092
#設置爲主機名
advertised.listeners=PLAINTEXT://master:9092
#配置日誌目錄
log.dirs=/usr/local/kafka/kafkalogs
#設置zookeeper的鏈接信息,多個zookeeper用,分隔
zookeeper.connect=master.local:2181,slave-2.local:2181,slave-2.local:2181
#設置能夠刪除topic,末尾加入
delete.topic.enable=true
其中broker.id順序配置
依次在四臺機執行啓動:前臺啓動,能夠直接看到啓動執行的日誌:
/usr/local/kafka/kafka_2.12-2.2.1/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.1/config/server.properties
後臺啓動:
/usr/local/kafka/kafka_2.12-2.2.1/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.1/config/server.properties &
查看狀態:jps
關閉zookeeper:/usr/local/kafka/kafka_2.12-2.2.1/bin/kafka-server-stop.sh