flume数据采集扇入

.conf文件的定义

#1 Agent
a3.sources = r3 r4
a3.sinks = k3
a3.channels = c3

#2 source
#监控目录的类型
a3.sources.r3.type = spooldir
#监控目录的路径
a3.sources.r3.spoolDir = /opt/model/hadoop-2.8.4/logs
#哪个文件上传hdfs,然后给这个文件添加一个后缀
a3.sources.r3.fileSuffix = .COMPLETED
a3.sources.r3.fileHeader = true
#忽略所有以.tmp结尾的文件,不上传(可选)
a3.sources.r3.ignorePattern = ([^ ]*\.tmp)

#监控目录的类型
a3.sources.r4.type = netcat
a3.sources.r4.bind = bigdata111
a3.sources.r4.port = 44445



# 3 sink
a3.sinks.k3.type = hdfs
a3.sinks.k3.hdfs.path = hdfs://bigdata112:9000/flumeInput/%Y%m%d%H
#上传文件的前缀
a3.sinks.k3.hdfs.filePrefix = tinput-
#是否按照时间滚动文件夹
a3.sinks.k3.hdfs.round = true
#多少时间单位创建一个新的文件夹
a3.sinks.k3.hdfs.roundValue = 1
#重新定义时间单位
a3.sinks.k3.hdfs.roundUnit = hour
#是否使用本地时间戳
a3.sinks.k3.hdfs.useLocalTimeStamp = true
#积攒多少个Event才flush到HDFS一次
a3.sinks.k3.hdfs.batchSize = 100
#设置文件类型,可支持压缩
a3.sinks.k3.hdfs.fileType = DataStream
#多久生成一个新的文件
a3.sinks.k3.hdfs.rollInterval = 600
#设置每个文件的滚动大小大概是128M
a3.sinks.k3.hdfs.rollSize = 134217700
#文件的滚动与Event数量无关
a3.sinks.k3.hdfs.rollCount = 0
#最小副本数
a3.sinks.k3.hdfs.minBlockReplicas = 1

# Use a channel which buffers events in memory
a3.channels.c3.type = memory
a3.channels.c3.capacity = 1000
a3.channels.c3.transactionCapacity = 100

# Bind the source and sink to the channel
a3.sources.r3.channels = c3
a3.sources.r4.channels = c3
a3.sinks.k3.channel = c3

监控结果
监控bigdata111 44445端口输入数据
在这里插入图片描述

监控hadoop日志信息丙上传到hdfs
在这里插入图片描述

2个数据源采集到的数据合并上传到bigdata112 hdfs目录下
在这里插入图片描述

查看hdfs里面sink进来的具体数据
在这里插入图片描述

### Apache Flume 扇入配置概述 Apache Flume 是一种分布式的、可靠的、高可用的服务,用于高效地收集、聚合和移动大量日志数据。其支持多种拓扑结构,其中 **扇入** 是指从多个数据源采集数据并将其汇聚到单个 Flume 实例中[^1]。 以下是实现 Flume 扇入的一个典型配置示例: #### 配置文件示例 以下是一个简单的 `flume-conf.properties` 文件,展示了如何通过两个独立的数据源(Source A 和 Source B)将数据汇聚到同一个 Channel 中,并最终写入 HDFS 或其他目标存储系统。 ```properties # 定义 agent 的组件名称 agent.sources = sourceA sourceB agent.channels = channel1 agent.sinks = sink1 # 配置 Source A (例如:监听端口 44444) agent.sources.sourceA.type = netcat agent.sources.sourceA.bind = localhost agent.sources.sourceA.port = 44444 # 配置 Source B (例如:监听端口 55555) agent.sources.sourceB.type = netcat agent.sources.sourceB.bind = localhost agent.sources.sourceB.port = 55555 # 配置 Channel (内存通道) agent.channels.channel1.type = memory agent.channels.channel1.capacity = 1000 agent.channels.channel1.transactionCapacity = 100 # 将 Sources 连接到同一 Channel agent.sources.sourceA.channels = channel1 agent.sources.sourceB.channels = channel1 # 配置 Sink (例如:写入本地文件系统) agent.sinks.sink1.type = file_roll agent.sinks.sink1.channel = channel1 agent.sinks.sink1.sink.directory = /tmp/flume/events ``` 上述配置实现了如下功能: - 创建了两个 NetCat 类型的 Source (`sourceA` 和 `sourceB`),分别绑定到不同的端口上接收外部输入。 - 使用了一个共享的 Memory Channel (`channel1`) 来缓存来自这两个 Source 的事件。 - 数据最终会被写入指定目录 `/tmp/flume/events` 下的文件中。 这种设计模式正是典型的 “扇入” 架构——多条数据汇集成一条统一的数据[^2]。 #### 关键点说明 1. **Channel 共享机制**: 多个 Source 可以连接至相同的 Channel,从而实现数据汇聚的目的。 2. **负载均衡与可靠性**: 如果某些 Source 发生故障,则不影响整个系统的运行状态;同时可以通过增加更多的 Source 提升吞吐量。 3. **实际应用场景**: 假设某电商平台希望监控全国各地服务器产生的访问日志,并集中上传至 Hadoop 平台做进一步分析,在此情况下就可以采用类似的扇入方式来完成任务[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值