版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Flume认识FlumeFlume基本组件Flume安装Flume数据流模型Flume的可靠性保证Flume拦截器采集案例认识FlumeFlume基本组件Flume安装Flume数据流模型Flume的可靠性保证Flume拦截器Flume拦截器掌握Flume架构及其原理掌握拦截器的用法熟悉Flume的安装和使用掌握Source、Sink、Channel的使用方法9.1认识Flume9.1.1Flume简介9.1.2Flume的特点9.1 认识Flume9.1.1 Flume简介Flume最初是Cloudera公司推出的日志采集系统,于2009年被捐赠给了Apache软件基金会,成为Hadoop相关组件之一。近几年随着Flume的不断被完善、升级版本的推出,以及Flume内部各种组件的增加,用户在开发的过程中使用Flume的便利性得到了很大的改善。Flume是一种可配置、高可用的数据采集工具。主要用于采集来自各种流媒体的数据(Web服务器的日志数据等)并传输到集中式数据存储区域。Flume支持在日志系统中定制各种数据发送方,用于收集数据;并且可以对数据进行简单处理,将其写到可定制的各种数据接受方(如文本、HDFS、HBase等)。9.1 认识Flume9.1.1 Flume简介Flume两个系列:FlumeOG和FlumeNG。FlumeOG是指Flume0.9.x版本系列,FlumeNG是指Flume1.x版本系列。目前使用FlumeNG的企业较多,因此本书主要讲解FlumeNG。9.1 认识Flume9.1.2 Flume的特点Flume的特点主要体现在以下几个方面。(1)具有复杂的流动性。Flume允许用户构建多跳流,允许使用扇入流和扇出流、上下文路由和故障跳转的备份路由(故障转移)。①多跳流。Flume中可以有多个代理(Agent)。事件(Event)需要通过多个代理才能到达最终目的地,这样的数据流被称为多跳流。Flume的数据流由事件贯穿始终。②扇出流(一对多形式)。从一个源(Source)到多个通道(Channel)的数据流被称为扇出流。③扇入流(多对一形式)。从多个源到一个通道的数据流被称为扇入流。9.1 认识Flume9.1.2 Flume的特点(2)具有可靠性。Flume的源和接收器(Sink)分别封装在事务中,可以确保事件集在数据流中从一个点到另一个点进行可靠地传递。(3)具有可恢复性。事件存储在通道中,当Flume出现故障时,通道负责恢复数据。9.2Flume基本组件9.2.1Event9.2.2Agent9.2 Flume基本组件9.2.1 EventEvent是Flume中具有有效负载的字节数据流和可选的字符串属性集,是Flume传送数据的基本单位。Event由Header和Body组成。Header是一个Map<String,String>,存储字符串属性集;Body是一个字节数组,存储字节数据。9.2 Flume基本组件9.2.2 AgentAgent是一个虚拟机进程,负责将外部来源产生的消息转发到外部的目的地。Agent由Source、Channel和Sink构成。1.SourceSource从外部来源读入Event,并写入Channel。每个Source可以发送Event到多个Channel中。Source的常见类型如表所示。9.2 Flume基本组件9.2.2 Agent接上一页。9.2 Flume基本组件9.2.2 Agent2.SinkSink从Channel中读取Event后写入目的地。每个Sink只能从一个Channel中获取数据。Sink的常见类型如表所示。9.2 Flume基本组件9.2.2 Agent3.ChannelChannel相当于数据缓冲区,接收Source传入的事件后发送给Sink。Channel的常见类型如表所示。9.3 Flume安装本书使用的是1.8.0版本的Flume,安装包见附录。Flume的安装步骤如下。(1)将Flume安装包apache-flume-1.8.0-bin.tar.gz放到虚拟机qf01的/root/Downloads/目录下,切换到root用户,解压Flume安装包到/mysoft目录下。(2)切换到/mysoft目录下,将apache-flume-1.8.0-bin重命名为flume。(3)打开/etc/profile文件,配置Flume环境变量。在文件末尾添加如下三行内容。9.3 Flume安装(4)使环境变量生效。(5)修改Flume的配置文件。①换到/mysoft/flume/conf目录下。②将flume-env.ps1.template重命名为flume-env.ps1。③将flume-env.sh.template重命名为flume-env.sh。④修改flume-env.sh,将#exportJAVA_HOME=/usr/lib/jvm/java-8-oracle一行替换为如下内容。9.3 Flume安装(6)查看Flume的版本信息。至此,Flume安装完成。Flume常见的数据流模型有单Agent数据流模型、多Agent串联数据流模型、多Agent汇集数据流模型和单Agent多路数据流模型。1.单Agent数据流模型单Agent数据流模型,如图所示。9.4 Flume数据流模型在图中,一个Agent由一个Source,一个Channel,一个Sink构成。2.多Agent串联数据流模型多Agent串联数据流模型,如图所示。9.4 Flume数据流模型在图中,为了使数据在多个Agent中流通,Agent1中的Sink和Agent2中的Source需要是Avro类型,Agent1中的Sink指向Agent2中Source的主机名(或IP地址)和端口。3.多Agent汇集数据流模型多Agent汇集数据流模型是采集大量日志数据时常用的数据流模型,如图所示。例如,将从数百个Web服务器采集的日志数据发送给写入HDFS集群的十几个Agent,就采用该模型。9.4 Flume数据流模型4.单Agent多路数据流模型单Agent多路数据流模型,如图所示。9.4 Flume数据流模型在上图中,Agent1由一个Source、多个Channel、多个Sink构成。一个Source接收Event,并将Event发送到三个Channel中,Channel对应的Sink处理各Channel内的Event,然后将数据分别存储到指定的位置。Source将Event发送到Channel中可以采用两种不同的策略:Replicating(复制通道选择器)和Multiplexing(多路复用通道选择器)。(1)Replicating是Source将每个Event都发送到每个与它连接的Channel中,也就是将Event复制多份发到不同的Channel。(2)Multiplexing是Source根据Header中的某一个键的值决定将Event发送到哪个Channel中。9.4 Flume数据流模型9.5Flume的可靠性保证9.5.1负载均衡9.5.2故障转移9.5 Flume的可靠性保证Flume的一些组件(如SpoolingDirectorySource、FileChannel)能够保证Agent出问题后不丢失数据。9.5 Flume的可靠性保证Source里的Event流经Channel,进入Sink组,在Sink组内部根据负载算法(round_robin、random)选择Sink,后续可以选择不同机器上的Agent实现负载均衡,如图所示。9.5.1 负载均衡9.5 Flume的可靠性保证具体配置如下。9.5.1 负载均衡9.5 Flume的可靠性保证不同的Agent处理同一个客户端产生的数据,实现负载均衡。9.5.1 负载均衡9.5 Flume的可靠性保证配置一组Sink,这组Sink组成一个Sink故障转移处理器,当有一个Sink处理失败,Flume将这个Sink放到一个地方,设定冷却时间,待其可以正常处理Event时再取回。Event通过一个Channel流向一个Sink组,在Sink组内部根据优先级选择具体的Sink,失败后再转向另一个Sink,流程图如下图所示。9.5.2 故障转移9.5 Flume的可靠性保证具体配置如下。9.5.2 故障转移9.6 Flume拦截器拦截器负责修改和删除Event,每个Source可以配置多个拦截器,形成拦截器链(InterceptorChain)。Flume自带的拦截器主要有时间戳拦截器(TimestampInterceptor)、主机拦截器(HostInterceptor)、静态拦截器(StaticInterceptor)。时间戳拦截器主要用于在Event的Header中加入时间戳。主机拦截器主要用于在Event的Header中加入主机名(或者主机地址)。静态拦截器主要用于在Event的Header中加入固定的Key和Value。1.时间戳拦截器时间戳拦截器是最常用的拦截器,下面以时间戳拦截器为例,演示拦截器的使用方法。9.6 Flume拦截器(1)在虚拟机qf01上,切换到/mysoft/flume/conf目录下,新建Flume配置文件interceptor_time.conf。添加以下内容。9.6 Flume拦截器接上一页代码。(2)启动FlumeAgenta1。9.6 Flume拦截器(3)在虚拟机qf01上,重新打开一个终端,启动Netcat客户端,输入hixiaofeng后,按下回车键。(4)查看启动FlumeAgenta1的终端,出现以下内容。由以上内容可知,Flume通过时间戳拦截器在Event的Header中加入了时间戳timestamp=1540173099879。9.6 Flume拦截器2.拦截器链(1)在虚拟机qf01上,切换到/mysoft/flume/conf目录下,新建Flume配置文件interceptor_chain.conf。添加以下内容。9.6 Flume拦截器接上一页代码。9.6 Flume拦截器(2)启动FlumeAgenta1。(3)在虚拟机qf01上,重新打开一个终端,启动Netcat客户端,输入hello后,按下回车键。(4)查看启动FlumeAgenta1的终端,出现以下内容。由以上内容可知,Flume通过3个拦截器在Event的Header中加入了指定的相关内容。9.6 Flume拦截器(2)启动FlumeAgenta1。(3)在虚拟机qf01上,重新打开一个终端,启动Netcat客户端,输入hello后,按下回车键。(4)查看启动FlumeAgenta1的终端,出现以下内容。由以上内容可知,Flume通过3个拦截器在Event的Header中加入了指定的相关内容。9.7采集案例9.7.1采集目录到HDFS9.7.2采集文件到HDFS9.7 采集案例采集需求:某服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就需要把文件采集到HDFS中去。(1)数据源组件,即Source:监控文件目录:spooldir。spooldir有以下特性。①监视一个目录,只要目录中出现新文件,就采集文件中的内容。②采集完成的文件,会被Agent自动添加一个后缀:COMPLETED。③所监视的目录中不允许出现文件名相同的文件。(2)Sink:类型为HDFSSink。(3)Channel:可以用FileChannel,也可以用MemoryChannel。9.7.1 采集目录到HDFS9.7 采集案例配置文件编写如下。9.7.1 采集目录到HDFS9.7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压疮上报制度及上报流程
- 物业停车场管理规范制度
- 养老机构老人护理服务分级管理制度
- 公司财务制度和流程
- 危化品运输安全环保制度
- 企业安全生产制度清清单
- 东营职工统筹报销制度
- 装修工地管理奖惩制度
- 装配工安全安装制度
- 小学安全考核奖励制度
- 2024NEA水性气硅涂膏隔热保温墙体构造
- 福建省预制装配式混凝土结构技术规程
- 物流外包与供应链管理课件
- 彭吉象 艺术学概论 讲义及彭吉象-艺术学概论笔记
- 角膜移植手术及护理课件
- 《热力发电厂》热力发电厂全面性热力系统
- 《自动化生产线安装与调试》(黄丽燕) 01-项目一 认识自动化生产线
- 年产30万吨环氧乙烷建设项目可行性研究报告
- 《市场营销学》历年真题案例
- 异丁烷-安全技术说明书MSDS
- 棉花制种田间管理技术
评论
0/150
提交评论