别再抱怨缺乏算法实践场景,不妨来挑战这场百万奖池的比赛!

来源 | http://r6d.cn/bdvqa

Flume简介

Flume概述:

Flume是开源日志系统。是一个分布式、可靠性和高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据;同时,FLume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。

Flume是什么?

Flume是流式日志采集工具,FLume提供对数据进行简单处理并且写到各种数据接收方(可定制)的能力,Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、Thift、Avro、Syslog、Kafka等数据源上收集数据的能力。

Flume能干什么?

  • 提供从固定目录下采集日志信息到目的地(HDFS,HBase,Kafka)能力。

  • 提供实时采集日志信息(taidir)到目的地的能力。

  • FLume支持级联(多个Flume对接起来),合并数据的能力。

  • Flume支持按照用户定制采集数据的能力。

Flume在FusionInsight中的位置:

位置

图:Flume在FusionInsight中的位置

Flume是收集、聚合事件流数据的分布式框架。

Flume系统架构

Flume基础架构:

基础架构

图:Flume基础架构图

Flume基础架构:Flume可以单节点直接采集数据,主要应用于集群内数据。

Flume多agent架构:

多agent架构

图:Flume多agent架构

Flume多agent架构:Flume可以将多个节点连接起来,将最初的数据源经过收集,存储到最终的存储系统中。主要应用于集群外的数据导入到集群内。

Flume架构:

架构

图:Flume架构图

各组件具体介绍如下:

  • events:Flume当中对数据的一种封装。是一个数据单元。flume传输数据最基本的单元。

  • Interceptor:拦截器,主要作用是将采集到的数据根据用户的配置进行过滤和修饰。

  • Channel Selector:通道选择器,主要作用是根据用户配置将数据放到不同的Channel当中。

  • Channel:主要作用是临时的缓存数据。

  • Sink Runner:sink的运行器,主要是通过它来驱动Sink Processor,Sink Processor驱动Sink来从Channel当中获取数据。

  • Sink Processor:主要策略有,负载均衡,故障转移以及直通。

  • Sink:主要作用是从Channel当中取出数据,并将数据放到不同的目的地。

基本概念- Source:

Source负责接收events或通过特殊机制产生events,并将events批量放到一个或多个Channels。有驱动和轮询2中类型的Source。

  • 驱动型Source:是外部主动发送数据给Flume,驱动Flume接收数据。

  • 轮询source:是FLume周期性主动去获取数据。

Source必须至少和一个channel关联。

Source的类型如下:

Source类型

基本概念 - Channel:

Channel位于Source和Sink之间,Channel的作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的channel或最终目的,events从Channel移除。

不同的Channel提供的持久化水平也是不一样的:

  • Memory Channel:不会持久化。消息存放在内存中,提供高吞吐,但提供可靠性;可能丢失数据。

  • File Channel:对数据持久化;基于WAL(预写式日志Write-Ahaad Log)实现。但是配置较为麻烦,需要配置数据目录和checkpoint目录;不同的file channel均需要配置一个checkpoint目录。

  • JDBC Channel:基于嵌入式Database实现。内置derby数据库,对event进行了持久化,提供高可靠性;可以取代同样持久特性的file channel。

Channels支持事物,提供较弱的顺序保证,可以连接任何数量的Source和Sink。

基本概念 - Sink:

Sink负责将events传输到下一跳或最终目的,成功完成后将events从channel移除。

必须作用于一个确切的channel。

Sink类型:

Sink类型

Flume关键特性介绍

Flume支持采集日志文件:

Flume

图:Flume采集日志文件

Flume支持将集群外的日志文件采集并归档到HDFS、HBase、Kafka上,供上层应用对数据分析、清洗数据使用。

Flume支持多级级联和多路复制:

级联

图:Flume级联

Flume支持将多个Flume级联起来,同时级联节点内部支持数据复制。

这个场景主要应用于:收集FusionInsight集群外上的节点上的日志,并通过多个Flume节点,最终汇聚到集群当中。

Flume级联消息压缩、加密:

压缩

图:Flume级联消息压缩、加密

Flume级联节点之间的数据传输支持压缩和加密,提升数据传输效率和安全性。

在同一个Flume内部进行传输时,不需要加密,为进程内部的数据交换。

Flume数据监控:

监控

图:Flume数据监控

Source接收的数据量,Channel缓存的数据量,Sink写入的数据量,这些都可以通过Manager图形化界面呈现出来。

Flume传输可靠性:

可靠

图:Flume传输可靠性原理

Flume在传输数据过程中,采用事物管理方式,保证数据传输过程中数据不会丢失,增强了数据传输的可靠性,同时缓存在channel中的数据如果采用了file channel,进程或者节点重启数据不会丢失。

出错

图:Flume传输过程中出错情况

Flume在传输数据过程中,如果下一跳的Flume节点故障或者数据接收异常时,可以自动切换到另外一路上继续传输。

Flume传输过程中数据过滤:

过滤

图:过滤原理 Flume在传输数据过程中,可以见到的对数据简单过滤、清洗,可以去掉不关心的数据,同时如果需要对复杂的数据过滤,需要用户根据自己的数据特殊性,开发过滤插件,Flume支持第三方过滤插件调用

往期推荐

996、过劳死都见过了!“被猝死”还是头一回......

别再抱怨缺乏算法实践场景,不妨来挑战这场百万奖池的比赛!

坑你没商量!盘点Java中最常见的事故现场,你都中过哪些招?

你真的了解 OpenJDK 吗?

坚决不给中国人发Offer的GitLab成立中国公司!立志3-5年上市,怕是闻到了韭菜香?

如果你喜欢本文,欢迎关注我,订阅更多精彩内容

关注我回复「加群」,加入Spring技术交流群

免费领取:斯坦福决策算法

喜欢的这里报道

↘↘↘

科普:Flume是啥?干嘛用的?相关推荐

  1. 解决:Plug-in org.eclipse.wst.jsdt.ui was unable to instantiate class org.eclipse.wst.jsdt.inte

    MyEclipse:Could not create theview: Plug-in "org.eclipse.jdt.ui "was unable to load class& ...

  2. VR垃圾分类体验系统,VR垃圾分类知识抢答软件开发

    VR垃圾分类系统为垃圾分类知识介绍.垃圾分类小游戏等选择体验垃圾分类的学习环境直观.生动让体验者对垃圾分类科普知识更容易理解,印象更深刻. 产品介绍: 1.系统通过软件通过了互动小游戏的模式,让参与者 ...

  3. 呕心沥血干完K-Means聚类——深度AI科普团队

    K-Means简介 K-Means 是一种非监督学习. K 代表的是 K 类,Means 代表的是中心,它有点像全自动分类.聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好. 主要思想 ...

  4. 科普:Kafka是啥?干嘛用的?

    来源 | http://r6d.cn/bdjdi Kafka简介 Kafka概述: Kafka由 linked-in 开源 . kafka-高产出的分布式消息系统(A high-throughput ...

  5. 一位群友作为后端开发在滴滴和头条分别干了 2 年的经验总结

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 先简单交代一下背景吧,某不知名985的本硕,17年毕业加入滴滴,今 ...

  6. Hadoop数据收集与入库系统Flume与Sqoop

    之前说了,大数据平台技术栈 (可点击查看),今天就来说说其中的采集层Sqoop和Flume! Hadoop数据收集与入库系统Flume与Sqoop 背景知识 ·简单介绍· 1. Hadoop提供了一个 ...

  7. 科普云计算知识,迎接云计算大会

    感谢原文作者,让我读到一篇云计算科普好文,但一直没有机会分享给大家,正好借助第九届云计算大会 (详情参看: 第九届中国云计算大会日程曝光) 这个契机分享给读者,以此借花献福,就当做盛会前的技术预热了. ...

  8. 入门科普,围绕JVM的各种外挂技术

    http://calvin1978.blogcn.com/articles/vjtools-tools4.html jstat, jmap, btrace, jprofiler, vjtools都基于 ...

  9. 友商逼急 雷急跳墙:生死看淡 不服就干

    友商逼急    雷急跳墙:生死看淡 不服就干 短短一个小时的红米Note7手机产品发布会,雷军怼了友商8次:甚至在媒体群访环节,雷军也抑制不住愤怒之情,提到友商面色铁青,以至于有人说,这次发布会的雷军 ...

最新文章

  1. 万能电子狗升级工具_六个常用电脑工具,你知道吗?必收!
  2. C#中的非托管资源释放(FinalizeDispose)
  3. 电梯维修属于什么服务器,电梯维修属于建筑服务中的修缮服务吗?
  4. 话里话外:信息整合之障
  5. 【BOM精讲】BOM 进阶
  6. boost::safe_numerics模块实现测试自定义异常的测试程序
  7. 云头条 |华为云发布全新Slogan;AWS推出DocumentDB;FRB信号刷屏
  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 17 ElasticSearch解决大数据量检索难题
  9. bzoj 5302: [Haoi2018]奇怪的背包
  10. 挑战程序设计竞赛(第2版)》
  11. 给 Python 开发者的四条忠告!| CSDN 博文精选
  12. Linux开机过程(转)
  13. caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记
  14. mysql的财务视图_Mysql中的视图
  15. xscan运行xscan_gui.exe无法打开
  16. 基于GPS的车辆导航及GPRS网络监控
  17. Spark GraphX下强连通子图和社团发现算法在1T TPC-DS数据集下执行方法、优化和性能估算
  18. 先验分布、后验分布、共轭先验分布
  19. 2013各大公司的待遇如下
  20. 大厂面试突击——集合篇

热门文章

  1. 关于改进插入图片功能的想法
  2. The request sent by the client was syntactically incorrect. 错误以及spring事物
  3. Array.splice()--删除数组中重复的数据
  4. python3 pip3 安装包报错 Could not find a version that satisfies the requirement 解决方法
  5. docker-compose 安装方法
  6. C语言的那些秘密之---函数返回局部变量
  7. TCP/IP详解--第十八章
  8. UNIX文件mode_t详解
  9. Pci设备驱动:设备枚举
  10. 视图需要创建类吗_建筑类的职称需要先评初级吗