一 整体步骤

  • hosts配置
  • 安装配置Zookeeper
  • Kafka集群搭建

二 配置Hosts

  • 修改hosts文件

    1sudo vi /etc/hosts
    2
    3# 配置如下
    4127.0.0.1   localhost
    5192.168.0.100 master
    6192.168.0.101 slave1
    7192.168.0.102 slave2
    

三 安装配置Zookeeper

  • 下载解压

    1# 使用wget或本地下载后传到服务器
    2cd /home/
    3sudo mkdir zookeeper
    4cd /home/zookeeper
    5sudo wget https://dlcdn.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
    6sudo tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
    
  • 配置环境变量

    1# 修改三台主机
    2# sudo vi /etc/profile
    3
    4# 添加环境变量
    5export ZOOKEEPER_HOME=/home/zookeeper/apache-zookeeper-3.5.9-bin
    6export PATH=$ZOOKEEPER_HOME/bin:$PATH
    7
    8source /etc/profile
    
  • 创建目录

    1cd apache-zookeeper-3.5.9-bin
    2sudo mkdir data
    3sudo mkdir logs
    
  • 修改配置

     1cd conf
     2sudo cp zoo_sample.cfg zoo.cfg
     3sudo vi zoo.cfg
     4
     5tickTime=2000
     6initLimit=10
     7syncLimit=5
     8dataDir=/home/zookeeper/apache-zookeeper-3.5.9-bin/data
     9dataLogDir=/home/zookeeper/apache-zookeeper-3.5.9-bin/logs
    10clientPort=2181
    11
    12# 如果为当前主机,则修改为0.0.0.0
    13server.1=master:2287:3387
    14server.2=slave1:2287:3387
    15server.3=slave2:2287:3387
    
  • 创建myid文件

    在各服务器节点(masterslave1slave2)的 dataDir 目录下创建名为 myid 的文件,在文件第一行写上对应的 Server id

    1master:
    2echo "1" > myid
    3slave1:
    4echo "2" > myid
    5slave2:
    6echo "3" > myid
    
  • 启动测试

    启动顺序决定leadert,follower

    1# 分别在三台主机上
    2cd /home/zookeeper/apache-zookeeper-3.5.9-bin/bin/
    3zkServer.sh start
    4
    5# 集群验证
    6# 查看状态(需全部节点启动)
    7zkServer.sh status
    
  • 基本命令

    1# 停止
    2zkServer.sh stop
    

四 KafKa 集群搭建

  • 下载解压

    注意选择版本时,选择Binary downloads,不要选择Source download!!!否则启动时会提示Could not find or load main class kafka.Kafka,此时需要编译后才可以使用 。

    1cd /home
    2mkdir Kafka
    3cd Kafka
    4mkdir data
    5sudo wget https://archive.apache.org/dist/kafka/3.0.0/kafka_2.12-3.0.0.tgz
    6tar -xzf kafka_2.12-3.0.0.tgz
    
  • 修改配置

     1cd kafka_2.12-3.0.0/config
     2vi server.properties
     3
     4# 节点1
     5# 群中每个节点的唯一标识
     6broker.id=0
     7# 监听地址
     8listeners=PLAINTEXT://master:9092
     9# 数据的存储位置
    10log.dirs=/home/Kafka/data
    11# Zookeeper连接地址
    12zookeeper.connect=master:2181,slave1:2181,slave2:2181
    13
    14# 节点2
    15broker.id=1
    16listeners=PLAINTEXT://slave1:9092
    17log.dirs=/home/Kafka/data
    18zookeeper.connect=master:2181,slave1:2181,slave2:2181
    19
    20# 节点3
    21broker.id=2
    22listeners=PLAINTEXT://slave2:9092
    23log.dirs=/home/Kafka/data
    24zookeeper.connect=master:2181,slave1:2181,slave2:2181
    
  • 启动

    1# 三节点分别运行启动
    2cd /home/Kafka/kafka_2.12-3.0.0
    3bin/kafka-server-start.sh -daemon config/server.properties 
    
  • 测试

    1bin/kafka-topics.sh --create --bootstrap-server master:9092 --replication-factor 1 --partitions 1 --topic test
    2
    3bin/kafka-topics.sh --list --bootstrap-server master:9092
    4bin/kafka-topics.sh --describe --bootstrap-server master:9092 --topic test