kafka集群环境搭建

时间:2020-12-22 12:10:50

kafka集群环境搭建

作者:链上研发-老杨叔叔


最好的集成环境搭建文章:
本文档完全临摹自此文章

还不错的原理讲解

抄一遍:本搭建环境基于zookeeper 3.4.6,和kafka 0.10.0.0

1.说明

kafka集群依赖zookeeper,因此需要先安装zookeeper;
不过kafka本身也集也了zookeeper,但最好不要使用自带的。

2.zookeeper安装

  • 2.1 服务器

    A测试服务器上:10.8.1.160/home/fangyuan/kafka
    B测试服务器上:10.8.1.93/home/tomcat/kafka

  • 2.2 安装

    每台机器都有以下操作(或配置一台,复制到其它机器)

    • 2.2.1 安装jdk

      已存在,不需要安装

    • 2.2.2 下载zookeeper

          cd /home/fangyuan
      mkdir kafka #与kafka相关的根目录

      cd /home/fangyuan/kafka
      mkdir zookeeper #zookeeper项目目录

      cd /home/fangyuan/kafka/zookeeper
      mkdir zkdata #存放快照日志
      mkdir zkdatalog#存放事物日志

      下载软件
      cd /home/fangyuan/kafka/zookeeper

      wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz


      解压软件
      tar -zxvf zookeeper-3.4.6.tar.gz
    • 2.2.3 配置zookeeper

        cd /home/fangyuan/kafka/zookeeper/zookeeper-3.4.6/conf

      zoo_sample.cfg
      这个文件是官方给我们的zookeeper的样板文件,给他复制一份命名为zoo.cfg,zoo.cfg是官方指定的文件命名规则。

      复制文件:
      cp zoo_sample.cfg zoo.cfg

      打开文件:
      vi zoo.cfg


      配置:

      tickTime=2000
      initLimit=10
      syncLimit=5
      dataDir=/home/fangyuan/kafka/zookeeper/zkdata
      dataLogDir=/home/fangyuan/kafka/zookeeper/zkdatalog
      clientPort=12181
      server.1=10.8.1.93:12888:13888
      server.2=10.8.1.160:12888:13888


      server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
      192.168.7.107为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888


      创建myid文件
      10.8.1.160上创建如下,让zookeeper知道自己在哪台机器上(类型域名,通过个面的serve.1找到对应的ip)
      echo "1" > /home/fangyuan/kafka/zookeeper/zkdata/myid

      10.8.1.93上创建93上的myid
  • 2.2.4 启动zookeeper

    进入到Zookeeper的bin目录下
cd /home/fangyuan/kafka/zookeeper/zookeeper-3.4.6/bin

启动服务(3台都需要操作)
./zkServer.sh start

检查服务器状态
./zkServer.sh status
显示如下:(如果Mode显示,等一会儿,重新执行status命令,有可能zookeeper还没完全启动)
JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower #他是否为领导

执行jps,查看进程,如果显示zookeeper则说明启动成功

3.kafka安装

  • 3.1 kafka下载

    • 3.1.1软件环境

      1、linux一台或多台,大于等于2
      2、已经搭建好的zookeeper集群
      3、软件版本kafka_2.11-0.10.0.0.tgz
      2、创建目录并下载安装软件

    • 3.1.2创建目录

      cd /home/fangyuang/kafka
      mkdir kafka #创建项目目录

      cd kafka
      mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息
    • 3.1.下载解压

      wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz

      解压软件
      tar -zxvf kafka_2.11-0.10.0.0.tgz
  • 3.2 修改配置文件


    #进入config目录

    cd /home/fangyuang/kafka/kafka/kafka_2.11-0.10.0.0/config/

    #打开配置文件

    vi server.properties


    #修改配置文件


    #broker.id=0 注释掉,每台服务器的broker.id都不能相同,


    #hostname 本机ip

    host.name=10.8.1.160
    port=19092 #不指定默认是9092

    #在log.retention.hours=168 下面新增下面三项

    message.max.byte=5242880
    default.replication.factor=2
    replica.fetch.max.bytes=5242880

    #设置zookeeper的连接端口

    zookeeper.connect=10.8.1.160:12181,10.8.1.93:12181

作者:链上研发-老杨叔叔
版权声明:本文为链家上海研发中心原创文章,转载请注明出处。

  • 3.3启动

    从后台启动Kafka集群(3台都需要启动)

    cd /home/fangyuang/kafka/kafka/kafka_2.11-0.10.0.0/bin

    ./kafka-server-start.sh -daemon ../config/server.properties

    检查服务是否启动,如果显示kafka进程即启动成功
    运行:> jps
  • 3.4检证

    创建Topic来验证是否创建成功
    创建Topic

    ./kafka-topics.sh --create --zookeeper 10.8.1.160:12181 --replication-factor 2 --partitions 1 --topic my-topic

    解释
    --replication-factor 2 #复制两份
    --partitions 1 #创建1个分区
    --topic #主题为my-topic
    -- ip??


    在一台服务器上创建一个发布者
    创建一个broker,发布者(ip??,端口??)
    ./kafka-console-producer.sh --broker-list 10.8.1.160:19092 --topic my-topic

    此时:console处于阻塞状态,可以直接输入数据。

    在一台服务器上创建一个订阅者
    ./kafka-console-consumer.sh --zookeeper localhost:12181 --topic my-topic --from-beginning

    此时:一旦有数据生成,此处的console中会显示数据

4.监控

KafkaOffsetMonitor
http://www.cnblogs.com/yinchengzhe/p/5123515.html

http://top.jobbole.com/31084/

http://my.oschina.net/cjun/blog/514956