Flume NG 学习笔记(五)Sinks和Channel配置

这篇博客详细介绍了Flume NG的各种Sinks,包括HDFS Sink、Logger Sink、Avro Sink、IRC Sink、File RollSink、Null Sink、HBaseSinks与AsyncHBaseSink,以及Custom Sink的基本概念和配置。同时,还探讨了MemoryChannel、JDBCChannel和FileChannel的使用,强调了它们在数据存储和传输中的作用和特性。

一、HDFS Sink

Flume Sink是将事件写入到Hadoop分布式文件系统(HDFS)中。主要是Flume在Hadoop环境中的应用,即Flume采集数据输出到HDFS,适用大数据日志场景。

目前,它支持HDFS的文本和序列文件格式,以及支持两个文件类型的压缩。支持将所用的时间、数据大小、事件的数量为操作参数,对HDFS文件进行关闭(关闭当前文件,并创建一个新的)。它还可以对事源的机器名(hostname)及时间属性分离数据,即通过时间戳将数据分布到对应的文件路径。 HDFS目录路径可能包含格式转义序列用于取代由HDFS Sink生成一个目录/文件名存储的事件。

注意:Hadoop的版本需要支持sync()方法调用,当然首先得按照Hadoop。

下面是HDFS  Sinks转义符的支持目录:

Alias

Description

%{host}

Substitute value of event header named “host”. Arbitrary header names are supported.

%t

Unix time in milliseconds

%a

locale’s short weekday name (Mon, Tue, ...)

%A

locale’s full weekday name (Monday, Tuesday, ...)

%b

locale’s short month name (Jan, Feb, ...)

%B

locale’s long month name (January, February, ...)

%c

locale’s date and time (Thu Mar 3 23:05:25 2005)

%d

day of month (01) 每月中的第几天

%D

date; same as %m/%d/%y

%H

hour (00..23)

%I

hour (01..12)

%j

day of year (001..366) 一年中的第几天

%k

hour ( 0..23)

%m

month (01..12)

%M

minute (00..59)

%p

locale’s equivalent of am or pm

%s

seconds since 1970-01-01 00:00:00 UTC

%S

second (00..59)

%y

last two digits of year (00..99)  年的后两位

%Y

year (2010)

%z

+hhmm numeric timezone (for example, -0400)

 

下面是官网给出的HDFS  Sinks的配置,加粗的参数是必选,可选项十分丰富,这里就不一一列出来了

Name

Default

Description

channel

 

type

The component type name, needs to be hdfs

hdfs.path

HDFS directory path (eg hdfs://namenode/flume/webdata/)

hdfs.filePrefix

FlumeData

Name prefixed to files created by Flume in hdfs directory 文件前缀

hdfs.fileType

SequenceFile

File format: currently SequenceFileDataStream or CompressedStream

hdfs.useLocalTimeStamp

false

Use the local time (instead of the timestamp from the event header) while replacing the escape sequences.

hdfs.codeC

Compression codec. one of following : gzip, bzip2, lzo, lzop, snappy

hdfs.round

false

Should the timestamp be rounded down (if true, affects all time based escape sequences except %t) 定时间用

hdfs.roundValue

1

Rounded down to the highest multiple of this (in the unit configured using hdfs.roundUnit), less than current time.(需要hdfs.round为true)

hdfs.roundUnit

second

The unit of the round down value - second, minute or hour.(同上)

 

下面是官网的例子,他的三个round*配置是将向下舍入到最后10分钟的时间戳记录。

假设现在是上午10时56分20秒等等,2014年10月24日的Flume Sinks的数据到输出到HDFS的路径为/flume/events/2014-10-24/1050/00的。。

a1.channels=c1

a1.sinks=k1

a1.sinks.k1.type=hdfs

a1.sinks.k1.channel=c1

a1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/%S

a1.sinks.k1.hdfs.filePr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值