Kafka集群部署
- 服务信息如下:
表1 服务信息3 服务名
服务器
安装目录
端口
zookeeper
10.190.x.x
10.190.x.x
10.190.x.x
/app/zookeeper
2181、2888、3888
kafka
/app/kafka
9092
- 安装JDK8
- 准备安装包
[root@vm001 ~]# rpm -qa|grep java [root@vm001 ~]# rpm -qa|grep jdk yum list java-1.8.0-openjdk* (可选安装java-1.8.0-openjdk-devel) yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel tar xf jdk-8u341-linux-aarch64.tar.gz -C /usr/local/
- 配置环境变量快捷命令
sed -i '$a export JAVA_HOME=/usr/local/jdk1.8.0_341\nexport JRE_HOME=$JAVA_HOME/jre\nexport PATH=$JAVA_HOME/bin:JRE_HOME/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ' /etc/profile && source /etc/profile && java -version
- 准备安装包
- 安装zookeeper
- 准备安装包
三节点部署zookeeper,使用zookeeper-3.4.14.tar.gz,解压到/app目录,下载地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar xf zookeeper-3.4.14.tar.gz -C /app mv zookeeper-3.4.14 zookeeper
- 添加zookeeper到环境变量
vim + /etc/profile export ZOOKEEPER_HOME=/app/zookeeper export PATH=$ZOOKEEPER_HOME/bin:$PATH #集成安装上面的jdk之后,环境变量PATH合并配置示例: export ZOOKEEPER_HOME=/app/zookeeper export JAVA_HOME=/usr/local/jdk1.8.0_241 export JRE_HOME=$JAVA_HOME/jre export PATH=$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:JRE_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #使环境变量生效 source /etc/profile
- 修改配置文件
#进入ZooKeeper所在目录 cd /app/zookeeper/conf #复制配置文件 cp zoo_sample.cfg zoo.cfg #修改配置文件 vim zoo.cfg #修改数据目录 dataDir=/app/zookeeper/data #在最后添加如下代码,其中server.1-3是部署ZooKeeper的节点对应sfmap345 server.1=sfmap3:2888:3888 server.2=sfmap4:2888:3888 server.3=sfmap5:2888:3888 #创建data目录作数据目录 mkdir /app/zookeeper/data #在data目录中创建一个空文件,并向该文件写入ID touch /app/zookeeper/data/myid echo 1 > /app/zookeeper/data/myid
- 同步配置到其它节点
#将配置好的ZooKeeper复制到其它节点 scp -rp /app/zookeeper-3.4.6 root@sfmap4:/app/ scp -rp /app/zookeeper-3.4.6 root@sfmap5:/app/ #登录sfmap4、sfmap5,修改myid内容 echo 2 > /app/zookeeper/data/myid echo 3 > /app/zookeeper/data/myid
- 启动服务
分别在sfmap3,sfmap4、sfmap5上启动ZooKeeper
cd /app/zookeeper/bin ./zkServer.sh start #查看服务状态 ./zkServer.sh status Mode: leader #或者 Mode: follower
- 准备安装包
- 安装kafka
- 准备安装包
下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.13-2.6.0.tgz
tar xf kafka_2.13-2.6.0.tgz -C /app mv kafka_2.13-2.6.0 kafka
- 修改配置文件server.properties
broker.id=1 listeners=PLAINTEXT://0.0.0.0:9092 ##0.0.0.0或本机IP #advertised.listeners=PLAINTEXT://192.168.56.101:9092 advertised.listeners=PLAINTEXT://192.168.0.100:9092 ##本机或公网IP …… ##log.dirs=/tmp/kafka-logs ##或者使用默认配置 log.dirs=/app/kafka/kafka-logs …… ##zookeeper.connect=localhost:2181 ##加注释默认的自带的zoo zookeeper.connect=192.168.56.101:2181,192.168.56.102:2181,192.168.56.103:2181 zookeeper.connection.timeout.ms=18000 group.initial.rebalance.delay.ms=0
- 修改启动脚本
修改bin/kafka-run-class.sh 找到约257行:
KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 ...
直接删掉这个的参数 -XX:+UseG1GC,保存退出。
- 参考a、b、c完成节点2和节点3的安装和配置
- 三节点分别创建数据存储目录
mkdir -p /app/kafka/kafka-logs
- 三节点分别启动服务
cd bin/ ./kafka-server-start.sh -daemon ../config/server.properties
- 准备安装包