基于Zookeeper搭建Kafka高可用集群

    技术2022-07-11  87

    基于Zookeeper搭建Kafka高可用集群

    一、Zookeeper集群搭建

    java安装参考: Linux下JDK的安装

    zookeepe安装参考:Zookeeper单机环境和集群环境搭建

    二、Kafka集群搭建

    2.1 下载解压

    Kafka 安装包官方下载地址:http://kafka.apache.org/downloads ,本用例下载的版本为 2.4.1,下载命令:

    # 下载 wget https://www-eu.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz # 解压 tar -xzf kafka_2.11-2.4.1.tgz -C /opt/

    这里解释一下 kafka 安装包的命名规则:以 kafka_2.11-2.4.1.tgz 为例,前面的 2.11 代表 Scala 的版本号(Kafka 采用 Scala 语言进行开发),后面的 2.4.1 则代表 Kafka 的版本号。

    2.2 设置环境变量

    在 hadoop-nn-01、hadoop-nn-02、hadoop-dn-01 三台机器设置环境变量

    vi /etc/profile

    添加:

    export KAFKA_HOME=/opt/kafka_2.11-2.4.1 export PATH= K A F K A H O M E / b i n : KAFKA_HOME/bin: KAFKAHOME/bin:PATH

    执行source /etc/profile

    2.3 修改配置

    # 将安装包分发到hadoop-nn-02 scp -r /opt/kafka_2.11-2.4.1/ hadoop-nn-02:/opt/ # 将安装包分发到hadoop-dn-01 scp -r /opt/kafka_2.11-2.4.1/ hadoop-dn-01:/opt/

    分别修改三份配置文件中的部分配置,如下:

    server.properties:

    hadoop-nn-01:

    broker.id=1 listeners=PLAINTEXT://192.168.73.130:9092 log.dirs=/data/kafka/kafka-logs zookeeper.connect=hadoop-nn-01:2181,hadoop-nn-02:2181,hadoop-dn-01:2181

    hadoop-nn-02:

    broker.id=2 listeners=PLAINTEXT://192.168.73.131:9092 log.dirs=/data/kafka/kafka-logs zookeeper.connect=hadoop-nn-01:2181,hadoop-nn-02:2181,hadoop-dn-01:2181

    hadoop-dn-01:

    broker.id=3 listeners=PLAINTEXT://192.168.73.132:9092 log.dirs=/data/kafka/kafka-logs zookeeper.connect=hadoop-nn-01:2181,hadoop-nn-02:2181,hadoop-dn-01:2181

    2.4 启动集群

    在 hadoop-nn-01、hadoop-nn-02、hadoop-dn-01 执行:

    nohup /opt/kafka_2.11-2.4.1/bin/kafka-server-start.sh /opt/kafka_2.11-2.4.1/config/server.properties >/data/kafka/kafka.out 2>&1 &

    停止kafka 可以执行

    ps -ef|grep kafka|grep -v grep|awk '{print "kill -9", $2}'|sh

    2.5 创建

    执行jps -m可以看到

    [hadoop@hadoop-nn-01 opt]$ jps -m 40439 Jps -m 1884 QuorumPeerMain /home/hadoop/zookeeper-3.4.14/conf/zoo.cfg 11263 Kafka /opt/kafka_2.11-2.4.1/config/server.properties

    创建topic

    kafka-topics.sh --create --bootstrap-server 192.168.73.130:9092,192.168.73.131:9092,192.168.73.132:9092 --replication-factor 3 --partitions 3 --topic test

    显示所有topic

    kafka-topics.sh --list --bootstrap-server 192.168.73.130:9092,192.168.73.131:9092,192.168.73.132:9092

    查看topic详情

    [hadoop@hadoop-dn-01 scripts]$ kafka-topics.sh --bootstrap-server 192.168.73.130:9092,192.168.73.131:9092,192.168.73.132:9092 --describe --topic test Topic: test PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824 Topic: test Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1 Topic: test Partition: 1 Leader: 1 Replicas: 1,3,2 Isr: 3,2,1 Topic: test Partition: 2 Leader: 2 Replicas: 2,1,3 Isr: 2,3,1

    生产者发布消息

    kafka-console-producer.sh --broker-list 192.168.73.130:9092,192.168.73.131:9092,192.168.73.132:9092 --topic test

    消费者消费消息

    kafka-console-consumer.sh --bootstrap-server 192.168.73.130:9092,192.168.73.131:9092,192.168.73.132:9092 --from-beginning --topic test

    参考: 基于Zookeeper搭建Kafka高可用集群

    Kafka集群的安装和部署

    kafka运行内存不足问题解决

    Processed: 0.014, SQL: 9