您的位置:首页 > 其它

zookeeper+kafka集群搭建

2017-10-18 15:03 337 查看

基本环境:

操作系统 : ubuntu-16.04.2

jdk : jdk1.8.0_144

zookeeper : zookeeper3.4.6

kafka : kafka_2.12-0.11.0.0

搭建过程中,用三台虚拟机来实现环境的配置,3台虚拟机的ip如下:

192.168.131.130

192.168.131.131

192.168.131.132

zookeeper环境搭建

1、确保已经安装并配置了jdk环境

2、开始搭建zookeeper集群

3台虚拟机均进行以下操作:

// 解压下载好的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台虚拟机均进行以下操作:

// 解压下载好的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):

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):

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


测试

1、开启3台虚拟机的zookeeper程序

/usr/local/zookeeper/bin/zkServer.sh start

开启成功后查看zookeeper集群的状态

/usr/local/zookeeper/bin/zkServer.sh status

出现Mode:follower或是Mode:leader则代表成功

2、在后台开启3台虚拟机的kafka程序

/usr/local/kafka/bin/kafka-server-start.sh -daemon config/server.properties

3、在其中一台虚拟机(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



4、将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命令)

5、在192.168.131.130主机中输入消息,192.168.131.131主机中将会接收

(更多测试可以在kafka官网中查看)

注意事项

1、确保/etc/profile中环境配置是正确的,并在更新后启用(source /etc/profile)

2、开启kafka前必须先开启所有zookeeper

3、server.properties中broker.id不能重复

4、server.properties中listeners参数后面的ip地址最好写上

5、若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)

6、出现内存不足的错误时,尝试关闭多余的程序,还是不行就重启了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: