flume学习(一)

flume结构

flume类别

flume-og

采用master结构,引入zookeeper进行管理
采用相同的线程进行数据的读写操作,写的效率低会降低读取的效率

flume-ng

取消master结构,取消zookeeper,完全变成传输工具
采用不同的线程进行数据的读写操作

flume结构

flume以agent为基本单位

agent:

source, channel, sink
cli => source(接受客户端数据) => channel(数据传输保存) => sink(发送数据) => Des(kafka…)

agent结构:

1.单agent
结构图<后续添加>

2.链式多agent
结构图<后续添加>

3.多路复用agent
结构图<后续添加>

source

主要用来接收客户端的请求,并将数据发送到channel中
一般情况下一个source对应多个channel(当然source和channle之间可以是多对多的关系)
通常情况下使用不同的名称对source进行区分
常用source:
avro source | thrift source | exec source | kafka source | netcat source
exec source ==> shell 命令
配置:

#a1 agent name
#r1 source name
a1.sources = r1
#source type
a1.sources.r1.type   = netcat
#netcat source的参数,不同类型的source具有不同的参数,具体后续章节在进行讲解
a1.sources.r1.bind   = dev-hadoop-single.com
a1.sources.r1.port   = 44444
#source的路由,配置source指向的channel
#c1 channel name
a1.sources.r1.channels = c1

channel

主要功能是数据的传输通道,source将数据传入channel,sink从channel中获取数据
常用channel:
Memory channel | JDBC Channel | Kafka channel | File channel
其中memory channel处理速度最快,jdbc/file channel可以将数据永久保存
配置:

#c1 channel name
a1.channels= c1
#channel type
a1.channels.c1.type                = memory
#memory channel 的特殊参数 
a1.channels.c1.capacity            = 1000
a1.channels.c1.transactionCapacity = 100 

sink

主要用来从channel中读取数据,同时将数据按照定义的方式进行输出,sink从channel中获取数据,其中channel和sink之间是一对多的关系,正常情况情况下使用一对一的关系
常用sink:
Hdfs sink | Hive sink | File sink | HBase sink | Avro sink | Thrift sink | Logger sink
其中Avro sink一般用来讲数据传输到下一个agent
配置:

#k1 sink name
a1.sinks   = k1
#sink type
a1.sinks.k1.type = logger
#指定sink从哪个channel中获取数据
a1.sinks.k1.channel = c1

flume event

flume 的agent三个模块之间传输的内容被称为event

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值