Kafka
相关链接
RHEL - 安装部署
安装目录示例
bash
|---data --
|---|---app --
|---|---|---data --
|---|---|---|---kafka -- Kafka数据目录
|---|---|---|---|---node-1 -- Kafka节点一日志目录
|---|---|---|---|---node-2 -- Kafka节点二日志目录
|---|---|---tools --
|---|---|---|---kafka -- Kafka安装目录
解压缩到安装目录下
bash
# 创建安装目录和日志目录
sudo mkdir -p /data/app/tools/kafka
sudo mkdir -p /data/app/data/kafka/node-1
sudo mkdir -p /data/app/data/kafka/node-2
# 解压缩后复制到安装目录
tar zxvf kafka_2.13-3.7.0.tgz
mv ./kafka_2.13-3.7.0/** /data/app/tools/kafka
设置环境变量
shell
# 创建一个环境变量
sudo vi /etc/profile.d/kafka.sh
# 添加以下环境变量
export KAFKA_HOME=/data/app/tools/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# 加载环境变量
source /etc/profile.d/kafka.sh
修改配置文件,配置集群节点信息
bash
# 复制配置文件
sudo cp /data/app/tools/kafka/config/kraft/server.properties /data/app/tools/kafka/config/kraft/server-1.properties
sudo cp /data/app/tools/kafka/config/kraft/server.properties /data/app/tools/kafka/config/kraft/server-2.properties
# 编辑节点一配置文件
sudo vi /data/app/tools/kafka/config/kraft/server-1.properties
# 编辑节点二配置文件
sudo vi /data/app/tools/kafka/config/kraft/server-2.properties
节点一主要修改配置项如下
bash
node.id=1
log.dirs=/data/app/data/kafka/node-1
num.partitions=2
节点二主要修改配置项如下
bash
node.id=2
log.dirs=/data/app/data/kafka/node-2
完成集群初始化
bash
# 进入安装目录
cd /data/app/tools/kafka/bin
# 生成集群标识
sh kafka-storage.sh random-uuid
# 格式化节点一目录
sh kafka-storage.sh format -t YKCQgip5SaiwBWXY04sKXw -c /data/app/tools/kafka/config/kraft/server-1.properties --ignore-formatted
# 格式化节点二目录
sh kafka-storage.sh format -t YKCQgip5SaiwBWXY04sKXw -c /data/app/tools/kafka/config/kraft/server-2.properties --ignore-formatted
# 启动节点一
sh kafka-server-start.sh -daemon /data/app/tools/kafka/config/kraft/server-1.properties
# 启动节点二
sh kafka-server-start.sh -daemon /data/app/tools/kafka/config/kraft/server-2.properties
# 查看是否启动成功
jps
# 停止服务
sh kafka-server-stop.sh
创建启动脚本
bash
# 创建启动脚本
sudo vi /data/app/tools/start-kafka.sh
内容如下
bash
#!/bin/sh
export KAFKA_HOME=/data/app/tools/kafka
export PATH="$KAFKA_HOME/bin:$PATH"
# Start Kafka 1
echo Starting Kafka 1......
$KAFKA_HOME/bin/kafka-server-start.sh -daemon "$KAFKA_HOME/config/kraft/server-1.properties"
# Start Kafka 2
echo Starting Kafka 2......
$KAFKA_HOME/bin/kafka-server-start.sh -daemon "$KAFKA_HOME/config/kraft/server-2.properties"
创建停止脚本
bash
# 创建启动脚本
sudo vi /data/app/tools/stop-kafka.sh
内容如下
bash
#!/bin/sh
export KAFKA_HOME=/data/app/tools/kafka
export PATH="$KAFKA_HOME/bin:$PATH"
# Stop Kafka
echo Stop Kafka......
$KAFKA_HOME/bin/kafka-server-stop.sh
创建系统服务
shell
sudo rm -rf /lib/systemd/system/kafka.service
sudo vi /lib/systemd/system/kafka.service
shell
[Unit]
Description=Kafka Server
After=network.target
[Service]
Type=simple
ExecStart=/data/app/tools/start-kafka.sh
ExecStop=/data/app/tools/stop-kafka.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
bash
# 开机启动
sudo systemctl enable kafka.service
# 查看状态
sudo systemctl status kafka.service
# 启动服务
sudo systemctl start kafka.service
# 关闭服务
sudo systemctl stop kafka.service
# 禁用开机启动服务
sudo systemctl disable kafka.service
# 修改配置文件后重启启动服务
sudo systemctl daemon-reload
sudo systemctl restart kafka.service
# 检查端口确认是否已启动
sudo netstat -lanp | grep 9092
sudo netstat -lanp | grep 9093
# 查看进程
sudo ps -ef | grep kafka
MacOS - 安装部署
安装目录
bash
|---~
|---|---Tools --
|---|---|---Kafka --
|---|---|---|---logs -- Kafka日志目录
|---|---|---|---server -- Kafka安装目录
修改配置文件
bash
log.dirs=/Users/elvea/Tools/kafka/logs
解压缩到安装目录下
bash
# 创建安装目录和日志目录
mkdir -p /Users/elvea/Tools/kafka/server
mkdir -p /Users/elvea/Tools/kafka/data/node-1
mkdir -p /Users/elvea/Tools/kafka/data/node-2
# 解压缩后复制到安装目录
tar zxvf kafka_2.13-3.7.0.tgz
mv ./kafka_2.13-3.7.0/** /Users/elvea/Tools/kafka/server
#
cp /Users/elvea/Tools/kafka/server/config/kraft/server.properties /Users/elvea/Tools/kafka/server/config/kraft/server-1.properties
cp /Users/elvea/Tools/kafka/server/config/kraft/server.properties /Users/elvea/Tools/kafka/server/config/kraft/server-2.properties
修改节点一配置文件
bash
log.dirs=/Users/elvea/Tools/kafka/data/node-1
修改节点二配置文件
bash
log.dirs=/Users/elvea/Tools/kafka/data/node-2
手工启动
bash
# 进入安装目录
cd /Users/elvea/Tools/kafka/server/bin
# 生成集群标识
sh kafka-storage.sh random-uuid
# 格式化
sh kafka-storage.sh format -t GvF4_OPpQpmtH9pFPjraag -c /Users/elvea/Tools/kafka/server/config/kraft/server.properties --ignore-formatted
# 启动集群
sh kafka-server-start.sh -daemon /Users/elvea/Tools/kafka/server/config/kraft/server.properties
sh kafka-server-start.sh /Users/elvea/Tools/kafka/server/config/kraft/server.properties
# 停止服务
sh kafka-server-stop.sh
#
kafka-topics.sh --bootstrap-server localhost:9092 --list
创建启动脚本,并加入环境变量
bash
#!/bin/sh
########################################################################################################################
# Kafka
########################################################################################################################
export KAFKA_HOME=~/Tools/kafka/server
export PATH="$KAFKA_HOME/bin:$PATH"
#
echo "Current Kafka Home - $KAFKA_HOME"
# Generate Cluster ID
KAFKA_CLUSTER_ID="$($KAFKA_HOME/bin/kafka-storage.sh random-uuid)"
echo "UUID - $KAFKA_CLUSTER_ID"
# Stop Kafka
echo Stop Kafka......
$KAFKA_HOME/bin/kafka-server-stop.sh
# Format Log
echo Format Log Directories......
$KAFKA_HOME/bin/kafka-storage.sh format -t "$KAFKA_CLUSTER_ID" -c "$KAFKA_HOME/config/kraft/server.properties" --ignore-formatted
# Start Kafka
echo Starting Kafka......
$KAFKA_HOME/bin/kafka-server-start.sh "$KAFKA_HOME/config/kraft/server.properties"
测试
bash
#
kafka-topics.sh --create --topic kraft-test --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
#
kafka-topics.sh --bootstrap-server localhost:9092 --list
Windows - 安装部署
理论上可以,实际上有很多问题,建议在WSL中安装
安装目录
bash
|---D
|---|---Tools
|---|---|---Kafka
|---|---|---|---Logs -- Kafka数据目录
|---|---|---|---Server -- Kafka安装目录
|---|---|---|---UI -- Kafka工具目录
修改配置文件
bash
log.dirs=D:\\Tools\\Kafka\\Logs
手工设置
shell
# 进入安装目录
cd D:\Tools\Kafka\Server\bin\windows
# 生成集群表示
kafka-storage.bat random-uuid
# 格式化
kafka-storage.bat format -t 9-Ct0IOaR76FqjZzbg-8Iw -c ..\..\config\kraft\server.properties --ignore-formatted
# 启动
kafka-server-start.bat ..\..\config\kraft\server.properties
手工启动
bash
#
kafka-storage.sh format -t "$KAFKA_CLUSTER_ID" -c "$KAFKA_HOME/config/kraft/server.properties" --ignore-formatted
#
kafka-topics.sh --bootstrap-server localhost:9092 --list
创建启动脚本,并加入环境变量
shell
@echo off
rem ##############################################################################
rem Kafka
rem ##############################################################################
setLocal
set KAFKA_HOME=D:\Tools\Kafka
rem Generate Cluster ID
echo Generate Cluster ID......
call %KAFKA_HOME%\bin\windows\kafka-storage.bat random-uuid > uuid.txt
set /p KAFKA_CLUSTER_ID= < uuid.txt
echo UUID - %KAFKA_CLUSTER_ID%
rem Stop Kafka
echo Stop Kafka......
call %KAFKA_HOME%\bin\windows\kafka-server-stop.bat
rem Start Kraft
echo Starting Kraft......
call %KAFKA_HOME%\bin\windows\kafka-storage.bat format -t %KAFKA_CLUSTER_ID% -c "%KAFKA_HOME%\config\kraft\server.properties" --ignore-formatted
rem Start Kafka
echo Starting Kafka......
call %KAFKA_HOME%\bin\windows\kafka-server-start.bat "%KAFKA_HOME%\config\kraft\server.properties"
rem Clean
del uuid.txt
endLocal
测试
bash
#
kafka-topics.sh --create --topic kraft-test --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
#
kafka-topics.sh --bootstrap-server localhost:9092 --list