【大数据工具】Kafka伪分布式、分布式安装和Kafka-manager工具安装与使用

news2024/11/25 6:11:32

Kafka 安装

Kafka 安装包下载地址:https://archive.apache.org/dist/kafka/

1. Kafka 伪分布式安装

1. 上传并解压 Kafka 安装包

  1. 使用 FileZilla 或其他文件传输工具上传 Kafka 安装包:kafka_2.11-0.10.0.0.tgz
  2. 解压安装包
[root@bigdata software]# tar -zxvf kafka_2.11-0.10.0.0.tgz

2. 编辑配置文件

[root@bigdata software]# mv kafka_2.11-0.10.0.0 kafka
[root@bigdata software]# cd kafka/config/
[root@bigdata config]# cp server.properties server1.properties
[root@bigdata config]# vi server1.properties
# 每台 brokerId 都不相同,此处设置1
broker.id=1

# 在 log.retention.hours=168 后新增下面三行
message.max.byte=5242880
default.replication.factor=1
replica.fetch.max.bytes=5242880

# 设置zookeeper的连接端口(按实际填写即可,下边zk也是伪分布的)
# 说明:直接用节点名:端口,需要在本机 /etc/hosts 中编写解析 172.16.15.111 bigdata
zookeeper.connect=bigdata:2181,bigdata:2182,bigdata:2183

# 日志文件的目录,自定义即可,注意区分
log.dirs=/software/kafka/logs/worker1

3. 拷贝并修改配置文件

[root@bigdata config]# cp server1.properties server2.properties
[root@bigdata config]# cp server1.properties server3.properties

分别修改 server2.properties、server3.properties

[root@bigdata config]# vi server2.properties
broker.id=2
log.dirs=/software/kafka/logs/worker2

[root@bigdata config]# vi server3.properties
broker.id=3
log.dirs=/software/kafka/logs/worker3

4. 创建日志文件

[root@bigdata config]# cd ../logs
[root@bigdata logs]# mkdir worker1 worker2 worker3

5. 验证

[root@bigdata kafka]# ./bin/kafka-server-start.sh -daemon ./config/server1.properties
[root@bigdata kafka]# ./bin/kafka-server-start.sh -daemon ./config/server2.properties
[root@bigdata kafka]# ./bin/kafka-server-start.sh -daemon ./config/server3.properties
[root@bigdata kafka]# jps
10131 Kafka
10611 Kafka
10389 Kafka
10693 Jps

6. 创建 Topic

# 创建Topic t1
[root@bigdata kafka]# ./bin/kafka-topics.sh --create --zookeeper bigdata:2181 --replication-factor 1 --partitions 1 --topic t1
Created topic "t1".

# 查看Topic列表(list)
[root@bigdata kafka]# ./bin/kafka-topics.sh --list --zookeeper bigdata:2181
t1

# 查看指定Topic信息(describe)
[root@bigdata kafka]# ./bin/kafka-topics.sh --describe --zookeeper bigdata:2181 --topic t1
Topic:t1	PartitionCount:1	ReplicationFactor:1	Configs:
	Topic: t1	Partition: 0	Leader: 1	Replicas: 1	Isr: 1

7. 测试生产和消费消息

  1. 打开生产者客户端并发送消息
[root@bigdata kafka]# ./bin/kafka-console-producer.sh --broker-list bigdata:9092 --topic t1
hello world  # 输入 hello world 后回车,即表示已发送消息
  1. 新打开一个终端窗口链接 bigdata,并启动客户端接收消息
[root@bigdata kafka]# ./bin/kafka-console-consumer.sh --bootstrap-server bigdata:9092 --zookeeper bigdata:2182 --topic t1 --from-beginning
hello world

至此,Kafka 伪分布式集群安装完成!

2. Kafka 分布式安装

部署安装 Kafka 与 ZooKeeper。理论上 Kafka 与 ZooKeeper 不应该搭建到一起

1、上传解压重命名

tar –zxvf kafka_2.12-2.2.0.tar.gz
mv kafka_2.12-2.2.0 kafka 

2、修改配置

cd /software/kafka/config/
vi server.properties

# 在log.retention.hours=168 后新增下面三项
message.max.byte=5242880
default.replication.factor=1
replica.fetch.max.bytes=5242880

# 设置zookeeper的连接端口
zookeeper.connect=hadoop0:2181,hadoop1:2181,hadoop2:2181

# 日志文件的目录,设置成刚刚创建的logs目录
log.dirs=/software/kafka/logs/

3、将 kafka 拷贝到集群节点

scp -r kafka/ root@172.16.15.101:/software/
scp -r kafka/ root@172.16.15.102:/software/

4、修改集群节点 kafka/config/server.properties 中 broker.id 值

cd /software/kafka/config/
vi server.properties
# 每台brokerId都不相同,Hadoop1修改broker.id=1,Hadoop2修改broker.id=2
broker.id=0 

5、验证集群

  • 启动 Kafka(集群各节点全部执行):
# 启动命令(Kafka目录下):
./bin/kafka-server-start.sh -daemon ./config/server.properties
# 执行jps会打印kafka进程
[root@hadoop0 kafka]# jps
18295 Kafka
19086 Jps
# 或使用ps -ef | grep kafka 也可以查到

# 停止命令(Kafka目录下):
./bin/kafka-server-stop.sh

3. Kafka监控软件 Kafka-manager

1. Kafka-manager 功能介绍

  • 管理多个 Kafka 集群
  • 便捷的检查 Kafka 集群状态(topic,broker,备份分布情况,分区分布情况)
  • 选择要运行的副本
  • 基于当前分区状况进行
  • 可以选择 topic 配置并创建 topic(0.8.1.1 和 0.8.2 的配置不同)
  • 删除 topic(只支持 0.8.2 以上的版本并且要在 broker 配置中设置 delete.topic.enable=true
  • Topic list 会指明哪些 topic 被删除(0.8.2 以上版本使用)
  • 为已存在的 topic 增加分区
  • 为已存在的 topic 更新配置
  • 在多个 topic 上批量重分区
  • 在多个 topic 上批量重分区(可选 partition broker 位置)

2. Kafka-manager 安装

将 kafka-manager-1.3.3.7.zip 安装包导入Hadoop0:/software/ 下进行解压:

[root@hadoop0 software]# unzip kafka-manager-1.3.3.7.zip -d .

修改配置:

[root@hadoop0 software]# cd kafka-manager-1.3.3.7/
[root@hadoop0 kafka-manager-1.3.3.7]# vim conf/application.conf
# 注释下面一行行,添加第二行
# kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts="172.16.15.100:2181,172.16.15.101:2181,172.16.15.102:2181"

启动:

# Kafka-manager目录下:
# 方式一:按默认方式启动,默认端口为9000
bin/kafka-manager
# 方式二:指定配置文件位置和启动端口号:
# 可通过 -Dconfig.file=conf/application.conf 指定配置文件; -Dhttp.port 指定端口
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &

[root@hadoop0 kafka-manager-1.3.3.7]# bin/kafka-manager
15:03:48,422 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
15:03:48,422 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
...
[info] play.api.Play - Application started (Prod)
[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
[info] k.m.a.KafkaManagerActor - Updating internal state...
[info] k.m.a.KafkaManagerActor - Updating internal state...
# 以下页面的操作完成后,使用 Ctrl+C 退出

这样就说明kafka_manager服务端口已经监听啦,我们可以直接去访问kafka-manager的web UI页面了:

172.16.15.100:9000  # 默认端口 9000

  • 可以在当前目录下看到新生成了RUNNING_PID文件:
[root@hadoop0 kafka-manager-1.3.3.7]# ll
总用量 28
drwxr-xr-x 3 root root   18 114 22:47 application.home_IS_UNDEFINED
drwxr-xr-x 2 root root   52 114 22:37 bin
drwxr-xr-x 2 root root  136 114 23:56 conf
drwxr-xr-x 2 root root 8192 114 22:37 lib
-rw------- 1 root root   98 114 23:44 nohup.out
-rw-r--r-- 1 root root 6335 65 2017 README.md
-rw-r--r-- 1 root root    5 115 00:02 RUNNING_PID  # this one!
drwxr-xr-x 3 root root   17 114 22:37 share

3. Kafka-manager 使用

1. 创建集群

  • 点击【Cluster】,选择【Add Cluster】添加集群

  • 填写 zk 集群的各机器 ip 与端口,选择 kafka 版本(尽量选择版本比较低的,相对稳定一些),下边默认为 1 的输入框输入 3(大于等于 2)即可:

  • 注意:如果没有在 Kafka 中配置过 JMX_PORT,千万不要选择第一个复选框:Enable JMX Polling。如果选择了该复选框,Kafka-manager 可能会无法启动。

  • 保存之后,就可以看到详细的信息了:

  • 选择集群列表即可看到刚才创建的 Kafka 集群了:

  • 可以修改(modify)禁用(disable)

2. 创建主题

  • 顶部菜单栏选择【Topic】,点击【Create】,填写名称、分区、副本:

  • 图解:

说明:

  • 在上图的一个 Kafka 集群中,有两个服务器,每个服务器上都有 2 个分区。P0、P3 可能属于同一个主题,也可能是两个不同的主题;
  • 如果设置的 Partitions 和 Replication Factor 都是 2,这种情况下该主题的分布就和上图中 Kafka 集群显示的相同,此时,P0、P3 是同一个主题的两个分区;P1、P2 也是同一个主题的两个分区,Server1、Server2 其中一个会作为 Leader 进行读写操作,另一个通过复制进行同步;
  • 如果设置的 Partitions 和 Replication Factor 都是 1,则只会根据算法在某个 Server 上创建一个分区,可以是 P0~P4 中的某一个(分区都是新建的,不是先存在 4 个然后从中取 1)

创建完成即可看到:

  • 点击详细内容:

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

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

相关文章

为什么添加缓存要在释放锁之前?

为什么加缓存要放在释放锁之前? 线程拿到锁会去查缓存是否有数据,又因为我们向redis存入缓存数据是在释放锁之后 那么释放锁之后,下一个线程查缓存,上一个线程并未存入完成。此时就会出现查询多次数据库的情况,锁失效…

chatgpt赋能python:Python如何重复运行——让你的代码运行更高效

Python如何重复运行——让你的代码运行更高效 Python作为一种非常流行的编程语言,在程序员中间被广泛使用。无论是从事科学计算、数据分析还是网页爬虫,都离不开Python。但是,如果你只会最基础的Python语法,你可能会花费更多的时…

《三维存储芯片技术》----学习记录(一)

第1章 NAND存储器的生态 1.1 存储器行业变迁 可以说近10年是整个存储行业历史上变化最大的10年。 1.1.1 NAND及存储器供应商的整合 如图1.1所示,过去6年中,全球存储器95%的供应集中到5家厂商。 图片来源于《三维存储芯片技术》 1.1.2 NAND技术发展 …

行业应用|立仪光谱共焦位移传感器在玻璃方面的检测

项目:玻璃管管壁单边测厚 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 检测方案 用D35A7镜头对玻璃管管壁进行单边测厚,取三个点静态测量厚度并记录重复性。 1、采用D35A7R2S35镜头对玻璃管管…

springboot+vue企业设备管理系统

解决的思路: (1)通过进行需求分析,建立用例模型,上网查找资料,摸清业务流程。 (2)通过运用vue 技术进行界面的设计,上网搜集符合所做管理系统的相关图片,使用…

springboot 配置文件密码加密处理

一、修改pom文件 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.4</version> </dependency> 二、在启动类中加上注解 EnableEncryptableProp…

开源实时位置共享服务Hauk

【勘误】&#xff1a;在上文 『事务与项目跟踪软件Jira』 一文中&#xff0c;老苏错误的将 4G 内存写成了 4M&#xff0c;感谢网友 纸飞机 和 cwz 的指正。虽然老苏确实用过 4M 内存的机器&#xff0c;但那是20 多年前的事情了。 什么是 Hauk &#xff1f; Hauk 是一个完全开源…

Mysql数据库入门基础篇--mysql基本了解

【Mysql数据库入门基础篇--mysql基本了解 &#x1f53b;一、Mysql5.7 VS Mysql8.0 详解1.1 ⛳字符编码1.2 ⛳用户的创建与授权1.3 ⛳ 认证插件1.4 ⛳ 隐藏索引1.5 ⛳ 持久化设置1.6 ⛳ 通用表达式&#xff08;Common Table Expressions&#xff09;1.7 ⛳ 性能提升1.8 ⛳ 参数变…

chatgpt赋能python:Python如何输出在同一行

Python如何输出在同一行 在Python编程中&#xff0c;有时候我们需要将多个输出放在同一行中。这篇文章将介绍几种方法来实现这个任务&#xff0c;并给出一些例子来帮助你更好地理解。 方法一&#xff1a;使用print函数 Python中的print函数默认会在每个输出之间换行。但是&a…

【大数据工具】HBase 集群搭建与基本使用

HBase 集群搭建 HBase 安装包下载地址&#xff1a;https://archive.apache.org/dist/hbase/ 安装 HBase 的前提&#xff1a; ZooKeeper 集群 OKHadoop 集群 OK 1. HBase 集群安装 1. 将 HBase 软件包上传至 Hadoop0 解压并重命名 使用 FileZilla 将 hbase-1.3.1-bin.tar.g…

pytorch中Dataloader读取数据太慢的问题

文章目录 pytorch中Dataloader读取数据太慢的问题1. 方法2. 方法3. 解决方法&#xff1a;提取加载数据 pytorch中Dataloader读取数据太慢的问题 数据读取的速度远远大于GPU训练的速度&#xff0c;导致整个训练流程中有大部分时间都在等待数据发送到GPU&#xff0c;在资源管理器…

七年磨一剑!苹果王炸产品Vision Pro诞生,未来已来

这是第一款「不见却可透见」的苹果产品 等了整整七年&#xff01;2023年6月5日&#xff0c;WWDC23大会上&#xff0c;苹果发布首款头显Vision Pro&#xff0c;Vision Pro 可以算是苹果公司自 2015 年 Apple Watch 首次亮相以来最大的硬件产品发布&#xff0c;或许它会彻底改变数…

【深度学习】BERT变种—百度ERNIE 1.0

ERNIE: Enhanced Representation through Knowledge Integration是百度在2019年4月的时候&#xff0c;基于BERT模型&#xff0c;做的进一步优化&#xff0c;在中文的NLP任务上得到了state-of-the-art的结果。 ERNIE 是百度开创性提出的基于知识增强的持续学习语义理解框架&…

苹果又一黑科技产品 Apple Vision Pro,正式问世!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 在电影《钢铁侠》中&#xff0c;托尼通过简单的手势动作&#xff0c;配合空间中的虚拟界面&#xff0c;成功将贾维斯创造出来。 当时片中的这个镜头&#xff0c;让无数科幻迷为之疯狂&…

pyspark数据输入

学习目标&#xff1a; 现在只需要知道PDD是一个数据集。 【运行实例&#xff08;1&#xff09;】&#xff1a; from pyspark import SparkConf, SparkContext # conf:创建对象&#xff1b;Sparkconf&#xff1a;创建入口&#xff1b;setMaster&#xff1a;运行方式&#xff1…

chatgpt赋能python:Python如何输出两个值

Python如何输出两个值 在Python编程中&#xff0c;经常需要输出多个值。下面我们来介绍几种常用的方法。 方法一&#xff1a;使用逗号分隔符 使用逗号分隔符可以在一行代码中输出多个值。例如&#xff1a; a, b 1, 2 print(a, b) # 输出 1 2在输出时&#xff0c;多个值之…

图解未成年人个人信息保护要求(附下载)

未成年人互联网普及率持续提升。据2023年中国互联网络信息中心发布的第51次《中国互联网络发展状况统计报告》数据&#xff0c;2021年我国未成年人互联网普及率达96.8%&#xff1b;截至2022年12月&#xff0c;使用过短视频的青少年群体占比65.6%&#xff0c;未成年人已成网络参…

【Linux:进程间信号】

文章目录 1 生活角度的信号2 技术应用角度的信号3 信号的产生3.1 由系统调用向进程发信号3.1.1 signal3.1.2 kill3.1.3 raise 3.2 由软件条件产生信号3.3 硬件异常产生信号3.4 通过终端按键产生信号3.5 总结思考一下 4 信号的保存4.1信号其他相关常见概念4.2在内核中的表示4.3 …

如何评价 Facebook 发布的数字货币 Libra?

一句话总结&#xff1a;Libra 最大的亮点&#xff0c;在于它是 Facebook 做的。 随着数字货币市场的迅速发展&#xff0c;各类加密货币层出不穷。然而&#xff0c;在这个领域中&#xff0c;Facebook 所推出的 Libra 显得尤为引人关注。那么&#xff0c;Libra 到底有何特点&…

专家助阵!IoTDB X EMQ 智慧工厂主题 Meetup 讲师曝光!

期待已久的智慧工厂主题 Meetup 活动将在 4 天后线下线上同步举办&#xff01; 天谋科技将联手 EMQ&#xff0c;通过数据基础设施平台的核心技术与实践经验分享&#xff0c;提供流程协同、运营提效、生产质量保障等智能制造目标的可行方案。快来在推文结尾预约直播&#xff0c;…