• zookeeper + kafka集群安装部署文档


     

    部署环境

    服务

    所属ip和占用的端口

    zookeeper

    192.169.1.71:2181

    kafka1

    192.169.1.71:9092

    kafka2

    192.169.1.70:9092

    kafka3

    192.169.1.21:9092

     

    搭建zookeeper + kafka前需要安装jdk,jdk需1.8及以上

    一、安装zookeeper

    1、下载zookeeper。下载地址:https://downloads.apache.org/zookeeper/

    2、将下载的zookeeper文件(apache-zookeeper-3.6.2-bin.tar.gz)上传到服务器上

    3、解压apache-zookeeper-3.6.2-bin.tar.gz

    tar zxvf apache-zookeeper-3.6.2-bin.tar.gz -C ./

    4、进入conf目录下,复制zoo_sample.cfg文件,名字为zoo.cfg (不然启动找不到该文件)

    cd ./apache-zookeeper-3.5.7-bin/conf

    cp zoo_sample.cfg ./zoo.cfg

    5、启动zookeeper服务

    进入apache-zookeeper-3.5.7-bin/bin目录下执行如下命令启动服务

    sh zkServer.sh start

    进入./apache-zookeeper-3.5.7-bin/bin目录下执行如下命令查看zk服务启动状态

    sh ./zkServer.sh status

    二、安装kafka

     

    1、下载kafka。下载地址:http://kafka.apache.org/downloads

    2、将下载的kakfa文件(kafka_2.12-2.6.0.tgz)上传到服务器上

    3、解压kafka_2.12-2.6.0.tgz

    tar zxvf kafka_2.12-2.6.0.tgz -C ./

    (2.6.0是kafka版本,2.12是scala版本,kafka是scala语言写的)

    4、修改配置文件vi kafka_2.12-2.6.0/conf/server.properties

    •  4.1、broker.id值唯一,kafka集群安装,不同kafka的broker需修改成不一样的值。

       

    •  4.2取消listeners前的#号注释,并加上本机的IP

       

    • 4.3指定zookeeper连接地址,改成zookeeper服务器地址

       

    5、启动kafka

    进入kafka_2.12-2.6.0/bin目录下执行如下命令启动kafka服务

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

    6、启动完成后,查看zookeeper集群连接情况

    #在apache-zookeeper-3.5.7-bin/bin下执行

    sh zkCil.sh
    #查看 执行
    ls /
    #查看连接情况
    ls /brokers/ids

     

    执行ls /brokers/ids出现的id是kafka的broker.id,如果zookeeper管理多个kakfa,那么这里会显示多个kafka的broker.id的值

     

    安装启动kafka过程中出现的问题

    1、kafka连接zookeeper超时,查看日志(kafkaServer.out):ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING

    解决方案:将kakfa配置文件server.properties中的zookeeper.connection.timeout.ms调大一点

    三、控制台生产消费测试

    1、使用任意一台kafka服务器做生产者

    开启控制台生产者,向指定topic写数据

    sh kafka-console-producer.sh --broker-list 192.169.1.71:9092 --topic test

     

    2、使用kafka消费(三台kafka都可消费)

    开启控制台消费者,消费指定topic中的数据

    ./kafka-console-consumer.sh --bootstrap-server 192.169.1.71:9092 --topic test --consumer-property group.id=group_mytest --from-beginning

    #注:    --from-beginning:会把test主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。

    --consumer-property group.id=group_mytest :指定消费者组id

     

    四、kafka常用操作命令

     

    1、查看当前服务中的所有topic

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

    2、创建topic

    bin/kafka-topics.sh --zookeeper 192.169.1.71:2181 --create --replication-factor 1 --partitions 1 --topic ztest

    --replication-factor 设置副本数量

    --partitions设置分区个数

    --topic 设置topic名称

    3、删除topic

    bin/kafka-topics.sh --zookeeper 192.169.1.71:2181 --delete --topic z 

    #注:配置文件中delete.topic.enable=true才可删除(官方默认是true)

    4、查看某个topic详情

    bin/kafka-topics.sh --zookeeper 192.169.1.71:2181 --describe --topic ztest

    5、查看某个group消费详情

    bin/kafka-consumer-groups.sh --bootstrap-server 192.169.1.70:9092 --describe --group test-group

     

    五、工具使用

    工具名称:Kafka Tool

    1、双击打开,点击小弹窗的close

     

    2、新建连接

    File  -> Add New Connection...

    输入Cluster name、Zookeeper Host、Zookeeper Port,然后点击Add按钮

     

    3、双击Cluster name (我这里的Cluster name取名是chenTest)开始连接,连接成功,Cluster name前面的圆圈显示为绿色

     

    4、新建topic

    选中Topics,点击右边绿色+号弹出新建topic的窗口

     

    5、输入topic名称,分区数量,副本名称,点击Add创建topic成功

     

    6、点击绿色按钮,可以展示分区的数据和偏移量

     

    Message这一列展示的数据是字节内容,不便于查看,可以将其转为字符串显示

    7、选中topic -> Properties ->Content Types中的key和message改成String,点击Update

     

    然后再点击绿色按钮查看Data就变成字符串展示了

     

    六、注意

     

    1、不同消费者组可以消费相同消息

     

    参考地址:

    kafka : https://kafka.apachecn.org/

     

    作者:小念
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    2020学习 04 python 爬取某政府网站信件
    2020学习03
    2020学习02
    阅读笔记--《一线架构师实践指南》--Pre-architecture阶段
    重构“信息领域热词分析”,实现六种质量属性战术
    pycharm错误:Error updating package list: connect timed out解决
    python连接mysql数据库——编码问题
    阅读笔记--《大型网站技术架构》—02架构
    python查询MySQL数据库的表以及所有字段
    python连接mysql数据库——版本问题
  • 原文地址:https://www.cnblogs.com/kiko2014551511/p/15152893.html
Copyright © 2020-2023  润新知