Flume 测试 Kafka 案例

news/2024/12/15 4:49:33/

Flume Kafka 测试案例,Flume 的配置。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

a1.sources = s1

a1.channels = c1

a1.sinks = k1

a1.sources.s1.type = netcat

a1.sources.s1.bind = master

a1.sources.s1.port = 44444

a1.channels.c1.type = memory

a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink

a1.sinks.k1.topic = t1 # kafka topic 不需要加 k1.kafka.topic,直接去掉 kafka

a1.sinks.k1.brokerList = master:9092 # 新的使用 brokerList,旧的使用 kafka.bootstrap.servers

  

a1.sources.s1.channels = c1

a1.sinks.k1.channel = c1

  1. 启动 kafka

1

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

  2. 创建 kafka topic,flume配置中的 topic 为 t1。

1

2

3

# 这里 --replication-factor 为1,是因为只启动了master上的kafka,从节点上面没有启动kafka,如果设置大于1的,需要将从节点的kafka也启动

# partitions 分区数量保持大于 replication-factor,分区大的话可以缓解数据过大的问题,解决内存不够,但是解决内存本质上还是需要从机器上解决。

kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 2 --topic t1

  3. 启动 flume

1

flume-ng agent -c conf -f conf/kafka_test.conf -n a1 -Dflume.root.logger=INFO,console

  4. 启动 kafka 的消费者,来观察看是否成功。

1

kafka-console-consumer.sh --bootstrap-server master:9092 --topic t1

  5. 由于 flume 配置文件中监控的命令是 netcat,启动一个远程,来发送消息。

1

2

3

4

# 如果没有 telnet, 使用 yum install telnet 进行安装

# localhost 本机

# 端口 44444,是flume配置文件中指定的,flume启动就会启动对应的端口监听

telnet localhost 44444 

  6. 测试

1

2

3

4

telnet localhost 44444

> hello

>world

>nice

  查看 kafka 的消费者窗口,会发现已经有了对应的内容

1

2

3

4

# kafka-console-consumer.sh --bootstrap-server master:9092 --topic t1

 hello

world

nice

  总结:一开始由于 flume 的配置文件没有写对,调试很久才调通,真是不应该。其次,flume启动之后要学会看对应的日志信息,比如启动flume后,就应该可以观察到kafka对应的topic,但是由于没有仔细看,发现前几次调试都是不通的,不论怎么做kafka 的消费者就是拿不到数据。但是最后发现如果 flume 配置文件不正确的话,启动 flume,监听的topic 是默认的 default-topic,所以最后问题出现在 flume 的配置文件上面,把对应的 flume 中关于 sink 部分的配置要注意,由于版本不一样有的配置需要做一点转换才能跑成功。一定要注意检查日志。


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

相关文章

EasyGBS点对点穿透P2P远程访问技术在安防视频监控中的应用

随着信息技术的快速发展,安防视频监控系统在公共安全领域的应用变得越来越广泛。传统的视频监控系统多依赖于中心服务器进行视频流的集中处理和分发,这不仅增加了网络带宽的负担,还可能成为系统性能瓶颈。为了解决这些问题,P2P&am…

【前端 Uniapp】使用Vant打造Uniapp项目(避坑版)

一、基本介绍 Uniapp 是基于 Vue.js 的开发框架,通过一套代码可以同时发布到多个平台的应用框架。而 Vant 是针对移动端 Vue.js 的组件库。通过这样的组合,我们可以快速构建出一个跨平台的移动应用。Vant 已经支持多种小程序和 H5 平台,也对…

亚信安全DeepSecurity完成与超云超融合软件兼容性互认

近日,亚信安全与超云数字技术集团有限公司(以下简称“超云”)联合宣布,亚信安全成功完成与超云超融合软件的产品兼容性互认证。经严格测试,亚信安全云主机安全DeepSecurity与超云FS5000增强型融合系统(简称…

Mybatis动态sql执行过程

动态SQL的执行原理主要涉及到在运行时根据条件动态地生成SQL语句,然后将其发送给数据库执行。以下是动态SQL执行原理的详细解释: 一、接收参数 动态SQL首先会根据用户的输入或系统的条件接收参数。这些参数可以是查询条件、更新数据等,它们…

调整Android导航栏(标题栏)的宽度高度

要调整导航栏(标题栏)的宽度,可以通过修改布局文件中的样式来实现。通常,标题栏是通过一个Toolbar或AppBarLayout来实现的。以下是一个示例,展示了如何调整标题栏的宽度和高度。 1. 修改布局文件 假设你的布局文件是…

【PyTorch】(基础五)---- 图像数据集加载

数据集 torchvision数据集 Torchvision在torchvision.datasets模块中提供了许多内置的数据集,以及用于构建您自己的数据集的实用程序类。关于一些内置数据集目录如下,点击进去之后会有详细的数据集介绍,包括数据集大小、分类类型、以及下载…

Sui 区块链 Move 语言基础:深入解析数据类型与模块概念

目录 前言Move 共学活动:快速上手 Move 开发一、整数类型1. Move 语言特性:强类型与类型安全2. 运算符3. 处理负数与小数 二、布尔类型三、地址类型1. 十六进制地址2. 命名地址 四、包和模块的概念1. 创建一个包2. 包名与配置文件一致性3. 模块名与文件名…

基于小程序实现日历课表、排班表、月份切换、快捷周切换、自定义课程内容、课程颜色、Mock数据开箱即用

目录 引言小程序开发背景本文目标:实现日历课表/排班表适用场景:学生课表、员工排班、日程安排等需求分析支持日历视图和课表/排班视图可以查看、添加、编辑、删除课表/排班项支持按周、月查看总结说明参考代码数据Mock引言 本文将介绍如何基于小程序实现一个日历课表和排班表…