flume

flume

可以监控的内容:

服务器本地磁盘文件夹

网络端口数据

agent是一个jvm进程,是以事件(event)的形式将数据从源头传送至目的地,事件就是一个类的对象,在source读入后进行封装

event由Header和Body组成,Body是数据,Header是Body的解释信息,元数据信息,格式

agent的三个组件:source,channel,sink(每一个组件就是一个类)

flume执行任务的配置文件格式:

agent:a1.sources= a1.sinks= a1.channels= //注意s

source:见下面source的配置

sink:见下面sink的配置

channel:a1.channel.c1.capacity=1000单位是event

a1.channel.c1.transactioncapacity=100 一次传多少

bind:

一个source可以绑定到多个channel

一个sink只能绑定给一个channel

source(传输,可以拦截数据)

常用的source

taildir-source:监控多个文件

avro source

exec source实时监控,一次性全部上传

spooling directory 与目录有关,新文件上传

netcat source监控端口

netcat source
过程:

netcat source—channel—logger sink

准备:

安装netcat:yum install -y nc

必须的配置

channels

type

bind 用户名或者IP

port 端口号

spooldir source

上传文件会加后缀,上传做简单校验,带有生成后缀名的文件上传,不会扫描,不会触发事件

必须的配置

channels

type

spoolDir

常用的配置

includePattern(包含,匹配就上传)

ignorePattern (忽略,匹配就不上传)

缺点

不能监控动态变化的文件,不可更改

taildir source

可以监控多目录,多文件(文件可以是不同目录的不同文件)

断点续传:通过一个文件来实现,position.json:

inode:全路径(cp,mv操作inode都会改变),position:偏移量

必须的配置:

channels

type

filegroups

filegroups.

positionFile = 。。。.json inode信息 系统生成,存有已经读取的位置的偏移量,保证断点续传

在这里插入图片描述

一个filegroups只能监控一个文件,配置多个文件会覆盖

exec存在单点故障,没有断点续传

taildir有断点续传,监控多个文件夹里的多个文件

exec source

exec tail -F -C +0从头开始读(-F会先读文件已经存在的最后10行)

必须的配置

channels

type

command

sink(沉槽)要启动的进程

常用的sink
hdfs sink
必须的配置

channel

type

hdfs.path

常用的配置

hdfs.rollInterval=30 30秒滚动当前文件

hdfs.rollSize=1024 一般设置为128M,134217000

hdfs.rollCount=10 事件数

以上配置是滚动当前文件,满足任意一个生成一个文件

hdfs.round =true 时间戳是否向下取整

hdfs.roundValue=1 值

hdfs.roundUnit=second 单元(时,分,秒)

hdfs.useLocalTimeStamp true:用本地时间戳

以上配置是生成文件时名字带的时间戳

Fileroll sink

导入到本地文件

必须的配置

channel

type

sink.directory

区别

File Roll sink需要提前创建文件

hdfs sink不需要提前创建文件

channel(通道,缓冲)

agent内部流程

channel选择器会选择到那个channel

channel选择器有两种策略:

1.replicating channel selector(default)副本channel选择器

2.multiplexing channel selector 多路channel选择器

flume事务

flume有两个事务

put事务source到channel过程

流程

doput:将批数据先写入临时缓冲区putList

doCommit:检查channel内队列是否能够合并

doRollback:channel内存队列空间不足,回滚数据

Take事务channel到sink过程

流程

doTake:将批数据先写入临时缓冲区takeList,并将数据发送到hdfs

doCommit:如果数据全部发送成功,则清除临时缓冲区takelist

doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takelist中的数据还给channel内存队列

sink组

3类:default sinkprocessor,loadbalancing cinkprocessor(负载均衡),failover sinkprocessor(故障转移,高可用)

loadbalancing cinkprocessor
负载均衡的三种方式:

1.round-robin 轮询

2.random 随机

3.FQCN 自定义

配置注意点

Processor backoff与selec.maxTimeOut(最大等待时间)结合使用,backoff成指数上升

拓扑结构

简单关联,复制和多路复用,avro,故障转移,聚合

复制

一个数据源到多个存储(hdfs,本地目录),需要多个agent

avro source是服务端,首先开启,avro sink是客户端,后开启,否则报错,但是在服务端开启后正常使用

agent组件可以只有两个

source+kafka channel

kafka channel+sink

TimeOut(最大等待时间)结合使用,backoff成指数上升

拓扑结构

简单关联,复制和多路复用,avro,故障转移,聚合

复制

一个数据源到多个存储(hdfs,本地目录),需要多个agent

avro source是服务端,首先开启,avro sink是客户端,后开启,否则报错,但是在服务端开启后正常使用

agent组件可以只有两个

source+kafka channel

kafka channel+sink

未完,持续更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值