Flume组件
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组件的更多相关文章
- 【Hadoop】10、Flume组件
目录 Flume组件安装配置 1.下载和解压 Flume 2.Flume 组件部署 3.使用 Flume 发送和接受信息 Flume组件安装配置 1.下载和解压 Flume # 传Flume安装包 [ ...
- Flume 组件安装配置
下载和解压 Flume 实验环境可能需要回至第四,五,六章(hadoop和hive),否则后面传输数据可能报错(猜测)! 可 以 从 官 网 下 载 Flume 组 件 安 装 包 , 下 载 地 址 ...
- flume组件汇总 source、sink、channel
Flume Source Source类型 说明 Avro Source 支持Avro协议(实际上是Avro RPC),内置支持 Thrift Source 支持Thrift协议,内置支持 Exec ...
- Flume组件source,channel,sink源码分析
LifeCycleState: IDLE, START, STOP, ERROR [Source]: org.apache.flume.Source 继承LifeCycleAware{stop() + ...
- Flume组件汇总2
Component Interface Type Alias Implementation Class org.apache.flume.Channel memory org.apache.flume ...
- flume常用组件
Flume组件 1. Source NetCat Source:绑定的端口(tcp.udp),将流经端口的每一个文本行数据作为Event输入: type:source的类型,必须是netcat. ...
- 数据采集组件:Flume基础用法和Kafka集成
本文源码:GitHub || GitEE 一.Flume简介 1.基础描述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中 ...
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...
- 《OD学Flume》20160806Flume和Kafka
一.Flume http://flume.apache.org/FlumeUserGuide.html Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集.聚集.移动信 ...
随机推荐
- 【转】基于FPGA的Sobel边缘检测的实现
前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测.中值滤波.Can ...
- Form' threw an exception of type 'System.InvalidOperationException'
环境:VS2017 NetCore 2.2 Razor Layui 在处理异步请求是遇到"((Microsoft.AspNetCore.Http.Internal.DefaultHttpRe ...
- Go语言的成功也预示着Rust的成功【转】
从整体的角度来看Go,很难理解他是怎么取得这么大的成功的.从理论的角度上来说Go是一门非常糟糕的语言,就算是和C++或者Ada之类旧语言相比也是这样. 从整体的角度来看Go,很难理解他是怎么取得这么大 ...
- Java 日期时间与unix时间戳之间转换
日期时间 <--> 时间戳 java.time 包提供的新的日期和时间API LocalDateTime: 本地日期时间类 ZoneId: 时区类 ZonedDateTime: 带时区 ...
- vue项目启动报错You may use special comments to disable some warnings.
在build/webpack.base.conf.js文件中,注释或者删除掉:...(config.dev.useEslint ? [createLintingRule()] : []),
- Part_one:Redis第一次接触
1.redis学习 数据默认写入到内存,如果断电,服务器宕机,redis进程挂掉,数据会丢失. selenium操作浏览器时,要注意浏览器资源释放,方式内存泄露,崩溃 mysql是文件型数据库,默认持 ...
- Fortify漏洞之Denial of Service: Regular Expression
继续对Fortify的漏洞进行总结,本篇主要针对 Denial of Service: Regular Expression 漏洞进行总结,如下: 1.Denial of Service: Reg ...
- day30-python之socket
1.iter补充 # l=['a','b','c','d'] # # def test(): # return l.pop() # # x=iter(test,'b') # print(x.__nex ...
- Jmeter学习笔记(十二)——断言
一.断言简介 jmeter中有个元件叫做断言(Assertion).用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言的目的:在request的返回层面 ...
- SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?
刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intel ...