Flume学习一(基本source、channel、sink)

默认命名如下:

a1.sources = r1

a1.sinks = k1

a1.channels = c1 c2 c3 c4

agent_name:a1     source_name:r1     channel_name:c1     sink_name:k1

1、Interceptors(sources)

拦截器的作用范围是数据源到source之间,主要是为了给数据添加headers,最常用的是timestamp、host、static。timestamp类型可以配合hdfs sink的文件输出的日期格式(hdfs sink也可以用hdfs.useLocalTimeStamp来当时间戳,但是不能代表数据的产生时间)。可以用host和static来做数据来源界定,既可以用来标记数据,也可以用来做数据分发的时候使用(配合Channel Selectors)。但是默认的Interceptor只能针对web打标签,不能针对event打标签。如果需要对数据进行标志,需要修改代码才能实现,比如avro  source可以修改org.apache.flume.clients.log4jappender.Log4jAppender的实现来增加一些数据上的处理。

2、Channel Selectors

选择器的作用范围是source到channel之间,主要是为了确定每个Event到哪个channel。最常用的类型是replicating和multiplexing,replicating是默认的,能够把Event分别复制到每个channel。multiplexing可以根据Event的headers里的key的不同的值把数据分发到不同的channel。

3、Sink Processors

处理器的作用范围是channel到sink之间,主要是为了确定Events到哪个sink。默认的是default,最常用的是failover(故障转移)和load_balance(负载均衡)。

4、Flume sources

avro(监听端口):

a1.sources.r1.type = avro

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = 44444

a1.sources.r1.ipFilter = true #开启ip黑白名单认证,多个验证顺序执行,或关系,只要满足一个即验证结束

a1.sources.r1.ipFilterRules = allow:ip:127.*,allow:name:localhost,deny:ip:*#这个意思是阻止任何ip访问,仅允许ip127开头和localhost通过

#拦截器部分,其他类型source组件一样

a1.sources.r1.interceptors.i1.type = timestamp

a1.sources.r1.interceptors.i2.type = host

a1.sources.r1.interceptors.i3.type = static

a1.sources.r1.interceptors.i3.key = test_key

a1.sources.r1.interceptors.i3.value = test_value

#选择器部分,其他类型source组件一样

a1.sources.r1.selector.type=multiplexing

a1.sources.r1.selector.header=state

a1.sources.r1.selector.mapping.CZ=c1

a1.sources.r1.selector.mapping.US=c2 c3

a1.sources.r1.selector.default=c4

exec(常用量监控文件):

a1.sources.r1.type=exec

a1.sources.r1.command=tail -F /var/log/secure

a1.sources.r1.batchSize=20 #批处理条数,每次上传数据的条数,不到不传

a1.sources.r1.batchTimeout=3000 #等待数据时间(单位毫秒),如果在时间内没有收集到20条数据也需要传输数据

spooldir(监控目录):

a1.sources.r1.type = spooldir

a1.sources.r1.spoolDir = /home/hadoop/app/flume-1.6.0-cdh5.14.0-bin/tmp/

a1.sources.r1.fileSuffix = .org

a1.sources.r1.deletePolicy = never #读完删除与否,默认不删除(never),immediate立即删除

a1.sources.r1.fileHeader = true

a1.sources.r1.fileHeaderKey = ruoze_file #headers里添加ruoze_file=文件全路径

a1.sources.r1.basenameHeader = true

a1.sources.r1.basenameHeaderKey = ruoze_base #headers里添加ruoze_base=文件名

a1.sources.r1.trackerDir = /home/hadoop/app/flume-1.6.0-cdh5.14.0-bin/flumespool

TAILDIR(多目录的文件监控):

a1.sources.r1.type = TAILDIR

a1.sources.r1.filegroups = f1 f2

a1.sources.r1.positionFile = /home/hadoop/app/flume-1.6.0-cdh5.14.0-bin/positions/taildir_position.json

a1.sources.r1.filegroups.f1 = /home/hadoop/app/flume-1.6.0-cdh5.14.0-bin/tmp

a1.sources.r1.headers.f1.ruoze = TAILDIR_f1

a1.sources.r1.byteOffsetHeader = true #字节偏移量放到headers

a1.sources.r1.writePosInterval = 3000 #偏移量记录时间间隔

a1.sources.r1.filegroups.f2 = /home/hadoop/app/flume-1.6.0-cdh5.14.0-bin/flumespool

a1.sources.r1.headers.f2.ruoze2 = TAILDIR_f2

netcat(监听端口):

a1.sources.r1.type = netcat

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = 44444

a1.sources.r1.max-line-length = 1024 #一行的最大长度,超出长度会报错并断掉连接

a1.sources.r1.ack-every-event = true #应答OK给每个Event


5、Flume channels

memory(内存管道):

a1.channels = c1

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000#缓存最大Event条数

a1.channels.c1.transactionCapacity = 100#事物包括的Event最大条数,source和sink的batchSize需要小于该值

file(文件管道):

a1.channels.c1.type = file

a1.channels.c1.checkpointDir = #监测点文件路径

a1.channels.c1.useDualCheckpoints = true #监测点文件是否备份

a1.channels.c1.backupCheckpointDir = #监测点文件备份路径

a1.channels.c1.dataDirs = #数据存储目录

6、Flume  sinks

logger(控制台打印信息):

a1.sinks.k1.type = logger

flume-ng启动时需要加上:-Dflume.root.logger=INFO,console

avro(往avro  source推送数据):

a1.sinks.k1.type = avro

a1.sinks.k1.hostname = localhost #目标ip

a1.sinks.k1.port = 44444 #目标端口

HDFS(写数据到HDFS):

a1.sinks.k1.type = hdfs

a1.sinks.k1.hdfs.path = hdfs://192.168.205.131:9000/data/%Y%m%d%H%M  #这个时间的格式需要时间戳来进行转换,需要headers里有timestamp

a1.sinks.k1.hdfs.filePrefix = app_name #文件前缀

a1.sinks.k1.hdfs.fileSuffix = .log #文件后缀

a1.sinks.k1.hdfs.inUseSuffix = .tmp #正在写入文件后缀

a1.sinks.k1.hdfs.rollInterval = 30 #临时文件转正式文件的时间,单位秒,如果为0,则不限制,和rollSize、rollCount为或关系

a1.sinks.k1.hdfs.rollSize = 10485760 #临时文件转正式文件的大小,单位byte,如果为0,则不限制

a1.sinks.k1.hdfs.rollCount = 100000 #临时文件转正式文件记录条数,如果为0,则不限制

a1.sinks.k1.hdfs.round = true #是否启用时间上的”舍弃”。如果启用,则会影响除了%t的其他所有时间表达式

a1.sinks.k1.hdfs.roundValue = 10#时间上进行“舍弃”的值,这里是舍弃10分钟以内的值,意味着每10分钟新建一个目录

a1.sinks.k1.hdfs.roundUnit = minute #时间上进行”舍弃”的单位,包含:second,minute,hour

a1.sinks.k1.hdfs.useLocalTimeStamp = true #如果source里没有timestamp时间戳,则需要该参数为true

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容