• Zookeeper和Kafka安装


    Zookeeper和Kafka安装

    1、Windows下的安装

    1.1 安装JAVA JDK

    请参考《Windows环境下JDK的安装》

    JDK版本:

    在这里插入图片描述

    1.2 安装ZooKeeper

    1、 下载安装包

    http://zookeeper.apache.org/releases.html#download

    这里下载的版本为3.4.9

    2、 解压并进入ZooKeeper目录:

    在这里插入图片描述

    3、进入C:\zsxsoftware\zookeeper-3.4.9\conf, 将zoo_sample.cfg复制并且重命名为zoo.cfg

    在这里插入图片描述

    4、 打开zoo.cfg找到并编辑dataDir=C:\\zsxsoftware\\zookeeper-3.4.9\\data(必须以\\分割)

    在这里插入图片描述

    5、 添加系统变量:ZOOKEEPER_HOME=C:\zsxsoftware\zookeeper-3.4.9

    在这里插入图片描述

    6、 编辑path系统变量,添加路径:%ZOOKEEPER_HOME%\bin

    在这里插入图片描述

    7、 在zoo.cfg文件中修改默认的Zookeeper端口(默认端口2181

    在这里插入图片描述

    8、 打开新的cmd,输入zkServer,运行Zookeeper

    在这里插入图片描述

    9、 命令行提示如下:说明本地Zookeeper启动成功

    在这里插入图片描述

    注意:不要关了这个窗口。

    zookeeper启动无法找到主类:使用zookeeper3.5.x的版本会出现你描述的问题,把版本还为3.4.x后可以解决

    该问题。

    1.3 安装Kafka

    1、 下载安装包

    http://kafka.apache.org/downloads

    注意要下载二进制版本,这里下载的版本为2.12-0.11.0.0

    2、 解压并进入Kafka目录

    在这里插入图片描述

    3、 进入config目录找到文件server.properties并打开

    在这里插入图片描述

    4、 找到并编辑log.dirs=C:\\zsxsoftware\\kafka_2.12-0.11.0.0\\logs

    在这里插入图片描述

    5、 找到并编辑zookeeper.connect=localhost:2181

    在这里插入图片描述

    6、 Kafka会按照默认,在9092端口上运行,并连接zookeeper的默认端口:2181

    7、 进入Kafka安装目录C:\zsxsoftware\kafka_2.12-0.11.0.0,打开命令行,输入:

    .\bin\windows\kafka-server-start.bat .\config\server.properties
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    注意:不要关了这个窗口,启用Kafka前请确保ZooKeeper实例已经准备好并开始运行。

    1.4 测试

    1、 创建主题,进入Kafka安装目录C:\zsxsoftware\kafka_2.12-0.11.0.0,打开命令行,输入:

    .\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    
    • 1

    在这里插入图片描述

    2、查看主题输入:

    .\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
    
    • 1

    在这里插入图片描述

    3、 创建生产者,进入Kafka安装目录C:\zsxsoftware\kafka_2.12-0.11.0.0,打开命令行,输入:

    .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test
    
    • 1

    在这里插入图片描述

    输入hello,回车。

    在这里插入图片描述

    注意:不要关了这个窗口

    4、 创建消费者,进入Kafka安装目录C:\zsxsoftware\kafka_2.12-0.11.0.0,打开命令行,输入:

    .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
    
    • 1

    在这里插入图片描述

    此时,往生产者窗口写入消息,消费者窗口也能同步的接收到消息

    在这里插入图片描述

    在这里插入图片描述

    5、查看topic,进入Kafka安装目录C:\zsxsoftware\kafka_2.12-0.11.0.0,打开命令行,输入:

    .\bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic test
    
    • 1

    在这里插入图片描述

    1.5 操作日志的处理

    kafka启动后,如果你去查看kafka所在的根目录,或者是kafka本身的目录,会发现已经默认生成一堆操作日志,

    而且会不断生成不同时间戳的操作日志。

    在这里插入图片描述

    一番研究后,看了启动的脚本内容,发现启动的时候是会默认使用到这个log4j.properties文件中的配置,而

    zoo.cfg是不会看到本身的启动会调用到这个,还以为只有那一个日志路径。在这里配置一下就可以了,找到

    config下的log4j.properties,将路径更改下即可,这样就可以归档在一个文件夹下边了,路径根据自己喜

    好定义。

    在这里插入图片描述

    在这里插入图片描述

    这两个路径是相互对应的。

    另外如何消除不断生成日志的问题,就是同一天的不同时间会不停生成。修改这里,还是在

    log4j.properties中:本身都为trace,字面理解为会生成一堆跟踪日志,将其改为INFO即可。

    在这里插入图片描述

    在这里插入图片描述

    2、Linux下的安装

    主要介绍如何在Centos7下安装zookeeper以及如何使用。

    2.1 安装JDK

    使用zookeeper前,必须先安装JDK。

    JDK的安装请参考《Linux环境下JDK的安装》。

    2.2 下载安装zookeeper

    2.2.1 通过官网下载

    https://archive.apache.org/dist/zookeeper/

    https://downloads.apache.org/zookeeper/

    本文中使用3.4.9版本:zookeeper-3.4.9.tar.gz

    2.2.2 解压
    # 解压
    $ tar -xvf zookeeper-3.4.9.tar.gz
    
    • 1
    • 2

    在这里插入图片描述

    2.2.3 修改配置文件
    # 1.进入配置文件目录
    $ cd conf/
    
    # 2.将zoo_sample.cfg这个文件复制为zoo.cfg (注意:文件名一定要是zoo.cfg) 
    $ cp zoo_sample.cfg  zoo.cfg
    
    # 3.修改配置文件
    $ vim zoo.cfg
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    # 修改下面两项的内容
    dataDir=/home/zhangshixing/kafka/zookeeper-3.4.9/data
    clientPort=2181
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    注意:数据存放目录由自己决定,但是启动服务前一定要确保对应的目录存在,不然启动会失败。

    2.2.4 创建data文件夹
    # 创建data目录
    $ mkdir /home/zhangshixing/kafka/zookeeper-3.4.9/data
    
    • 1
    • 2

    2.3 启动zookeeper

    2.3.1 进入zookeeper下的bin目录
    $ cd /home/zhangshixing/kafka/zookeeper-3.4.9/bin
    
    • 1

    在这里插入图片描述

    2.3.2 执行启动命令
    $ ./zkServer.sh start
    
    • 1

    启动成功后如下:

    在这里插入图片描述

    除了开启,再备注几个其他命令:

    # 停止
    $ ./zkServer.sh stop
    
    # 重启
    $ ./zkServer.sh restart
    
    # 查看状态
    $ ./zkServer.sh status
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    虽然这样可以正常启动,但是每次都要进入到zookeeper的bin目录下,为了避免麻烦,可以将zookeeper设置开

    机启动。

    2.3.3 启动CLI
    $ ./zkCli.sh
    
    • 1

    在这里插入图片描述

    2.4 设置zookeeper开机自动启动

    2.4.1 切换到/lib/systemd/system/目录,创建自启动文件
    $ cd /lib/systemd/system/
    $ vim zookeeper.service
    
    • 1
    • 2

    文件内容如下:

    [Unit]
    Description=zookeeperservice
    After=network.target
    
    [Service]
    # zookeeper路径
    WorkingDirectory=/home/zhangshixing/kafka/zookeeper-3.4.9
    # zookeeper执行文件
    ExecStart=/home/zhangshixing/kafka/zookeeper-3.4.9/bin/zkServer.sh start    
    User=root
    Group=root
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    注意:zookeeper的路径需要修改成自己的!

    2.4.2 设置自启动
    $ systemctl enable zookeeper.service
    
    • 1

    在这里插入图片描述

    2.4.3 启动服务
    $ systemctl start zookeeper.service
    
    • 1
    2.4.4 查看启动状态
    $ systemctl status zookeeper.service
    
    • 1

    在这里插入图片描述

    至此,在Linux下安装zookeeper就完成了!

    2.5 下载安装kafka

    本文主要介绍如何在Centos7下安装kafka,本文使用的kafka版本是:2.12-0.11.0.0

    2.5.1 通过官网直接下载

    http://kafka.apache.org/downloads

    kafka_2.12-0.11.0.0.tgz

    2.5.2 解压并进入kafka目录
    $ tar -xzf kafka_2.12-0.11.0.0.tgz
    $ cd kafka_2.12-0.11.0.0/
    
    • 1
    • 2

    在这里插入图片描述

    2.5.3 启动kafka

    1、启动kafka之前要确保zookeeper已经启动,如果没有启动,执行以下命令:

    $ ./zkServer.sh
    
    • 1

    2、启动kafka之前,需要修改kafka配置文件中的zookeeper地址,打开配置文件:

    $ vim config/server.properties
    
    • 1

    修改zookeeper.connect=192.168.94.186:2181(这里修改成自己安装的zookeeper地址和端口即可),除了

    修改zookeeper服务地址外,还有其他配置项,如日志储存路径、消息的最大持久化时间、端口等等,这里不再赘

    述。

    zookeeper.connect=192.168.94.186:2181
    log.dirs=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0/logs
    
    • 1
    • 2

    在这里插入图片描述

    在这里插入图片描述

    3、启动kafka

    $ bin/kafka-server-start.sh config/server.properties
    
    • 1

    在这里插入图片描述

    2.6 设置kafka开机自动启动

    2.6.1 切换到/lib/systemd/system/目录,创建自启动文件
    $ cd /lib/systemd/system/
    $ vim kafka.service
    
    • 1
    • 2

    文件内容如下:

    [Unit]
    Description=kafkaservice
    After=network.target
    
    [Service]
    WorkingDirectory=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0
    ExecStart=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0/bin/kafka-server-start.sh config/server.properties
    ExecStop=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0/bin/kafka-server-stop.sh
    User=root
    Group=root
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    2.6.2 设置自启动
    $ systemctl enable kafka.service
    
    • 1

    在这里插入图片描述

    2.6.3 立即启动服务
    $ systemctl start kafka.service
    
    • 1
    2.6.4 查看启动状态
    $ systemctl status kafka.service
    
    • 1

    在这里插入图片描述

    至此,linux安装kafka就完成了!

    3、Docker安装

    3.1 搜索zookeeper镜像

    $ docker search zookeeper
    
    • 1

    在这里插入图片描述

    3.2 拉取zookeeper镜像

    $ docker pull wurstmeister/zookeeper
    
    • 1

    在这里插入图片描述

    3.3 启动zookeeper

    $ docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
    
    • 1

    在这里插入图片描述

    3.4 查看zookeeper启动信息

    $ docker logs -f zookeeper
    
    • 1

    在这里插入图片描述

    3.5 搜索kafka镜像

    $ docker search kafka
    
    • 1

    在这里插入图片描述

    3.6 拉取kafaka镜像

    $ docker pull wurstmeister/kafka
    
    • 1

    在这里插入图片描述

    3.7 启动kafka

    $ docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.94.186:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.94.186:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -t wurstmeister/kafka
    
    • 1
    # 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
    -e KAFKA_BROKER_ID=0 
    # 配置zookeeper管理kafka的路径192.168.94.186:2181
    -e KAFKA_ZOOKEEPER_CONNECT=192.168.94.186:2181
    # 把kafka的地址端口注册给zookeeper
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.94.186:9092 
    # 配置kafka的监听端口
    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 
    # 允许使用PLAINTEXT侦听器
    -e ALLOW_PLAINTEXT_LISTENER=yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    3.8 查看kafka启动信息

    $ docker logs -f kafka
    
    • 1

    在这里插入图片描述

    3.9 测试

    # 进入kafka容器
    # 创建Replication为1,Partition为1的topic
    $ docker exec -it kafka /bin/sh
    $ cd /opt/kafka_2.13-2.8.1
    $ bin/kafka-topics.sh --create --zookeeper 192.168.94.186:2181 --replication-factor 1 --partitions 1 --topic partopic
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    在这里插入图片描述

    # 查看topic的状态
    $ bin/kafka-topics.sh --describe --zookeeper 192.168.94.186:2181 --topic partopic
    
    • 1
    • 2

    在这里插入图片描述

    # 发送kafka消息
    $ bin/kafka-console-producer.sh --broker-list 192.168.94.186:9092 --topic partopic
    
    • 1
    • 2
    # 接收消息
    $ docker exec -it kafka /bin/sh
    $ cd /opt/kafka_2.13-2.8.1
    $ bin/kafka-console-consumer.sh --bootstrap-server 192.168.94.186:9092 --topic partopic --from-beginning
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    超强换元法,二重积分计算的核武器!(雅可比行列式超通俗讲解)
    2024/4/16 网络编程day4
    10款超牛Vim插件,爱不释手了
    平面口径天线简谈
    Linux安装confluence
    Redis 主从复制的原理
    面试:单例模式
    java社区疫情防控微信小程序源码
    LeetCode-792. 匹配子序列的单词数【字典树,哈希表,二分查找】
    渗透测试-apt攻击与防御系列-解决无Meterpreter Shell添加虚拟路由映射第一季
  • 原文地址:https://blog.csdn.net/qq_30614345/article/details/134210767