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之前。

时间: 2024-10-14 08:10:40

Flume学习笔记的相关文章

Flume学习笔记(二)问题整理

本文环境如下: 操作系统:CentOS 7.2.1511 64位 Flume版本:1.6.0 1. 当Flume与Hadoop不在同一服务器上 当Flume与Hadoop不在同一服务器上时,又配置了写HDFS,则Flume启动时会报找不到类的错误. 需要添加Hadoop相关的包到flume的classpath配置中(或者直接拷贝到flume的lib文件夹中). 具体需要的包,我是在maven项目中配置: <dependency> <groupId>org.apache.hadoop

Flume 学习笔记之 Flume NG+Kafka整合

Flume NG集群+Kafka集群整合: 修改Flume配置文件(flume-kafka-server.conf),让Sink连上Kafka hadoop1: #set Agent name a1.sources = r1 a1.channels = c1 a1.sinks = k1 #set channel a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacit

Flume 学习笔记之 Flume NG高可用集群搭建

Flume NG高可用集群搭建: 架构总图: 架构分配: 角色 Host 端口 agent1 hadoop3 52020 collector1 hadoop1 52020 collector2 hadoop2 52020 agent1配置(flume-client.conf): #agent1 name agent1.channels = c1 agent1.sources = r1 agent1.sinks = k1 k2 #set gruop agent1.sinkgroups = g1 #

Flume 学习笔记之 Flume NG概述及单节点安装

Flume NG概述: Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中.轻量,配置简单,适用于各种日志收集,并支持 Failover和负载均衡.其中Agent包含Source,Channel和 Sink,三者组建了一个Agent.三者的职责如下所示: Source:用来消费(收集)数据源到Channel组件中 Channel:中转临时存储,保存所有Source组件信息 Sink:从Channel中读取,读取成功后会删除Channel中的

spark学习笔记总结-spark入门资料精化

Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用.减少了延时处理,提高性能效率实用灵活性.也可以与hadoop切实相互结合. spark核心部分分为RDD.Spark SQL.Spark Streaming.MLlib.GraphX.Spark R等核心组件解决了很多的大数据问题,其完美的框架日受欢迎.其相应的生态环境包括zepplin等可视化方面

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------