1、什么是Flume:apache顶级项目,主要用来做数据采集。分布式、高可用,将海量日志进行采集、聚合、传输的系统。能够对数据进行简单处理在发送到接收方。

2、Flume组件:source、channel、sink,一个Flume可以有一个source,多个channel、多个sink

(1)source:数据收集组件,将日志从不同的client中收集过来。

(2)channel:数据缓冲区。临时存储从source传过来的Event。

(3)sink:将event从channel中读取出来并移除,传输至数据接收方,或者连接下一个agent的线管中。

source、channel、sink共同组成了一个agent,一个agent就是一个JVM,一个angent运行在一台服务器上。

event是一个数据单元,由消息头和消息体组成,可以是日志记录、avro对象。

3、source常见的源:spooling directory、exec、syslog、JMS Source、Avro Source

三种可监控文件或目录的source:

spooling directory source:监控一个目录,并同步目录下的新文件到sink,被同步完的文件可被立即删除或打上标记。适用于同步新文件,不适用于实时追加日志的文件进行监听和同步。可改进解决。

exec source:可以通过tail -f 命令tail住一个文件,然后将日志文件追加的内容实时同步到sink中。但是存在的问题就是agent挂了,再次重启,会有数据重复读取的问题。可通过添加uuid来解决,或改进。

taildir source:可以实时监控一批文件,并记录每个文件最新消费的位置。agent重启后不会有重复消费的问题。

JMS Source:java 消息中间件。

Avro Source:数据序列化系统。

补充:这里的source组件可以自定义:例如项目需要监控mysql中的数据,实时的从mysql中拉取数据,这时我们可以自己实现MysqlSource。参考官方文档,需要继承AbstractSource并实现其中的方法。

4、双层Flume:双层Flume主要用来做    负载均衡、容灾

第一层Flume做数据采集,第二层Flume做数据聚合和sink。两层之间采用sinkGroup实现负载均衡。

第一层某个代理失败,那么可以考虑由第一层的其他节点来接管故障节点。如果是第二层代理停止运行,则为了防止数据丢失,只能让每一个第一层代理具有多个冗余的Avro sink,然后把这些sink安排到同一个sink组中,如果第二层代理中的某个代理出现问题,则该事件会被传递给该层sink组的其他代理来完成,以此来实现故障转移和负载均衡。

Flume多层代理防止数据丢失:

https://blog.csdn.net/qq_26442553/article/details/79042603

https://blog.csdn.net/huonan_123/article/details/88421847

参考博客:https://www.cnblogs.com/frankdeng/p/9067102.html

Flume组件的更多相关文章

  1. 【Hadoop】10、Flume组件

    目录 Flume组件安装配置 1.下载和解压 Flume 2.Flume 组件部署 3.使用 Flume 发送和接受信息 Flume组件安装配置 1.下载和解压 Flume # 传Flume安装包 [ ...

  2. Flume 组件安装配置

    下载和解压 Flume 实验环境可能需要回至第四,五,六章(hadoop和hive),否则后面传输数据可能报错(猜测)! 可 以 从 官 网 下 载 Flume 组 件 安 装 包 , 下 载 地 址 ...

  3. flume组件汇总 source、sink、channel

    Flume Source Source类型 说明 Avro Source 支持Avro协议(实际上是Avro RPC),内置支持 Thrift Source 支持Thrift协议,内置支持 Exec  ...

  4. Flume组件source,channel,sink源码分析

    LifeCycleState: IDLE, START, STOP, ERROR [Source]: org.apache.flume.Source 继承LifeCycleAware{stop() + ...

  5. Flume组件汇总2

    Component Interface Type Alias Implementation Class org.apache.flume.Channel memory org.apache.flume ...

  6. flume常用组件

    Flume组件 1.   Source NetCat Source:绑定的端口(tcp.udp),将流经端口的每一个文本行数据作为Event输入: type:source的类型,必须是netcat. ...

  7. 数据采集组件:Flume基础用法和Kafka集成

    本文源码:GitHub || GitEE 一.Flume简介 1.基础描述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中 ...

  8. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

  9. 《OD学Flume》20160806Flume和Kafka

    一.Flume http://flume.apache.org/FlumeUserGuide.html Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集.聚集.移动信 ...

随机推荐

  1. Vue框架初识01

    摘要 vue简介 vue使用 一.Vue简介: 简介: Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 A ...

  2. 网络 TCP三次握手,四次挥手详解

    三次握手,四次挥手可以说是炙手可热的面试题了,来看看它究竟长什么样子吧! 我们先把流程图贴上来 : 为什么这么复杂? 因为TCP是可靠性传输. 确认可靠传输的前提:  TCP连接管理机制 用TCP首部 ...

  3. DNS欺诈的三种简单方法总结

    使用arpspoof.ettercap以及driftnet的简单组合. ①arpsppof+driftnet arpspoof -i eth0 -t 目标ip 目标网关 driftnet -i eth ...

  4. 使用PHP开发HR系统(1)

    本文通过笔者的实践,讲述如何以PHP+CI+Postgres构建一套人力资源管理系统. ======================================================== ...

  5. SpringCloud——eureka集群

    目的: 第一种普通方式 第二种方式骚操作 Eureka自我保护机制 Eureka集群搭建 说的通俗易懂一点就是,同一个项目部署在多个服务器上. 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 今 ...

  6. 精确选择识别png图片有像素的区域(使用方法)

    /** * * *---------------------------------------* * | ***精确选择识别png图片有像素的区域*** | * *----------------- ...

  7. MGR并行复制从节点复制线程死锁

    1.故障现象 20191113-22:32 datax全量同步t_shop_info表到 eorder所在的实例,t_shop_info表有两个唯一约束.总数据量不超过1w行,同步完成后MGR从库复制 ...

  8. 在centos7.6上部署.netcore 3.0 web程序

    首先需要一个全新的centos系统. 第一步:按照微软官方文档配置.netcore环境: https://dotnet.microsoft.com/download/linux-package-man ...

  9. wpf Log4net的配置和使用

    现在项目涉及的是cs客户端,在项目中使用log4net记录本地日志和异常信息,这里项目做完了,想着自己做一个demo,测试记录一下log4Net的配置使用. 第一步.新建一个wpf应用程序,项目右键 ...

  10. 在safari下input的placeholder设置行高失效

    在项目中遇到input的placeholder在safari下设置行高失效的问题,亲测 input{ width:250px; height:30px; line-height:30px; font- ...