Zookeeper和Kafka安装

news2024/11/26 10:32:48

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.coloradmin.cn/o/1169542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 模板特化

非类型模板参数 定义&#xff1a;对于函数模板和类模板&#xff0c;模板参数并不局限于类型&#xff0c;普通值也可以作为模板参数 非类型模板参数定义的是常量 template<typename T, size_t N> class array; //T&#xff1a;类型模板参数 //N&#xff1a;非类型模板参…

【鸿蒙软件开发】UIAbility组件概况、生命周期与启动模式

文章目录 前言一、UIAbility概况1.1 概况介绍1.2 声明配置 二、UIAbility组件生命周期2.1 基本概念2.2 生命周期状态说明Create状态WindowStageCreate和WindowStageDestroy状态Foreground和Background状态Destroy状态 三、UIAbility的启动模式3.1 singleton启动模式说明进行配置…

根据Aurora发送时序,造Aurora 数据包,从而进行AXIS接口数据位宽转换仿真

首先Aurora采用AXIS接口 由于后续需要进行AXIS接口 不同时钟域的数据位宽转换&#xff08;64bit和256bit之间的转换&#xff09;&#xff0c;因此分两次走。 第一种方法&#xff1a;采用AXIS数据位宽转换IP AXIS跨时钟域IP 第二种方法&#xff1a;逻辑完成 下面记录逻辑…

android display 杂谈(三)WMS

用来记录学习wms&#xff0c;后续会一点一点更新。。。。。。 代码&#xff1a;android14 WMS是在SystemServer进程中启动的 在SystemServer中的main方法中&#xff0c;调用run方法。 private void run() { // Initialize native services.初始化服务&#xff0c;加载andro…

路由器基础(八):策略路由配置

在实际网络应用中&#xff0c;策略路由也是一种重要的技术手段。尽管 在考试并不注重策略路由&#xff0c;但是实际上应用较多&#xff0c;建议考生除了掌握基本的静态路由协议IP route-static, 动态路由协议RIP 、OSPF的基础配置外&#xff0c;还要掌握如何配置策略路由。…

JavaScript事件委托原理详解!

通过JavaScript事件的冒泡来动态为元素绑定事件的方法称为事件委托&#xff08;Event Delegation&#xff0c;也称为“事件代理”&#xff09;&#xff0c;是 JavaScript 中最热门的技术之一&#xff0c;在笔试和面试中是常考察的重点知识点&#xff0c;今天来简单介绍一下相关…

成人听力筛查的现状

作者&#xff1a;兰明&#xff0c;医学硕士&#xff0c;听力学博士&#xff0c;听觉健康门诊主任。 你有听力障碍吗&#xff1f;你的家人有听力障碍吗&#xff1f;如果有人提出这样的问题&#xff0c;你的回答多数都是“真不知道”。为什么&#xff1f; 因为我们缺乏成人…

【C语法学习】10 - printf()函数

文章目录 1 函数原型2 参数2.1 格式字符串2.1.1 字面文本量2.1.2 转义序列2.1.3 转换说明2.1.3.1 类型2.1.3.2 类型长度2.1.3.3 精度2.1.3.4 最小宽度2.1.3.5 标志 2.2 参数列表2.3 转换说明和参数列表的关系 3 返回值 1 函数原型 printf()&#xff1a;将格式化输出发送至标准…

毅速丨3D打印在零件修复上潜力巨大

随着科技的飞速发展&#xff0c;3D打印技术逐渐渗透到各个领域&#xff0c;在零件修复方面&#xff0c;3D打印也展现出巨大的潜力和优势。 3D打印技术是一种基于数字模型文件的制造技术&#xff0c;采用逐层堆积材料的方式来制造物体。它具有制造复杂形状零件的能力&#xff0c…

腾讯云3年/5年特惠云服务器购买入口及攻略

腾讯云是腾讯旗下云计算品牌&#xff0c;为了吸引用户经常推出各种优惠活动&#xff0c;最吸引用户的还是特惠云服务器&#xff0c;下面给大家分享腾讯云3年/5年时长特惠服务器购买入口及教程&#xff01; 购买入口&#xff1a;传送门>>> 购买攻略&#xff1a; 进入…

阿里云免费服务器

文章目录 最近的阿里云活动By the way在云服务器ECS上搭建个人网站正文补充:定期释放补充:不知道阿里云服务器的密码怎么办?成果补充&#xff1a;怎么找到实例操作的后台&#xff1f;补充&#xff1a;怎么查看服务器到期时间&#xff1f; 究竟白嫖了多少&#xff1f;最后&…

TCP的滑动窗口和拥塞控制

目录 滑动窗口 1.发送窗口和接收窗口 2.滑动窗口的分类 停止等待协议&#xff1a;发送窗口大小 1&#xff0c; 接收窗口大小 1 后退N帧协议&#xff08;GBN&#xff09;&#xff1a;发送窗口大小 > 1&#xff0c;接收窗口大小 1 选择重传协议&#xff08;SR&#xf…

【计算机网络笔记】传输层——TCP的可靠数据传输

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

逆袭Flutter? Facebook 发布全新跨平台引擎 Hermes!

Facebook 于前日发布了新的 JavaScript 引擎&#xff1a;Hermes&#xff0c;专注于提高 React Native 应用的性能&#xff0c;并且在市面上那些内存较少、存储速度较慢且计算能力低下的移动设备上都有良好的表现。但是不是为了追赶Flutter&#xff1f;这块作者没有说明。 移动应…

XXL-JOB默认accessToken身份绕过RCE漏洞复现 [附POC]

文章目录 XXL-JOB默认accessToken身份绕过RCE漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 XXL-JOB默认accessToken身份绕过RCE漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从…

python模块的介绍和导入

python模块的介绍和导入 概念 在Python中&#xff0c;每个Python代码文件都是一个模块。写程序时&#xff0c;我们可以将代码分散在不同的模块(文件)中&#xff0c;然后在一个模块中引用另一个模块的内容。 导入格式 1、在一个模块中引用(导入)另一个模块可以使用import语句…

海康Visionmaster调试脚本:对脚本进行调试的方法

第一步&#xff0c;在脚本模块中使用导出工程功能&#xff0c;将模块中的代码导出 第二步&#xff0c;找到导出的工程&#xff0c;并打开 第三步&#xff0c;生成解决方案&#xff0c;设置断点&#xff0c;点击 VS 菜单调试中的附加到进程&#xff0c;选择 ShellModuleManage…

六氟化硫气体监测装置单位VOL%/LEL%/PPM分别是什么意思?

我们在使用六氟化硫等气体监测装置仪器时&#xff0c;经常看到VOL%、LEL%、PPM等单位&#xff0c;以及仪器中反复性、响应时间、灵敏度等这些词在气体检测仪中代表什么意思呢&#xff1f;今天主要给大家解释气体检测仪一些常见的单位及常用术语的意思。 一、常见单位 &#xff…

VSCode实用远程主机功能

作为嵌入式开发者&#xff0c;经常在各种系统平台或者开发工具之间切换&#xff0c;比如你的代码在Linux虚拟机上&#xff0c;如果不习惯在Linux下用IDE&#xff0c;那么我尝试将Linux的目录通过samba共享出来&#xff0c;在windows下用网络映射盘的方式映射出来&#xff0c;VS…

关于股价比较好的预测方案,仅供参考

1&#xff0c;导包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import keras 2&#xff0c;读取数据 data pd.read_csv(000300.SH.csv) shszdata.rename(columns{收盘价(元):Close,"日期":"Date"}) 3&#xff0c;均值预测法…