【hadoop】Kafka 安装部署

一、Kafka安装与配置

步骤:

1、使用XFTP将Kafka安装包kafka_2.12-2.8.1.tgz发送到master机器的主目录。

2、解压安装包:

tar -zxvf ~/kafka_2.12-2.8.1.tgz

3、修改文件夹的名字,将其改为kafka,或者创建软连接也可:

mv ~/kafka_2.12-2.8.1 ~/kafka

4、修改配置文件,Kafka包含生产者、消费者、ZooKeeper、Kafka集群节点等四个角色,因此需要修改对应的4个配置文件即可。Kafka的配置文件夹在解压文件夹里面的config文件夹内,先执行以下命令进入到对应的目录:

cd ~/kafka/config

(1)修改zookeeper.properties配置文件:

# 指定ZooKeeper的数据目录
dataDir=/home/hadoop/zkdata
# 指定ZooKeeper的端口(这个应该不用改)
clientPort=2181

(2)修改consumer.properties配置文件:

# 配置Kafka集群地址
bootstrap.servers=master:9092,slave1:9092,slave2:9092

(3)修改producer.properties配置文件:

# 配置Kafka集群地址
bootstrap.servers=master:9092,slave1:9092,slave2:9092

(4)修改server.properties配置文件(找到对应的参数修改):

# 指定ZooKeeper集群
zookeeper.connect=master:2181,slave1:2181,slave2:2181

上述内容修改完毕后保存。

5、将上面配置修改好后的Kafka安装文件夹使用scp命令分发给slave1、slave2两个节点:

scp -r ~/kafka hadoop@slave1:~
scp -r ~/kafka hadoop@slave2:~

6、分发完成以后,在每个节点上修改server编号:

cd ~/kafka/config
vim server.properties

找到broker.id项,master、slave1、slave2三台机器分别标识为1、2、3

broker.id=1

broker.id=2

broker.id=3

7、配置环境变量,三台机器都要配置:

vim ~/.bashrc

 在文件末尾添加以下内容:

export KAFKA_HOME=/home/hadoop/kafka
export PATH=$KAFKA_HOME/bin:$PATH

保存文件,然后刷新环境变量或重新启动命令行终端:

source ~/.bashrc

 

二、集群启动测试

Kafka作为一个分布式应用程序,它依赖ZooKeeper提供协调服务,因此要启动Kafka,必须先启动ZooKeeper集群,再启动Kafka集群

步骤:

1、启动好ZooKeeper以后,在三台机器上执行以下命令启动Kafka:

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

用jps命令在三台机器上都能看到Kafka进程的话,说明Kafka集群服务启动成功。


 

三、集群功能测试

集群启动成功后,还需测试其功能是否能正确使用,Kafka自带很多种Shell脚本供用户使用,包括生产消息、消费消息、Topic管理等,下面利用Shell脚本来测试Kafka集群的功能。

步骤:

1、创建Topic:

kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 --partitions 3

2、查看Topic列表:

kafka-topics.sh --zookeeper localhost:2181 --list

能够看到第1步创建的test则创建Topic成功。

3、启动消费者:

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

这样就打开了一个终端消费者,消费test Topic中的消息,但目前该Topic中还没有消息,因此这个进程会没有任何反应,这是正常的。

4、另外打开一个终端,启动生产者向test Topic发送消息:

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

在这个生产者终端上输入消息,然后按回车发送,发送完之后,如果刚才那个消费者终端上,能够查看到消费了对应的消息的话,说明Kafka集群可以正常对消息进行生产和消费了。

生产者slave1发送消息:

消费者master接受到消息:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80915.shtml

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

相关文章

UDP 多点通信

一、setsockopt/getsockopt 函数详解 1. 函数原型 c #include <sys/socket.h> int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);…

说一说Node.js高性能开发中的I/O操作

众所周知&#xff0c;在软件开发的领域中&#xff0c;输入输出&#xff08;I/O&#xff09;操作是程序与外部世界交互的重要环节&#xff0c;比如从文件读取数据、向网络发送请求等。这段时间&#xff0c;也指导项目中一些项目的开发工作&#xff0c;发现在Node.js运用中&#…

Charles抓包并破解ProtoBuf请求

安装Charles并抓包 如果是外网的需要root安装一系列证书等&#xff0c;详细见参考文章&#xff1a; 在雷电模拟器安卓7.0上使用Charles抓包详细教程 遇到如下问题&#xff1a; 1.粘贴到目录/system/etc/security/cacerts内&#xff0c;粘贴不了。需要打开这个 2.模拟器wifi打…

Odoo 18 安全组与访问权限管理指南

Odoo 18 安全组与访问权限管理指南 一、准备工作&#xff1a;在自定义模块中创建安全配置文件 创建 security 文件夹 在自定义模块内创建名为 security 的文件夹&#xff0c;用于存放安全组和访问权限的定义文件。 二、定义模型访问权限&#xff1a;ir.model.access.csv 文…

使用lldb查看Rust不同类型的结构

目录 前言 正文 标量类型 复合类型——元组 复合类型——数组 函数 &str struct 可变数组vec Iter String Box Rc Arc RefCell Mutex RwLock Channel 总结 前言 笔者发现这个lldb挺好玩的&#xff0c;可以查看不同类型的结构&#xff0c;虽然这好像是C的东…

uniapp使用ui.request 请求流式输出

正文&#xff1a; 在现代Web开发中&#xff0c;实时数据流和长时间运行的请求变得越来越常见&#xff0c;尤其是在处理大量数据或进行实时通信时。在这种情况下&#xff0c;uniapp 提供的 ui.request 请求方法可以帮助我们轻松实现流式输出请求。本文将介绍如何使用 uni.reques…

如何恢复被勒索软件加密的服务器文件(解密与备份策略)

针对勒索软件加密文件的恢复和解密策略&#xff0c;结合当前数据安全最佳实践&#xff0c;整理应对指南如下&#xff1a; 一、文件解密与修复方法 立即隔离设备‌ 断开网络连接并禁用共享功能&#xff0c;防止病毒横向传播 通过文件后缀异常&#xff08;如.locked、.wxx&…

JS,ES,TS三者什么区别

Java Script(JS)、ECMAScript(ES)、TypeScript(TS) 的核心区别与关联的详细解析,结合技术背景、设计目标及应用场景展开说明: 一、核心定义与关系 JavaScript(JS) 定义:一种动态类型、基于原型的脚本语言,由 Netscape 公司于 1995 年首次开发,用于网页交互功能。角…

【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景

目录 1 什么是MapReduce&#xff1f; 2 MapReduce的核心特点 2.1 分布式处理 2.2 容错机制 3 MapReduce的完整工作流程 4 MapReduce的优缺点分析 4.1 优势 4.2 局限性 5 MapReduce典型应用场景 5.1 适用场景 5.2 不适用场景 6 MapReduce与其他技术的对比 7 总结 1…

【Redis】分布式锁的实现

目录 一、本地锁存在的问题 二、redis实现分布式锁原理 三、使用示例 四、锁误删问题 解决思路 获取锁和释放锁代码优化 五、锁释放的原子性问题 解决思路&#xff08;Lua脚本&#xff09; 使用流程 总结 大家好&#xff0c;我是千语。上期给大家讲了使用悲观锁来解决…

Unity3D对象池设计与实现详解

前言 在Unity3D中&#xff0c;对象池&#xff08;Object Pooling&#xff09;是一种优化技术&#xff0c;用于减少频繁实例化和销毁对象带来的性能开销。以下是对象池的详细设计和实现步骤&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点…

[Spring]-组件的生命周期

组件生命周期 认识组件的声明周期 实验1 通过Bean指定组件的生命周期 package com.guigu.spring.ioc.bean;Data public class User {private String username;private String password;private Car car;Autowiredpublic void setCar(Car car) {System.out.println("自动…

【golang】网络数据包捕获库 gopacket

详解 github.com/google/gopacket/pcap 包 github.com/google/gopacket/pcap 是 Go 语言中一个强大的网络数据包捕获库&#xff0c;它是 gopacket 项目的一部分&#xff0c;提供了对 libpcap&#xff08;Linux/Unix&#xff09;和 WinPcap&#xff08;Windows&#xff09;的 G…

RBTree的模拟实现

1&#xff1a;红黑树的概念 红⿊树是⼀棵⼆叉搜索树&#xff0c;他的每个结点增加⼀个存储位来表⽰结点的颜⾊&#xff0c;可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束&#xff0c;红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍&#xff0c;因…

React 第三十九节 React Router 中的 unstable_usePrompt Hook的详细用法及案例

React Router 中的 unstable_usePrompt 是一个用于在用户尝试离开当前页面时触发确认提示的自定义钩子&#xff0c;常用于防止用户误操作导致数据丢失&#xff08;例如未保存的表单&#xff09;。 一、unstable_usePrompt用途 防止意外离开页面&#xff1a;当用户在当前页面有…

OSI 7层模型

OSI 7层模型&#xff1a; 1、物理层&#xff08;光纤等把电脑连接起来的物理手段&#xff09; 2、数据链路层&#xff08;以太网&#xff0c;确认0和1电信号的分组方式&#xff0c;负责MAC地址&#xff0c;MAC地址用于在网络中唯一标示一个网卡&#xff0c;相当于网卡的身份证…

视频编解码学习十一之视频原始数据

一、视频未编码前的原始数据是怎样的&#xff1f; 视频在未编码前的原始数据被称为 原始视频数据&#xff08;Raw Video Data&#xff09;&#xff0c;主要是按照帧&#xff08;Frame&#xff09;来组织的图像序列。每一帧本质上就是一张图片&#xff0c;通常采用某种颜色格式…

Redis学习打卡-Day1-SpringDataRedis、有状态无状态

Redis的Java客户端 Jedis 以 Redis 命令作为方法名称&#xff0c;学习成本低&#xff0c;简单实用。Jedis 是线程不安全的&#xff0c;并且频繁的创建和销毁连接会有性能损耗&#xff0c;因此推荐使用 Jedis 连接池代替Jedis的直连方式。 lettuce Lettuce是基于Netty实现的&am…

告别静态配置!Spring Boo动态线程池实战指南:Nacos+Prometheus全链路监控

一、引言 1.1 动态线程池的必要性 传统线程池的参数&#xff08;如核心线程数、队列容量&#xff09;通常通过配置文件静态定义&#xff0c;无法根据业务负载动态调整。例如&#xff0c;在电商大促场景中&#xff0c;流量可能瞬间激增&#xff0c;静态线程池容易因配置不合理导…

Flask如何读取配置信息

目录 一、使用 app.config 读取配置 二、设置配置的几种方式 1. 直接设置 2. 从 Python 文件加载 3. 从环境变量加载 4. 从字典加载 5. 从 .env 文件加载&#xff08;推荐开发环境用&#xff09; 三、读取配置值 四、最佳实践建议 在 Flask 中读取配置信息有几种常见方…