当前位置:   article > 正文

Kafka教程_yum install kafka

yum install kafka

一、单机部署Kafka

1 、安装java

yum install java-1.8.0-openjdk-devel  -y 
java -version
  • 1
  • 2

在这里插入图片描述

2 、下载kafka

cd /opt/src
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.12-3.6.0.tgz
tar   -xf kafka_2.12-3.6.0.tgz  -C /opt/lucky/apps/
cd /opt/lucky/apps/
mv kafka_2.12-3.6.0 kafka
  • 1
  • 2
  • 3
  • 4
  • 5

3 、启动zookeeper

启动kafka之前要先启动zookeeper服务器

/opt/lucky/apps/kafka/bin/zookeeper-server-start.sh   -daemon  /opt/lucky/apps/kafka/config/zookeeper.properties
  • 1

4 、修改kafka配置文件

vim /opt/lucky/apps/kafka/config/server.properties
  • 1

server.properties配置中需要关注以下几个参数:

对外提供的服务入口地址
listeners=PLAINTEXT:本机的IP地址//:9094

设置存放消息日志的地址
log.dirs=/opt/lucky/apps/kafka/logs

kafka所需的zookeeper的集群地址
单机点的基本都是写本机地址
zookeeper.connect=localhost:2181

表示broker的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同
当前是单节点所以就使用默认
broker.id=0
在这里插入图片描述

5、运行Kafka服务

/opt/lucky/apps/kafka/bin/kafka-server-start.sh /opt/lucky/apps/kafka/config/server.properties
  • 1

如果要在后台运行Kafka服务,那么可以在启动命令中加入-daemon参数或&字符

/opt/lucky/apps/kafka/bin/kafka-server-start.sh -daemon /opt/lucky/apps/kafka/config/server.properties
  • 1

6、检查服务

在这里插入图片描述
在这里插入图片描述
通过命令的输出,可以看到以下进程:

Jps (Java Virtual Machine Process Status Tool): 用于显示正在运行的 Java 进程的工具。

Kafka: Kafka 服务的进程。

QuorumPeerMain: 这是 ZooKeeper 服务的主要进程。

这表明 Kafka 和 ZooKeeper 进程都在运行中。如果您没有看到错误消息,并且状态显示为运行中,那么 Kafka 和 ZooKeeper 服务都已经正常启动。

7、使用systemd启动(可选)

7.1写进 systemd 服务单元文件中

vim /etc/systemd/system/kafka-zookeeper.service
  • 1
[Unit]
Description=Kafka and Zookeeper Service
After=network.target

[Service]
User=root
Group=root
Type=forking
ExecStart=/bin/bash -c '/opt/lucky/apps/kafka/bin/zookeeper-server-start.sh -daemon /opt/lucky/apps/kafka/config/zookeeper.properties && /opt/lucky/apps/kafka/bin/kafka-server-start.sh -daemon /opt/lucky/apps/kafka/config/server.properties'
ExecStop=/bin/bash -c '/opt/lucky/apps/kafka/bin/kafka-server-stop.sh && /opt/lucky/apps/kafka/bin/zookeeper-server-stop.sh'
TimeoutStartSec=600

[Install]
WantedBy=default.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

7.2重新加载 systemd 配置

systemctl daemon-reload
  • 1

7.3启动 Kafka 和 Zookeeper 服务

systemctl start kafka-zookeeper
systemctl enable kafka-zookeeper
systemctl status kafka-zookeeper
  • 1
  • 2
  • 3

二、单台服务器单实例和多实例脚本安装

#!/bin/bash
read -p "单机还是多实例? 1为单, 2为多实例:" h
ip=$(curl -s ifconfig.me)
install_dir="/opt/lucky/apps"
src_dir="/opt/src"
service_name="kafka-zookeeper"

install_openjdk() {
    echo "正在安装 OpenJDK..."
    yum install java-1.8.0-openjdk-devel -y
    java -version
}

download_and_extract_kafka() {
    echo "正在下载和解压 Kafka..."
    cd $src_dir || exit 1
    wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.12-3.6.0.tgz || exit 1
    tar -xf kafka_2.12-3.6.0.tgz -C $install_dir || exit 1
    cd $install_dir || exit 1
    mv kafka_2.12-3.6.0 kafka
}

configure_and_start_single_instance() {
    echo "配置单实例 Kafka..."
    # 启动zookeeper
    $install_dir/kafka/bin/zookeeper-server-start.sh -daemon $install_dir/kafka/config/zookeeper.properties || exit 1

    sed -i "/log.dirs/a\listeners = PLAINTEXT://$ip:9092" $install_dir/kafka/config/server.properties
    sed -i 's/log.dirs=\/tmp\/kafka-logs/log.dirs=\/opt\/lucky\/apps\/kafka\/logs/g' $install_dir/kafka/config/server.properties
}

configure_and_start_multiple_instances() {
    echo "配置多实例 Kafka..."
    cd $install_dir/kafka/config/ || exit 1

    read -p "需要多少个实例?" number
    for i in $(seq 2 $((number + 1))); do
        mkdir -p $install_dir/kafka/log_909$i
        cp server.properties ./server_909"$i".properties

        sed -i "/log.dirs/a\listeners = PLAINTEXT://$ip:909$i" $install_dir/kafka/config/server_909"$i".properties
        sed -i "s/log.dirs=\/tmp\/kafka-logs/log.dirs=\/opt\/lucky\/apps\/kafka\/log_909$i/g" $install_dir/kafka/config/server_909"$i".properties
        sed -i "s/2181/218$i/g" $install_dir/kafka/config/zookeeper_218"$i".properties

        $install_dir/kafka/bin/zookeeper-server-start.sh -daemon $install_dir/kafka/config/zookeeper_218"$i".properties || exit 1
    done
}

create_systemd_service() {
    echo "创建 systemd 服务..."
    cat <<EOF > /etc/systemd/system/$service_name.service
[Unit]
Description=Kafka and Zookeeper Service

[Service]
Type=simple
User=nobody
ExecStart=$install_dir/kafka/bin/zookeeper-server-start.sh -daemon $install_dir/kafka/config/zookeeper.properties
ExecStop=$install_dir/kafka/bin/zookeeper-server-stop.sh
ExecReload=$install_dir/kafka/bin/zookeeper-server-stop.sh && $install_dir/kafka/bin/zookeeper-server-start.sh -daemon $install_dir/kafka/config/zookeeper.properties

[Install]
WantedBy=multi-user.target
EOF
}

start_systemd_service() {
    echo "启动 systemd 服务..."
    systemctl start $service_name
    systemctl enable $service_name
    systemctl status $service_name
}

case $h in
    1) install_openjdk
       download_and_extract_kafka
       configure_and_start_single_instance
       create_systemd_service
       start_systemd_service
       ;;
    2) install_openjdk
       download_and_extract_kafka
       configure_and_start_multiple_instances
       create_systemd_service
       start_systemd_service
       ;;
    *) echo "输入错误"
       ;;
esac
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89

三、集群部署

本次实验使用两台服务器

172.16.11.1(kafka1)
172.16.11.2(kafka2)

1. 安装java(Kafka1操作)

yum install java-1.8.0-openjdk-devel  -y 
java -version
  • 1
  • 2

在这里插入图片描述

2 、下载kafka(Kafka1操作)

cd /opt/src
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.12-3.6.0.tgz
tar   -xf kafka_2.12-3.6.0.tgz  -C /opt/lucky/apps/
cd /opt/lucky/apps/
mv kafka_2.12-3.6.0 kafka
  • 1
  • 2
  • 3
  • 4
  • 5

3 、启动zookeeper(Kafka1操作)

启动kafka之前要先启动zookeeper服务器

/opt/lucky/apps/kafka/bin/zookeeper-server-start.sh   -daemon  /opt/lucky/apps/kafka/config/zookeeper.properties
  • 1

在这里插入图片描述

4 、修改kafka配置文件(Kafka1操作)

server.properties配置中需要关注以下几个参数:

vim /opt/lucky/apps/kafka/config/server.properties
  • 1

对外提供的服务入口地址

listeners=PLAINTEXT://172.16.11.1:9094
  • 1

在这里插入图片描述
设置存放消息日志的地址

log.dirs=/opt/lucky/apps/kafka/logs
  • 1

kafka所需的zookeeper的集群地址

zookeeper.connect=localhost:2181
  • 1

在这里插入图片描述
表示broker的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同
当前是单节点是第一个所以就使用默认
broker.id=0
在这里插入图片描述

5、启动Kafka服务(Kafka1操作)

/opt/lucky/apps/kafka/bin/kafka-server-start.sh  -daemon /opt/lucky/apps/kafka/config/server.properties
  • 1

在这里插入图片描述

6、检查服务

在这里插入图片描述
通过命令的输出,可以看到以下进程:
Jps (Java Virtual Machine Process Status Tool): 用于显示正在运行的 Java 进程的工具。
Kafka: Kafka 服务的进程。
QuorumPeerMain: 这是 ZooKeeper 服务的主要进程。
这表明 Kafka 和 ZooKeeper 进程都在运行中。如果您没有看到错误消息,并且状态显示为运行中,那么 Kafka 和 ZooKeeper 服务都已经正常启动。

至此第一台部署完毕

7、安装java(Kafka2操作)

yum install java-1.8.0-openjdk-devel  -y 
java -version
  • 1
  • 2

在这里插入图片描述

8、下载kafka(Kafka2操作)

cd /opt/src
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.12-3.6.0.tgz
tar   -xf kafka_2.12-3.6.0.tgz  -C /opt/lucky/apps/
cd /opt/lucky/apps/
mv kafka_2.12-3.6.0 kafka
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

9、修改kafka配置文件(Kafka2操作)

server.properties配置中需要关注以下几个参数,跟第一台的配置有所不同

vim /opt/lucky/apps/kafka/config/server.properties
  • 1

对外提供的服务入口地址

listeners=PLAINTEXT://172.16.11.2:9092
  • 1

在这里插入图片描述
设置存放消息日志的地址

log.dirs=/opt/lucky/apps/kafka/logs
  • 1

kafka所需的zookeeper的集群地址
这边填写第一台的IP

zookeeper.connect=172.16.11.1:2181
  • 1

在这里插入图片描述
表示broker的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同。
172.16.11.2属于第二台,所以要改一下默认的

broker.id=1
  • 1

在这里插入图片描述

10、运行Kafka服务(Kafka2操作)

/opt/lucky/apps/kafka/bin/kafka-server-start.sh -daemon /opt/lucky/apps/kafka/config/server.properties
  • 1

在这里插入图片描述
在这里插入图片描述
至此集群部署完毕!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/419097
推荐阅读
相关标签
  

闽ICP备14008679号