Flume 测试 Kafka 案例

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 部分的配置要注意,由于版本不一样有的配置需要做一点转换才能跑成功。一定要注意检查日志。

相关推荐
一个天蝎座 白勺 程序猿5 小时前
从电网改造踩坑说起:深度拆解时序大模型TimechoAI的自主可控与安全合规底气
大数据·运维·服务器·大模型·timechoai
有浔则灵6 小时前
GORM钩子函数详解
网络·安全·web安全
小柯南敲键盘7 小时前
批量图片翻译与视频字幕一站式解决高效跨境电商沟通难题
大数据·人工智能·python·音视频
Urbano10 小时前
卫衣生产工艺科普与智能自动化设备应用解析
大数据·运维·人工智能
kp0000010 小时前
Prompt注入攻击(Prompt Injection Attack)
人工智能·安全·网络安全·信息安全·ai安全
Geeys11 小时前
拼多多投产比(ROI)越高好还是越低好?深度拆解合理阈值与高效提效工具
大数据
QC777LX11 小时前
运营岗位怎么借AI提升内容、活动和复盘效率?
大数据·人工智能
智塑未来12 小时前
AI Agent 搜索工具选型参考:聚焦 AI Agent 搜索的垂直专用基础设施
大数据·人工智能
Python+9913 小时前
Codex++安全边界探秘:从模型能力到风险防御
安全
Sagittarius_A*13 小时前
CSRF 跨站请求伪造:伪造请求攻击、绕过手段与底层防御
安全·web安全·csrf·dvwa