Flume学习笔记

Flume学习笔记

本章代码链接:https://github.com/gitdreams/hadoop-book/tree/master/ch14-flume

  • 1、要想使用Flume,就需要运行Flume代理,Flume代理有持续运行的source(数据来源),sink(数据目标)以及channel(用于连接source和sink)构成的java进程。
    源,水池,渠道
  • 2、事务和可靠性,Flume使用两个独立的事务负责sourcechannel和channelsink的事件传递。

  • 3、channel 可以分为file channel 和 memory channel ,其中file channel 具有持久性,重启代理事件也不会丢失;memory channel 不具有持久性,重启代理事件会丢失,但是吞吐量较高。

  • 4、at-least-once 至少一次, exactly-once 恰好一次

  • 5、HDFS Sink,使用spooling diretoty source 和HDFS sink的Flume配置

agent1.sources = source1
agent1.sinks=sink1
agent1.channels=channel1

agent1.sources.source1.channels=channel1
agent1.sinks.sink1.channel=channel1

agent1.sources.source1.type =spooldir
agent1.sinks.sink1.channel=/tmp/spooldir

agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path/tmp/flume
agent1.sinks.sink1.hdfs.filePrefix=events
agent1.sinks.sink1.hdfs.fileSuffix=.log
agent1.sinks.sink1.hdfs.inUsePrefix=_
agent1.sinks.sink2.hdfs.fileType=DataStream

agent1.channels.channel1.type=file 

配置文件大体内容
Flume启动命令

# flume-ng agent -n agent -c . -f ./flume.conf

-c 指定配置文件路径,-f 指定配置文件,如果启动命令没有-Dflume.root.logger=INFO,console,则在使用默认配置,如果在启动命令后加上-Dflume则会覆盖默认配置,然后启动。

  • 6、分区和拦截器
    大型数据集常常被组织为分区(partition),Flume事件通常按照时间来分区,一个Flume时间被写入哪个分区是由事件的header中的时间戳决定的,可以使用时间拦截器,它将为每一个source产生的每个事件添加一个时间戳header,
    Agent1.sources.source1.interceptors=interceptor1
    Agent1.sources.source1.interceptors.interceptor1.type=timestamp

  • 7、文件格式
    默认的Hdfs.fileType文件格式是SequenceFile序列文件。键的数据类型为LongWritable(header中的时间戳,如果没有就用当前时间),数据的类型为ByteWritable。

  • 8、扇出
    扇出(fan out)是指一个source向多个channel,亦即向多个sink传递事件

  • 9、交付保证
    待编辑

  • 10、复制和复用选择器
    Source想使一些事件流向一个channel,另一个事件流向另一个channel,可以通过在source上设置一个复用选择器来实现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值