美文网首页
kafka集群搭建(自带Zookeeper)

kafka集群搭建(自带Zookeeper)

作者: Kandy | 来源:发表于2018-02-07 18:30 被阅读0次

    kafka简介

    kafka官网:http://kafka.apache.org/
    kafka下载页面:http://kafka.apache.org/downloads
    kafka配置快速入门:http://kafka.apache.org/quickstart
    新版本的kafka自带有zookeeper,本篇文章记录使用自带zookeeper搭建kafka集群。

    环境准备

    kafka版本:kafka_2.12-1.0.0
    三台主机IP 10.211.55.29、10.211.55.30、10.211.55.31

    配置工作

    1、修改hosts
    由于zookeeper是通过主机名通信的,我们需要需改hosts.
    编辑vim /etc/hosts
    1)保留前2行,其余的127.0.0.1注释掉

    127.0.0.1 localhost
    ::1 localhost
    

    2)添加三台机器的host绑定。
    如:

    10.211.55.29 kandy1
    10.211.55.30 kandy2
    10.211.55.31 kandy3 
    

    3)修改hostname:
    编辑vim /etc/sysconfig/network
    修改hostname为上述绑定中对应的名称
    如:
    HOSTNAME=kandy1
    三台机器都需要操作,重启后生效reboot
    2、kafka安装配置
    下载后解压kafka

    wget http://mirrors.shu.edu.cn/apache/kafka/1.0.0/kafka_2.12-1.0.0.tgz
    tar xzvf kafka_2.11-0.9.0.0.tgz  #解压
    

    自定义目录
    首先新建kafka的日志目录和zookeeper数据目录,因为这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以我们自定义两个目录:
    新增/var/kafka-logs和/data/zk目录(看个人心情修改)

    修改 server.properties
    进入kafka的config目录
    vim server.properties
    修改内容如下:

    1、broker.id=1       #保证每个broker唯一,第一台可以不修改默认为0,后面两台需要修改,如改为2和3
    2、num.partitions=3      #分区数量一般与broker保持一致
    3、listeners=PLAINTEXT://10.211.55.29:9092     #修改为本机ip
    4、zookeeper.connect=10.211.55.29:2181,10.211.55.30:2181,10.211.55.31:2181      #配置三台服务zookeeper连接地址
    5、host.name=10.211.55.29      #新增host.name值,分别设为不同的值(3台机器根据自己的ip设置)
    6、log.dirs=/var/kafka-logs/       #修改log.dirs目录为之前自定义的目录
    
    

    修改 zookeeper.properties
    vim zookeeper.properties
    修改内容如下:

    dataDir=/data/zk  #修改为自定义的目录
    #maxClientCnxns=0  #注释掉
    #设置连接参数,添加如下配置
    tickTime=2000
    initLimit=10
    syncLimit=5
    #设置broker Id的服务地址
    server.0=10.211.55.29:2888:3888
    server.1=10.211.55.30:2888:3888
    server.2=10.211.55.31:2888:3888
    
    

    zookeeper数据目录添加id配置
    在各台服务的zookeeper数据目录添加myid文件,写入服务broker.id属性值,如这里的目录是/data/zk
    第一台broker.id为1的服务到该目录下执行:

    echo 1 > myid
    

    其他两台机器分别新增.
    3、启动kafka
    kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper
    启动zookeeper:

    bin/zookeeper-server-start.sh config/zookeeper.properties &
    

    启动kafka:

    bin/kafka-server-start.sh config/server.properties &
    

    创建启动脚本(可选)
    进入bin目录
    新增文件
    vim start_zk.sh
    内容如下:

    #!/bin/bash
    dir=`pwd`
    echo $dir
    start() {
    cd $dir
    nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &
    echo -e '\r'
    } 
    start >> $dir/../logs/start_zk.log 2>> $dir/../logs/start_zk.log 
    

    保存赋权
    chmod +x start_zk.sh
    新增文件
    vim start_kfk.sh
    内容:

    [root@ycb-dev6 bin]# vim start_kfk.sh 
    #!/bin/bash
    dir=`pwd`
    echo $dir
    start() {
    cd $dir
    nohup ./kafka-server-start.sh ../config/server.properties &
    echo -e '\r'
    } 
    start >> $dir/../logs/start_kfk.log 2>> $dir/../logs/start_kfk.log 
    

    保存赋权
    chmod +x start_kfk.sh
    在kafka的bin同级目录下新建logs文件夹
    上述操作完成后即配置完毕。

    kafka测试:

    分别启动三台机器的zookeeper:
    bin目录下执行
    ./start_zk.sh
    三台机器的zookeeper都启动后,再做下面的操作:
    分别启动三台机器的kafka
    bin目录下执行
    ./start_kfk.sh
    在某台机器创建topic kandy:

    bin/kafka-topics.sh -create --zookeeper 10.211.55.29:2181,10.211.55.30:2181,10.211.55.31:2181 -replication-factor 3 --partitions 3 --topic kandy
    

    展示topic,确认topic创建成功

    bin/kafka-topics.sh --list --zookeeper 10.211.55.29:2181
    

    创建生产者

    bin/kafka-console-producer.sh --broker-list 10.211.55.29:9092,10.211.55.30:9092,10.211.55.31:9092 --topic kandy
    

    在另外两台机器创建消费者

    bin/kafka-console-consumer.sh --zookeeper 10.211.55.29:2181,10.211.55.30:2181,10.211.55.31:2181 --topic kandy --from-beginning  
    

    生产者机器截图


    生产者

    消费者机器截图


    消费者

    如上,在生产者中输入字符并回车,消费者中可接收到消息即配置成功。

    相关文章

      网友评论

          本文标题:kafka集群搭建(自带Zookeeper)

          本文链接:https://www.haomeiwen.com/subject/blsazxtx.html