zookeeper和kafka的安装和集群部署

 
 
虚拟机
ip zookeeper
kafka
centos001 
192.168.10.141
192.168.10.141:2181
192.168.10.141:9092
centos002
192.168.10.142
192.168.10.142:2181
192.168.10.142:9092
centos003
192.168.10.143
192.168.10.143:2181
192.168.10.143:9092
首先安装java环境
# yum install java-1.8.0

 

或者:国内镜像仓库java手动安装 
分类 地址
java

https://repo.huaweicloud.com/java/jdk/8u151-b12/

kafka 

http://kafka.apache.org/downloads

zookeeper

 https://downloads.apache.org/zookeeper/zookeeper-3.5.8/

注释:若下载较慢可通过底部百度网盘分享下载

1.安装zookeeper

1.1 将zookeeper、kafka的压缩包通过共享文件放到虚拟机,解压zookeeper文件【下载见底部】

 
# tar -xvzf zookeeper-3.5.6-bin.tar.gz
为了后边使用方便可以建立软连接,或者重命名文件。
# ln -s apache-zookeeper-3.5.6-bin zookeeper   #1 建立软连接
# mv apache-zookeeper-3.5.6-bin zookeeper      #2 重命名文件为zookeeper

  

1.2 切换到 conf文件,将zoo_sample.cfg 重命名为 zoo.cfg

#cd /zookeeper0/conf/
#ls
configuration.xsl log4j.properties zoo_sample.cfg
#mv zoo_sample.cfg zoo.cfg        #mv 重命名

1.3 配置zoo.cfg,zookeeper1 、zookeeper2、zookeeper3 都是同样的配置

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/tool/zookeeper/data
dataLogDir=/home/tool/zookeeper/logs
clientPort=2181
server.1=192.168.10.141:2888:3888
server.2=192.168.10.142:2888:3888
server.3=192.168.10.143:2888:3888
设置唯一的myid
#echo '1'>/home/tool/zookeeper/data/myid
####其他两台
#echo '2'>/home/tool/zookeeper/data/myid      #192.168.10.142
#echo '3'>/home/tool/zookeeper/data/myid      #192.168.10.143
 

1.4 启动zookeeper

首先查看防火墙状态,如果启用,需要先关闭
#firewall-cmd --state           #查看防火墙状态
#systemctl stop firewalld.service   #关闭防火墙
#systemctl disable firewalld.service   #永久关闭防火墙

 

运行zookeeper
[root@localhost bin] # ./zkServer.sh start
[root@localhost bin] # ./zkServer.sh status

1.5 查看zookeeper状态,出现mode :leader,另外两台是mode:follow,集群成功。单机模式的话会显示;【mode:standalone】

 

2.安装kafka

2.1 解压tar文件

# tar -zxf  kafka_2.12-2.4.0.tgz  -C /home/tool
# cd /home/tool
# ls -l
# mv kafka_2.12-2.4.0 kafka
# cd kafka

  

2.2 修改配置文件server.properties,主要设置以下几项

broker.id=1                              #当前机器在集群中的唯一标识,和zookeeper的myid性质一样
listeners=PLAINTEXT://192.168.10.141:9092   #Socket服务器侦听的地址,当前kafka对外提供服务的端口默认是9092
advertised.listemers=PLAINTEXT://192.168.10.141:9092  #代理将向生产者和消费者做广告的主机名和端口
log.dirs=/tmp/kafka-logs                 #设置日志目录
zookeeper.connect=192.168.10.141:2181,192.168.10.142:2181,192.168.10.143:2181/kafka                                 #设置zookeeper的连接端口

 

其他参数设置:
 
num.network.threads=3        #处理网络请求的线程数
num.io.threads=8             #进行I/O处理的线程数
socket.send.buffer.bytes=102400  #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.receive.buffer.bytes=102400  #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes=104857600   #向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
 
log.dirs=/home/hadoop/log/kafka-logs  #消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
num.partitions=1             #默认的分区数,一个topic默认1个分区数
num.recovery.threads.per.data.dir=1  #每个数据目录用来日志恢复的线程数目
log.retention.hours=168                #默认消息的最大持久化时间,168小时,7天
log.segment.bytes=1073741824           # 因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.retention.check.interval.ms=300000 #每隔300000毫秒去检查上面配置的log失效时间

  

2.3 启用kafka,三台都要进行启动。

[root@localhost kafka]#   ./bin/kafka-server-start.sh config/server.properties                   #1 直接启动
[root@localhost kafka]#   ./bin/kafka-server-start.sh  -daemon config/server.properties          #2 后台启动 添加-daemon     

2.4 kafka服务测试,topic

创建一个3副本3分区的topic : topic1
[root @localhost kafka]# ./bin/kafka-topics.sh --create --zookeeper 192.168.10.141:2181,192.168.10.142:2181,192.168.10.143:2181 --replication-factor 3 --partitions 3 --topic topic1

  

查看topic
[root @localhost kafka]# ./bin/kafka-topics.sh --list --zookeeper 192.168.10.141:2181,192.168.10.142:2181,192.168.10.143:2181

  

查看单个topic
[root @localhost kafka]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.10.141:2181,192.168.10.142:2181,192.168.10.143:2181 --topic topic1

  

模拟生成者生产信息
[root @localhost kafka]# ./bin/kafka-console-producer.sh --broker-list 192.168.10.142:9092 --topic topic1

  

模拟消费者消费信息
[root @localhost kafka]#./bin/kafka-console-consumer.sh --bootstrap-server 192.168.10.141:9092,192.168.10.142:9092,192.168.10.143:9092 --topic topic1

 

删除test的topic
[root @localhost kafka]#./bin/kafka-topics.sh --delete --topic topic1--zookeeper 192.168.10.141:2181,192.168.10.142:2181,192.168.10.143:2181

 

查看test的topic是否被删除
[root @localhost kafka]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.10.141:2181,192.168.10.142:2181,192.168.10.143:2181 --topic topic1

 

百度网盘分享:

apache-zookeeper-3.5.8-bin.tar

链接:https://pan.baidu.com/s/1V-7zA-zQN0qvP1p8_38Evw 
提取码:aqxu

kafka_2.11-2.1.0.tgz

链接:https://pan.baidu.com/s/1DNem3XMBCzM9u2wsruapDQ 
提取码:aqxu

posted @ 2020-08-27 21:19  秋风明年起  阅读(107)  评论(0)    收藏  举报