搭建kafka和zk集群环境
安装环境
MAC操作系统 VMware Fusion虚拟机 3个centos7服务器
安装虚拟机 飞机票 安装虚拟机Centos系统并安装Docker过程记录
安装包下载
https://kafka.apache.org/downloads.html
服务器环境准备
- 安装文件上传工具
yum install lrzsz
- 查看服务器ip
ip addr show centos-1 192.168.84.128 centos-2 192.168.84.129 centos-3 192.168.84.130
- 通过ssh工具连接
先安装下centos-1服务器环境
- 上传kafka安装包
mkdir /opt/kafka 通过rz将压缩包上传kafka_2.10-0.8.2.1.tgz 解压tar xvf kafka_2.10-0.8.2.1.tgz
- 创建zk目录
创建zk数据目录 并设定服务器编号 mkdir /opt/zk_data cd /opt/zk_data vi myid 该文件内容为1、2、3分别对应centos-1、centos-2、centos-3
配置zk
kafka安装包中内置zk服务
- 配置zookeeper.properties
vi /opt/kafka/kafka_2.10-0.8.2.1/config/zookeeper.properties # zk服务器之间的心跳时间间隔 以毫秒为单位 tickTime=2000 # zk 数据保存目录 zk服务器的ID文件也保存到这个目录下 dataDir=/opt/zk_data/ # zk服务器监听这个端口 然后等待客户端连接 clientPort=2181 # zk集群中follower服务器和leader服务器之间建立 # 初始连接时所能容忍的心跳次数的极限值 initLimit=5 # zk集群中follower服务器和leader服务器之间请求和应答过程中所能容忍的心跳次数的极限值 syncLimit=2 # server.N N代表zk集群服务器的编号 # 服务器IP地址:该服务器于leader服务器的数据交换端口:选举leader服务器时用到的通信端口 server.1=192.168.84.128:2888:3888 server.2=192.168.84.129:2888:3888 server.3=192.168.84.130:2888:3888
配置kafka
- 配置kafka broker
mkdir /opt/kafka/kafka-logs vi /opt/kafka/kafka_2.10-0.8.2.1/config/server.properties #kafka broker的唯一标识 集群中不能重复 broker.id=0 # broker监听端口 用于监听producer或者consumer的连接 port=9092 # 当前broker服务器 ip地址或机器名 host.name=192.168.84.128 #broker作为zk的client 可以连接的zk的地址信息 zookeeper.contact=192.168.84.128:2181,192.168.84.129:2181,192.168.84.130:2181 # 日志保存目录 log.dirs=/opt/kafka/kafka-logs
- 配置broker地址列表
vi /opt/kafka/kafka_2.10-0.8.2.1/config/producer.properties # 集群中的broker地址列表 broker.list=192.168.84.128:9092,192.168.84.128:9092,192.168.84.128:9092 # Producer类型 async 异步生产者 sync 同步生产者 producer.type=async
- 配置consumer
vi /opt/kafka/kafka_2.10-0.8.2.1/config/consumer.properties # consumer可以连接的zk服务器地址列表 zookeeper.contact=192.168.84.128:2181,192.168.84.128:2181,192.168.84.128:2181
打包配置好的kafka安装包并上传到其他服务器
tar cvf kafka_2.10-0.8.2.1.tar ./kafka_2.10-0.8.2.1 得到kafka_2.10-0.8.2.1.tar scp ./kafka_2.10-0.8.2.1.tar root@192.168.84.129:/opt/kafka scp ./kafka_2.10-0.8.2.1.tar root@192.168.84.130:/opt/kafka
传到centos-2和centos-3之后
分别操作
解压 tar xvf kafka_2.10-0.8.2.1.tar vi /opt/kafka/kafka_2.10-0.8.2.1/config/server.properties 文件中的 broker.id 和 host.name broker.id,可以分别复制 1 和 2 host.name 需要改成当前机器的 IP
安装jdk1.8
每个服务器都需要安装java环境
- 切换阿里云源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 或者 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 清除缓存
yum makecache
- 备注
OpenJDK Development Environment:开发版本带JDK 不要下载 Open JDK runtime Environment只有JRE
- 安装jdk1.8
yum -y install java-1.8.0-openjdk-devel.x86_64 安装路径 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64
- 全局环境变量配置
vi /etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar . /etc/profile