侧边栏壁纸
博主头像
故黎

陈雯是小猪

  • 累计撰写 29 篇文章
  • 累计创建 5 个标签
  • 累计收到 7 条评论
标签搜索

Kafka 集群搭建

故黎
2019-06-03 / 0 评论 / 0 点赞 / 1,003 阅读 / 2,606 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-12-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

环境简介

  1. 本地启动三台Centos7.6虚拟机模拟集群环境
  2. 请确保虚拟机已安装Jdk8或以上,并成功配置了环境变量
  3. Kafka版本为kafka_2.12-2.1.0

配置免密登录

  1. 进入到.ssh文件夹中,如果没有就自己创建该文件夹,生成公钥私钥ssh-keygen -t rsa 对于提示 一路回车

  2. 将生成的公钥 id_rsa.pub 追加到 authorized_keys文件中,cat id_rsa.pub >> authorized_keys这里需要注意修改authorized_keys文件的权限:
    chmod 600 authorized_keys

  3. 配置完成后本地测试一下,如果没有提示输入密码则配置成功
    ssh localhost

  4. 对于分布式环境,只需要把对应的公钥放到目标机器的authorized_keys里面即可免密登录

    我们要注意,.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。否则会因为权限问题导致无法免密码登录。我们可以看到登陆后会有known_hosts文件生成。

Zookeeper安装

  1. 下载zookeeper: https://mirrors.cnnic.cn/apache/zookeeper/
  2. 解压: tar xvf zookeeper-3.4.13.tar.gz
  3. 修改配置文件:
    1. dataDir=/opt/data/zookeeper/data
      存储快照文件的目录,默认情况下, 事务日志也会存储在该dataDir目录上。由于事务日志 的写性能直接影响 ZooKeeper 性能,因此建议同时配置参数 dataLogDir:
     dataLogDir=/opt/data/zookeeper/logs
    
    1. 集群配直。首先在 3 台机器的/etc/hosts 文件中加入 3 台机器 的 IP 与机器域名映射, 域名自定义, 这里分别命名为 server-I、 server-2、 server-3, 3 台机器 IP与机器域名映射关 系如下:
      10..55.4|server-1
      10.xxx.55.5|server-2
      10.xxx.55.6|server-3
      进入其中一台机器的Zookeeper安装路径conf,添加

       server.1=server-1:2888:3888
       server.2=server-2:2888:3888
       server.3=server-3:2888:3888
      

      端口号2888表示该服务器与集群中leader交换信息的端口,默认为2888, 3888表示选举时服务器相互通信的端口。

    2. 接着在$路径下创建一个myid文件,myid存放的值就是服务器的编号,即对应上面的1、2、3。ZooKeeper在启动时会读取 myid文件中的值与zoo.cfg文件中的配置信息进行比较,以确定是哪台服务器。

    3. 将配置好的zoo.cfg拷贝到其他两台机器,并分别创建对应的myid,为了操作方便,我们可以将Zookeeper相关环境变量添到/etc/profile文件中,如:
      export ZOOKEEPER_HOME=/home/lmf/software/zookeeper-3.4.13
      PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin

    4. 验证

       zkServer.sh start
       zkServer.sh status
      

      输出下面类似结果表示安装成功

       ZooKeeper JMX enabled by default
       Using config: /home/lmf/software/zookeeper-3.4.13/bin/../conf/zoo.cfg
       Mode: follower
      

注意:centos7默认使用firewall作为防火墙,并默认开启,在启动zk时需要关闭防护墙,不然无法通信,
查看防火墙状态: firewall-cmd --state
停止防火墙: systemctl stop firewalld.service
禁止防火墙开机启动:systemctl disable firewalld.service

kafka安装

  1. 下载 http://kafka.apache.org/downloads
    当前 Kafka 最新版本为kafka_2.12-2.1.0.tgz,其中 2.12 代表 Scala 版本, 2.1.0 表示 Kafka 的版本

  2. 解压安装 tar xvf kafka_2.12-2.1.0.tgz, 为了操作方便,这里我们对kafka的环境变量进行设置, 在/etc/profile 文件中加入kafka的安装路径,

    export KAFKA_HOME=/home/lmf/software/kafka_2.12-2.1.0
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin
    
  3. 修改配置 。修改$KAFKA_HOME/config 目录下的 server.properties文件,为了便于后续集群环境搭建的配置,需要保证同一个集群下broker.id要唯一,因此这里手动配置broker.id,直接保持ZooKeeper的myid值一致,同时配置日志存储路径。server.properties修改的配置 如下:

    broker.id=l #指定代理的 id
    log.dirs=/opt/data/kafka- logs #指定 Log 存储路径
    zookeeper.connect=server-1:2181,server-2:2181,server-3:2181
    

    在三台机器上分别修改配置文件server.properties, 并修改对应的broker.id.

  4. 启动
    kafka-server-start.sh -daemon ../config/server.properties
    执行jps命令查看Java进程,此时进程信息至少包括以下几项:

    	15976 Jps
    	14999 QuorumPeerMain
    	15906 Kafka
    
  5. 通过 ZooKeeper客户端登录ZooKeeper查看目录结构,执行以下命令:

    zkCli.sh -server server 1:2181 #登录 ZooKeeper
    ls / #查看 ZooKeeper 目录结构
    ls /brokers/ ids  输出 [1, 2, 3]
    

    由/brokers/ids 节点存储的元数据可知, 3台机器的 Kafka 均已正常己启动。至此, Kafka 分布式环境搭建过程介绍完毕。

0

评论区