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

浙公网安备 33010602011771号