首页 > 代码库 > Flume学习笔记
Flume学习笔记
在HDFS中,文件只作为目录项存在,在文件关闭前,其长度一直显示为0。如果在一段时间内将数据写到文件中,但却没有将其关闭,那么一旦客户端出现网络中断,什么都得不到,只有一个空白的文件。
Flume的agent由三个部件构成:source、channel、sink.
其结构图如下:
三者之间的关系如下:
- source将event写到一个或多个channel中。
- channel作为event从source到sink传输的保留区。
- sink只从一个channel接收event。
- agent可能会有多个source、channel、sink。
channel包含内存channel和文件channel2种。
flume传输的基本单位叫event.它由0个或多个头与体组成。头是一些键值对,可用于路由判定或是承载其他结构化信息。体是字节数组,包含实际负载。event结构如下图:
拦截器是位于source和sink之间。可以用拦截器检查和修改flume的event,可在source创建event后或是sink发送event前链接0个或多个拦截器。
通道选择器负责将数据从一source转向一个或多个channel上。flume自带两个通道选择器,可以包含大多数据使用场景。
- 复制通道选择器(默认)将event的副本放到每个事先配置好的通道中。
- 多路通道选择器会根据某些头信息将event写到不同的通道中。
示例:
2处的机器生成2种类型数据(即三角形与矩形),对应代理使用了多路通道选择器将这两种数据划分到了不同的通道中。矩形与1处机器产生的数据合并后分到了数据中心1,三角形分到数据中心2中的ES中。
注意:数据转换可能发生在任何source之后以及任何sink之前。
Flume学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。