zookeeper+kafka集羣搭建

基本環境:

操做系統 : ubuntu-16.04.2 
jdk : jdk1.8.0_144 
zookeeper : zookeeper3.4.6 
kafka : kafka_2.12-0.11.0.0 
搭建過程當中,用三臺虛擬機來實現環境的配置,3臺虛擬機的ip以下:apache

  • 192.168.131.130
  • 192.168.131.131
  • 192.168.131.132

zookeeper環境搭建

一、確保已經安裝並配置了jdk環境 
二、開始搭建zookeeper集羣 
3臺虛擬機均進行如下操做:bootstrap

// 解壓下載好的zookeeper壓縮包並重命名
cd /usr/local
tar -zxvf /home/jwing/Downloads/zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper
// 建立日誌文件的存放位置
mkdir ./zookeeper/logs
// 修改配置文件
cd zookeeper/conf
// 若本來文件不存在,執行cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
// 修改
dataDir=/usr/local/zookeeper/data
// 添加
dataLogDir=/usr/local/zookeeper/logs
server.1=192.168.131.130:2888:3888
server.2=192.168.131.131:2888:3888
server.3=192.168.131.132:2888:3888
// 建立myid,內容與上方server.*中的*對應,如192.168.131.130以下
cd ../data
echo "1" > myid
// 在系統環境中配置zookeeper的路徑
vi /etc/profile
// 在文件最下方添加zookeeper路徑
export ZOOKEEPER_HOME=/usr/local/zookeeper
// 多路徑PATH寫法爲PATH=${ZOOKEEPER_HOME}/bin:${KAFKA_HOME}/bin:$PATH
PATH=${ZOOKEEPER_HOME}/bin:$PATH
export PATH
  •  
// 使修改完的環境變量生效
source /etc/profile
// 開啓zookeeper
/usr/local/zookeeper/bin/zkServer.sh start
// 查看zookeeper集羣的狀態,出現Mode:follower或是Mode:leader則表明成功
/usr/local/zookeeper/bin/zkServer.sh status

kafka環境搭建:

3臺虛擬機均進行如下操做:ubuntu

// 解壓下載好的kafka壓縮包並重命名
cd /usr/local
tar -zxvf /home/jwing/Downloads/kafka_2.12-0.11.0.0.tgz
mv kafka_2.12-0.11.0.0 kafka
// 修改配置文件
vi ./kafka/config/server.properties
  •  

須要修改的內容以下(192.168.131.130):測試

broker.id=0
listeners=PLAINTEXT://192.168.131.130:9092
zookeeper.connect=192.168.131.130:2181,192.168.131.131:2181,192.168.131.132:2181

須要修改的內容以下(192.168.131.131):ui

broker.id=1
listeners=PLAINTEXT://192.168.131.131:9092
zookeeper.connect=192.168.131.130:2181,192.168.131.131:2181,192.168.131.132:2181

須要修改的內容以下(192.168.131.132):spa

broker.id=2
listeners=PLAINTEXT://192.168.131.132:9092
zookeeper.connect=192.168.131.130:2181,192.168.131.131:2181,192.168.131.132:2181
// 在系統環境中配置kafka的路徑
vi /etc/profile
// 在文件最下方添加kafka路徑
export KAFKA_HOME=/usr/local/kafka
// 多路徑PATH寫法爲PATH=${ZOOKEEPER_HOME}/bin:${KAFKA_HOME}/bin:$PATH
PATH=${KAFKA_HOME}/bin:$PATH
export PATH
// 使修改完的環境變量生效
source /etc/profile

測試

一、開啓3臺虛擬機的zookeeper程序 
/usr/local/zookeeper/bin/zkServer.sh start 
開啓成功後查看zookeeper集羣的狀態 
/usr/local/zookeeper/bin/zkServer.sh status 
出現Mode:follower或是Mode:leader則表明成功 
二、在後臺開啓3臺虛擬機的kafka程序(cd /usr/local/kafka) 
./bin/kafka-server-start.sh -daemon config/server.properties 
三、在其中一臺虛擬機(192.168.131.130)建立topic 
/usr/local/kafka/bin/kafka-topics.sh –create –zookeeper 192.168.131.130:2181 –replication-factor 3 –partitions 1 –topic my-replicated-topic 
// 查看建立的topic信息 
/usr/local/kafka/bin/kafka-topics.sh –describe –zookeeper 192.168.131.130:2181 –topic my-replicated-topic 操作系統

這裏寫圖片描述


四、將192.168.131.130做爲生產者,將192.168.131.131做爲消費者 
在192.168.131.130中運行 
/usr/local/kafka/bin/kafka-console-producer.sh –broker-list 192.168.131.130:9092 –topic my-replicated-topic 
在192.168.131.131中運行 
/usr/local/kafka/bin/kafka-console-consumer.sh –bootstrap-server 192.168.131.131:9092 –from-beginning –topic my-replicated-topic 
(在老版本的kafka中使用/usr/local/kafka/bin/kafka-console-consumer.sh –zookeeper 192.168.131.131:2181 –from-beginning –topic my-replicated-topic命令) 
五、在192.168.131.130主機中輸入消息,192.168.131.131主機中將會接收 
(更多測試能夠在kafka官網中查看)日誌

 

注意事項: 
一、確保/etc/profile中環境配置是正確的,並在更新後啓用(source /etc/profile) 
二、開啓kafka前必須先開啓全部zookeeper 
三、server.properties中broker.id不能重複 
四、server.properties中listeners參數後面的ip地址最好寫上 
五、若server.properties中listeners,zookeeper.connect參數後填寫的是ip地址(192.168.131.130等),則在運行命令時也應該使用ip地址代替localhost(如/usr/local/kafka/bin/kafka-console-producer.sh –broker-list 192.168.131.130:9092 –topic my-replicated-topic避免寫爲/usr/local/kafka/bin/kafka-console-producer.sh –broker-list localhost:9092 –topic my-replicated-topic) 
六、出現內存不足的錯誤時,嘗試關閉多餘的程序,仍是不行就重啓了。code

相關文章
相關標籤/搜索