Zookeeper和Kafka安装

news/2024/11/8 12:00:56/

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

在这里插入图片描述

在这里插入图片描述

注意:不要关了这个窗口,启用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

在这里插入图片描述

2、查看主题输入:

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

在这里插入图片描述

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

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

在这里插入图片描述

输入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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

2.3 启动zookeeper

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

在这里插入图片描述

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

启动成功后如下:

在这里插入图片描述

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

# 停止
$ ./zkServer.sh stop# 重启
$ ./zkServer.sh restart# 查看状态
$ ./zkServer.sh status

在这里插入图片描述

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

机启动。

2.3.3 启动CLI
$ ./zkCli.sh

在这里插入图片描述

2.4 设置zookeeper开机自动启动

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

文件内容如下:

[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

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

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

在这里插入图片描述

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

在这里插入图片描述

至此,在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/

在这里插入图片描述

2.5.3 启动kafka

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

$ ./zkServer.sh

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

$ vim config/server.properties

修改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

在这里插入图片描述

在这里插入图片描述

3、启动kafka

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

在这里插入图片描述

2.6 设置kafka开机自动启动

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

文件内容如下:

[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
2.6.2 设置自启动
$ systemctl enable kafka.service

在这里插入图片描述

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

在这里插入图片描述

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

3、Docker安装

3.1 搜索zookeeper镜像

$ docker search zookeeper

在这里插入图片描述

3.2 拉取zookeeper镜像

$ docker pull wurstmeister/zookeeper

在这里插入图片描述

3.3 启动zookeeper

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

在这里插入图片描述

3.4 查看zookeeper启动信息

$ docker logs -f zookeeper

在这里插入图片描述

3.5 搜索kafka镜像

$ docker search kafka

在这里插入图片描述

3.6 拉取kafaka镜像

$ docker pull wurstmeister/kafka

在这里插入图片描述

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
# 在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

在这里插入图片描述

3.8 查看kafka启动信息

$ docker logs -f kafka

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

# 发送kafka消息
$ bin/kafka-console-producer.sh --broker-list 192.168.94.186:9092 --topic partopic
# 接收消息
$ 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

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/1195576.html

相关文章

Python库Requests的爬虫程序爬取视频通用模版

这是一个使用Python库Requests的爬虫程序,用于爬取网上的视频。代码必须使用以下代码:爬虫IP主机为duoip,爬虫IP端口为8000。 import requests proxy_host "duoip" proxy_port 8000 url "目标网站" headers {"U…

NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063

nifi好用,但是对机器的性能要求也高,如果性能达不到,就会导致,问题发生,比如,队列里显示有内容,但是实际上队列是空的,清也清不掉,只能重启,很麻烦. 关于优化:1.配置前端页面刷新的间隔时间默认30秒,我们可以自己需要看的时候手动刷新我们改成300sec 2.修改CPU阻塞时间,提高CPU…

【Truffle】三、可视化测试报告的生成

在truffle中,我们可以引入第三方插件,对truffle的测试进行更好的提升,这里介绍两个插件,分别是mocha-junit-reporter和mochawesome两个插件。 一、mocha-junit-reporter插件 mocha-junit-reporter是一个用于Truffle测试框架的插件…

钉钉会议室无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统

钉钉会议室支持成员管理、主持人权限管理、高级会控、组织内会议全员静音、共享权限控制等会议管理能力,确保会议安全可控的进行。 官网:https://page.dingtalk.com/wow/z/dingtalk/Rax/RoomsIntro 集简云无代码集成平台,轻松连接钉钉会议室…

不必安装,快速设计数据库表结构

设计数据库架构是一项具有挑战性的任务,当您的应用程序不断变大时,它变得更加困难。 一个好的表结构设计能减少不小开发量,也能提升部分扩展性。 什么是数据库表结构? 表结构就是定义一个表的字段、类型、主键、外键、索引&#x…

pip修改为镜像源,window和linux修改方式

常用的pip源 清华大学源:https://pypi.tuna.tsinghua.edu.cn/simple/ 豆瓣源 :http://pypi.douban.com/simple/ 腾讯源:http://mirrors.cloud.tencent.com/pypi/simple/ 阿里源:https://mirrors.aliyun.com/pypi/simple/ 中科大&…

STM32 使用HAL库,HAL_Delay()会卡死, 程序一直卡在 HAL_GetTick( ) 函数中(已解决)

今天遇到个很奇怪的问题, 不知道为什么, 单片机运行一会之后, 系统就没反应了, 经过调试发现, 系统卡在HAL_Delay()中了. 之前也遇到过这个问题后来把HAL_Delay 去掉了. 然后发现不行, 还是得有它.不然发串口数据发的太快会乱掉. 得慢点发. 然后调试到HAL_Delay()方法的内部发…

Python基础学习009——类的封装

# 面向对象是一种编程思想,还有另一种是面向过程 # 面向过程,具体步骤的实现,所有功能都自己书写 # 面向对象,使用一个个工具(函数),帮助完成各项任务 # 类:对多个特性相同或相似的食物的统称,根据特征不同一个事物可以属于多个类 # 对象:由类实例化的一个事物,指代1个 # 类的组…