flume监听文件目录sink到hdfs配置

本文详细介绍了Flume作为一款分布式、可靠、高可用的日志聚合系统的特性,包括其架构组成(源-Source,接收器-Sink,通道-Channel)。通过配置文件示例,展示了如何设置Flume来收集特定目录下的日志文件,并将数据写入HDFS,策略为时间间隔或文件大小达到一定条件时触发。此外,还提供了启动Flume的命令示例。

一:flume介绍

Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

Flume架构分为三个部分 源-Source,接收器-Sink,通道-Channel。

二:配置文件

此配置文件source为一个目录,注意,该目录下的文件应为只读,不可写,且文件名不能相同,采用的channels为file,sink为hdfs,此处往hdfs写的策略是当时间达到3600s或者文件大小达到128M。

agent1.sources = spooldirSource

agent1.channels = fileChannel

agent1.sinks = hdfsSink

agent1.sources.spooldirSource.type=spooldir

agent1.sources.spooldirSource.spoolDir=/data/lwq/new_log

agent1.sources.spooldirSource.channels=fileChannel

agent1.sinks.hdfsSink.type=hdfs

agent1.sinks.hdfsSink.hdfs.path=hdfs://dev228:8020/raw/lwq/%y-%m-%d

agent1.sinks.hdfsSink.hdfs.filePrefix=lwq

agent1.sinks.sink1.hdfs.round = true

# Number of seconds to wait before rolling current file (0 = never

roll based on time interval)

agent1.sinks.hdfsSink.hdfs.rollInterval = 3600

# File size to trigger roll, in

Flume本地目录文件采集到HDFS可按以下步骤操作: 1. **创建配置文件**:创建一个后缀为.conf的配置文件,命名需遵循见名知意原则,如命名为flume-dir-hdfs.conf,该文件一般放在flume的job目录下,因为flume的每一个任务都要创建一个配置文件。可使用如下命令创建: ```bash vim flume-dir-hdfs.conf ``` 在配置文件中需完成相关配置信息的编写,不过引用中未提及具体配置内容,一般而言,配置文件中要对source(如监控本地目录)、channel(数据传输通道)、sink(将数据写入HDFS)进行详细配置。例如,简单示例配置如下: ```properties # 定义组件名称 a1.sources = r1 a1.sinks = k1 a1.channels = c1 # 配置source a1.sources.r1.type = spooldir a1.sources.r1.spoolDir = /your/local/directory # 本地监控目录 a1.sources.r1.fileHeader = true # 配置channel a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # 配置sink a1.sinks.k1.type = hdfs a1.sinks.k1.hdfs.path = hdfs://your-hdfs-namenode:port/your/hdfs/path # HDFS存储路径 a1.sinks.k1.hdfs.fileType = DataStream a1.sinks.k1.hdfs.writeFormat = Text # 绑定source、channel和sink a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` 2. **启动监控**:完成配置文件编写后,启动Flume agent监听本地目录文件变化并将文件上传到HDFS。启动命令格式通常为: ```bash bin/flume-ng agent -n <agent_name> -f <config_file_path> ``` 示例命令(假设agent名为a1配置文件路径为flume-dir-hdfs.conf): ```bash bin/flume-ng agent -n a1 -f flume-dir-hdfs.conf ``` 启动后,当本地目录有新文件增加时,Flume就会把文件上传到HDFS指定路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值