【大数据学习 | flume】flume之常见的channel组件

Channel是连接Source和Sink的组件,大家可以将它看做一个数据的缓冲区(数据队列),它可以将事件暂存到内存中也可以持久化到本地磁盘上, 直到Sink处理完该事件,Flume对于Channel,则提供了Memory Channel、JDBC Chanel、File Channel。

​ MemoryChannel可以实现高速的吞吐,但是无法保证数据的完整性。

​ FileChannel保证数据的完整性与一致性。

​ Spillable Memory Channel基于内存和磁盘,内存不够时将数据存储在磁盘中,数据出错恢复时,只恢复磁盘中的数据,还在测试阶段不建议在生产环境用。

1. file channel

bash 复制代码
# file channel

#给agent组件起名
a1.sources=r1
a1.sinks=k1
a1.channels=c1

#定义source
a1.sources.r1.type=netcat
a1.sources.r1.bind=11.90.214.80
a1.sources.r1.port=44444

#定义channel
a1.channels.c1.type=file
a1.channels.c1.dataDirs = /root/filedata

#定义sink
a1.sinks.k1.type=logger
#绑定
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1

创建数据输出目录

bash 复制代码
mkdir -p /root/filedata

启动flume agent a1 服务端

bash 复制代码
flume-ng agent -n a1 -c /usr/local/flume/conf/ -f ./fileroll.agent -Dflume.root.logger=INFO,console

2. Kafka Channel

将数据存储到kafka中,kafka数据也是存储在磁盘中,并且kafka提供了高可用的功能,数据不会丢失。

重新启动镜像并需要添加kafka的组件。

bash 复制代码
#给agent组件起名
a1.sources=r1
a1.sinks=k1
a1.channels=c1

#定义source
a1.sources.r1.type=netcat
a1.sources.r1.bind=11.90.214.80
a1.sources.r1.port=44444

#定义channel
a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers = kafka-1:9092,kafka-2:9092,kafka-3:9092
a1.channels.c1.kafka.topic = hainiu
a1.channels.c1.kafka.consumer.group.id = flume-consumer

#定义sink
a1.sinks.k1.type=logger
#绑定
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1

启动flume agent a1 服务端

bash 复制代码
flume-ng agent -n a1 -c /usr/local/flume/conf/ -f ./kafkachannel.agent -Dflume.root.logger=INFO,console

测试kafka中是否存储flume收集过来的数据:

启动kafka消费者消费指定分区的数据

bash 复制代码
#创建主题
./kafka-topics.sh --zookeeper11.99.16.105:2181 --create --topic hainiu --replication-factor 1 --partitions 1
#生产者生产数据
./kafka-console-producer.sh --broker-list 11.99.16.105:9092--topic hainiu
#消费者消费数据
kafka-console-consumer.sh --bootstrap-server 11.99.16.105:9092 --topic hainiu

通过telnet向flume监听的端口发数据

flume logger sink将数据打印在控制台

相关推荐
敬往事一杯酒哈13 小时前
海康 AGV 导航读码器学习
学习
问商十三载14 小时前
AI引擎生成式优化实践:刑事辩护律师团队IP构建
大数据·人工智能
qq_2842740515 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
会议咨询15 小时前
2026年大数据、信息系统与智能通信国际会议(BDIIC 2026)
大数据·信息系统·智能通信
Raas10015 小时前
MAI Gateway(魔芋企业级AI网关)能力解析:AI网关能做故障转移吗?AI网关核心功能详解
大数据·人工智能·网关·ai·gateway·mai gateway
qq_2842740516 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
IT研究所16 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
回眸&啤酒鸭16 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
Titan202417 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
大大大大晴天17 小时前
每天认识一个组件:Apache DolphinScheduler
大数据