激動無比,終於成功搭建了一套集群的kafka,記錄下我的搭建步驟,供大家參考,如有不對,請指正:
1.集群搭建
首先搭建一個一主三從(或一主兩從)的集群,
2.配置jdk環境
需要是jdk8的包
我的是ubuntu14,需要預選准備jdk包,然后解壓配置環境變量
路徑:/usr/local/jdk
解壓:tar -zxvf jdk-8u191-linux-x64.tar.gz
配置環境變量
編輯/etc/profile:vi /etc/profile
設置:
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
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
3.zookeeper安裝
搭建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
4.Kafka安裝
下載啟動
下載安裝包到指定目錄: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