Kafka 部署文档
一、文档介绍
此文档旨在规范服务器上 Kafka 部署步骤,标准化操作步骤,为后续标准运维提供支撑。
二、部署说明
-
操作系统: Linux(CentOS 7.6) -
安装包版本: Kafka 2.12-3.4.0.tgz
三、下载
(一) kafka
官网下载地址:https://archive.apache.org/dist/kafka/
cd /usr/local/srcwget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.12-3.4.0.tgz
(二) jdk
官网下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
注意:由于 oracle 官网下载安装包需要认证,所以无法直接通过命令下载 ;所以请通过上述地址下载最新 JDK 安装包,请上传到服务器的 /usr/local/src 目录 。
四、安装
(一) jdk
cd /usr/local/srctar zxf jdk-8u391-linux-x64.tar.gzmv jdk1.8.0_391 /usr/local/cd /usr/local/ln -s jdk1.8.0_391 jdk
(二) kafka
cd /usr/local/srctar zxvf kafka_2.12-3.4.0.tgzmv kafka_2.12-3.4.0 /usr/local/cd /usr/localln -s kafka_2.12-3.4.0 kafka
五、配置环境变量
(一) jdk
cat <<"EOF" >> /etc/profile# jdkexport JAVA_HOME=/usr/local/jdkexport CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATHEOFsource /etc/profilejava -version
(二) kafka
cat <<"EOF" | tee -a /etc/profile# kafkaexport KAFKA_HOME=/usr/local/kafkaexport PATH=$KAFKA_HOME/sbin:$PATHEOFsource /etc/profile
六、创建目录
mkdir -p /data/{zk,kafka}_data/{conf,data,tmp}cd /data/kafka_datarm -rf conf/mv /usr/local/kafka/config ./confln -s /data/kafka_data/conf /usr/local/kafka/configcd /usr/local/kafka/configmv zookeeper.properties /data/zk_data/conf/ln -s /data/zk_data/conf/zookeeper.properties zookeeper.propertiesmkdir -p /data/logs/kafkaln -s /data/logs/kafka /usr/local/kafka/logsmkdir -p /data/logs/zk
七、修改配置文件
(一) zookeeper
cd /usr/local/kafka/config/cat <<EOF | tee zookeeper.propertiesdataDir=/data/zk_data/datadataLogDir=/data/logs/zkclientPort=2181maxClientCnxns=60admin.serverPort=0EOFecho "1" > /data/zk_data/data/myid
(二) kafka
cd /usr/local/kafka/config/cat <<EOF | teeserver.propertiesbroker.id=3listeners=PLAINTEXT://127.0.0.35:9092advertised.listeners=PLAINTEXT://127.0.0.35:9092num.network.threads=8num.io.threads=8socket.send.buffer.bytes=102400socket.receive.buffer.bytes=102400socket.request.max.bytes=104857600log.dirs=/data/kafka_data/datadefault.replication.factor=3num.partitions=3num.recovery.threads.per.data.dir=1offsets.topic.replication.factor=3transaction.state.log.replication.factor=1transaction.state.log.min.isr=1log.retention.hours=168log.retention.check.interval.ms=300000zookeeper.connect=127.0.0.35:2181zookeeper.connection.timeout.ms=18000group.initial.rebalance.delay.ms=0EOF
八、创建服务
(一) zookeeper
cd /data/zk_data/cat <<EOF | teezookeeper.service[Unit]Description=ZookeeperAfter=network.target[Service]User=opsEnvironment=JAVA_HOME=/usr/local/jdkWorkingDirectory=/usr/local/kafkaExecStart=/bin/bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.propertiesExecStop=/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.shPIDFile=/data/zk_data/tmp/zookeeper.pidRestart=on-failureRestartSec=10SuccessExitStatus=143StandardInput=nullStandardOutput=nullStandardError=null[Install]WantedBy=multi-user.targetEOFyes | cp zookeeper.service /usr/lib/systemd/system/
(二) kafka
cd /data/kafka_data/cat <<EOF | teekafka.service[Unit]Description=KafkaAfter=network.target[Service]User=opsEnvironment=JAVA_HOME=/usr/local/jdkWorkingDirectory=/usr/local/kafkaExecStart=/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.propertiesExecStop=/bin/bash /usr/local/kafka/bin/kafka-server-stop.shPIDFile=/data/kafka_data/tmp/kafka.pidRestart=on-failureRestartSec=10SuccessExitStatus=143StandardInput=nullStandardOutput=nullStandardError=null[Install]WantedBy=multi-user.targetEOFyes | cp kafka.service /usr/lib/systemd/system/
九、修改目录权限
如果使用 root 用户权限的话,跳过此步骤。例如,本文档使用 ops 用户。
chown -R ops.ops /data/logs/zk/chown -R ops.ops /data/logs/kafka/chown -R ops.ops /data/zk_data/chown -R ops.ops /data/kafka_data/chown -R ops.ops /usr/local/kafka_2.12-3.4.0/
十、启动服务
(一) zookeeper
systemctl daemon-reloadsystemctl enable zookeeper --nowsystemctl status zookeeper
(二) kafka
systemctl daemon-reloadsystemctl enable kafka --nowsystemctl status kafka
夜雨聆风
