




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据Hadoop平台的Flume数据采集框架——日志数据采集应用案例-02本章学习目标了解基于Hadoop的大数据平台下的数据采集所要解决的问题了解Hadoop下分布式文件系统HDFS的基本使用了解Flume的作用、安装掌握如何配置Flume实现对不同任务环境下的数据采集本章将首先简要介绍开源大数据Hadoop平台,演示其分布式文件系统HDFS的基本使用。然后讲解Flume的安装,并且通过两个案例讲解Flume的配置要点。最后通过习题来强化对知识点的掌握和应用。9.4Flume的配置要做好Flume的配置,核心在于理解两个地方:Flume的设计理念和工作原理整个数据采集系统的架构设计Flume的设计理念和工作原理Flume的理念在于将工具分成了3个部分:Source、Chanel、Sink。每一个部分,都有着不同的实现,而不同的部分之间又有相同的接口。这意味着三个不同的部分的各种实现之间可以进行组合,来满足灵活的业务场景。例如:Source部分的实现有:ExecSource(应用的输出)、TCPSource(TCP端口)和SpoolingDirectorySource(文件夹监控)等等;Sink部分的实现有:HDFS、Hive、Logger和Kafka等等;Channel部分的实现有:MemoryChannel、JDBCChannel和FileChannel等等。
Flume的设计理念和工作原理官方文档:Flume1.11.0UserGuide—ApacheFlume右侧为支持的Source、Channel和SinkSource表示从某个系统中去获取数据,充当了数据采集的数据源;Channel则作为数据缓存的队列,通过引入JDBC或者File等类型的Channel,提供了不同的数据持久化能力,也是保证当系统意外崩溃重启后能重建崩溃前的数据采集任务;Sink则作为数据的下一站。这里特别需要注意的是,Sink既可以是最终数据的存储中心,例如HDFS,也可以是整个分布式数据采集系统的中间环境,例如在复杂网络拓扑结构下,我们可能在一个局域网里面首先将所有节点的数据采集到网关,再由网关对数据进行初步地整理,集中地将数据发送到下一个采集点,通过层层传递,最终把各方数据汇聚到数据消费端。Flume的设计理念和工作原理另外Flume更灵活的地方在于支持扇入扇出两种模型,同时支持构建多级级联的采集系统。也就是:对一个Source来说,可以同时将数据发往不同的Channel,这属于扇出。而一个Channel可以接收来自多个Source的输入,对Channel来说,这属于扇入。Flume的设计理念和工作原理多个web服务器,每一个都被Flume节点采集了日志数据,并最终汇聚到了HDFS存储上的Flume节点上。整个数据采集系统的设计基于Flume的数据采集方案既可以较为简单明了,也可以根据实际需要构建出非常复杂的、级联的、包含扇入扇出的复杂的模型。因此,我们也需要了解当前数据采集系统的架构设计,例如哪些服务器上需要部署Flume组件,这些Flume组件之间应该如何构建级联,哪些Flume组件应该进行扇入扇出操作。只有规划好了这一步,我们才知道每一个需要部署的Flume该如何配置才能实现最终的数据采集系统。配置的基础--基础案例引入配置监控文件的变化(execSource),使用内存作为Channel(memoryChannel),将采集到的变化内容打印到控制台中(LoggerSink)。配置的基础--基础案例引入bin/flume-ngagent-nagent1-cconf-fconf/flume-conf-Dflume.root.logger=INFO,consolebin/flume-ng这是flume启动数据采集的可执行程序agent表示启动一个采集代理-n后面要接代理的名字agent1这里代理的名字正是我们在conf/flume-conf中定义的代理名字agent1。该代理商就定义了sources、channels和sinks-c后面要接指定的某个配置文件conf/flume-conf这就是刚才我们定义的配置文件-Dflume.root.logger=INFO,console表示覆盖flume默认的logger打印位置。默认是打印到LOGFILE,而我们需要控制台console。小技巧:virtualbox的端口映射通过windows的ssh远程连接到我们的CentOS服务器上,通过另一个控制台去往helloworld.txt文件中新增内容。物理主机如何连接到virtualbox的虚拟机中呢?这里需要对虚拟机进行一些配置,在虚拟机的网络中,打开portforwarding,添加一个端口映射:该配置的意思是:如果以TCP方式访问主机127.0.0.1的2222端口,则所有流量会转发给10.0.2.15的22端口。而10.0.2.15正好是我们的虚拟机,22端口正好是ssh。在windows下打开命令行,运行命令:sshroot@127.0.0.1–p2222提示时输入yes,然后输入root用户的密码:root9.5Flume的应用9.5.1采集文件夹下的增量数据到HDFS现在的电商平台或者各项web应用,为了应对大量数据的同时访问,提高系统并发能力,一般都是采用了负载均衡的方案。也即服务器前端一般会使用nginx来配置负载均衡,使得不用的ip地址来访问web服务时,按照一定的规则将该请求重定向到对应的内部某个web服务器来对该请求进行处理。这提高了应用的并发处理能力的同时,也导致了几个问题:一般web应用中都会通过埋点,对用户的各项操作进行log记录,以便后期利用数据进行智能推荐等增值业务。由于用户大量的访问,log日志的数据量将会非常巨大,直接存入MySQL,不仅导致MySQL数据库的负载非常大,而且其查询性能将会下降。写log日志是web应用自带的组件和功能,而log日志采集到数据库或者数据仓库是另一个特定功能,如果为了实现数据采集,单独改造web应用中的log日志记录模块,将会使得两个系统高度耦合。多个不同的web服务器上都会独立地产生大量的log日志。如何增量、高效、高可用的进行日志采集,也是一个巨大的挑战。web系统的日志一般都是采用滚动日志方式:即日志文件大小一旦增长到指定大小就在日志目录下新开日志文件,对旧日志文件进行编号命名。因此,我们的数据采集系统的设计为:每个web服务上安装一个Flume,配置一个叫agentClient的代理HDFS服务器上安装一个Flume,配置一个叫agentServer的代理每个agentClient的Source监控某个指定的文件夹,只要文件夹中有新增的文件,则开启采集,Channel简单起见就用Memory,Sink则为avro。agentServer的Source则正好为agentClient的Sink输出,Channel还是为Memory,Sink则为HDFS。agentClient.conf监控/opt/web/logs目录,一旦有文件放入,则通过memorychannel发送给avro类型的sink。Avro格式是一个由Apache软件基金会开发的、开源的数据序列化系统,广泛应用在数据相关的各项开源项目中,作为不同组件之间进行数据交换的手段。在这里,我们表示agentClient将连接到agentServer的8765端口,将数据以avro的格式发送过去。agentServer.conf这里的Source,则是建立一个avro的服务端,监听8765端口。而sink则是写入hdfs,具体含义解释如下:hdfs.path要存储的hdfs目录,要注意主机和端口号需要同Hadoop的core-site.xml中一致。hdfs.fileType这里表示只保存数据流,而且不压缩hdfs.rollInterval为0表示关闭根据时间来对文件进行滚动,因为我们希望根据事件触发的批次来对文件滚动hdfs.batchSize表示每5次avro接收事件就作为一批,进行文件滚动执行要点:必须首先启动agentServer,因为它会监听8765端口。打开windows的3个命令行端口。称之为cmd1,cmd2,cmd3,分别对应agentServer,agentClient和test的作用。他们都使用前一部分的ssh方法,通过sshroot@127.0.0.1–p2222命令连接到虚拟机。在cmd1中执行:bin/flume-ngagent–nagentServer–cconf–fconf/agentServer.conf–Dflume.root.logger=INFO,console在cmd2中,执行:bin/flume-ngagent–nagentClient–cconf–fconf/agentClient.conf–Dflume.root.logger=INFO,console在cmd3中准备进行测试:放置1.log文件到/opt/web/logs目录下:执行命令:cp/opt/web/1.log/opt/web/logs/1.log9.5Flume的应用9.5.2采集TCP端口数据到控制台有时候,我们开发的应用系统无法将系统的数据写入文件系统进行持久化,例如生成log日志文件。而我们又希望采集到应用系统运行过程中的各类数据。在这种情况下,我们可以使用Flume的TCPSource的功能。调整我们的应用代码,将我们感兴趣的数据通过TCP端口发送给Flume,这样Flume就能实现数据采集。特别是一些容量较小的嵌入式设备的数据采集,由于容量小,没法将运行过程中产生的数据写入设备上的文件系统,甚至可能没有文件系统。此时就可以采用这种方式完成数据采集。要求如下:Source为TCP,Channel为Memory,Sink简便起见,我们使用logger,打印到控制台。则其对应的tcp.conf文件内容如下:核心就是source1的type、bind和port设置。该工作模式同linux下的著名工具netcat的工作原理非常类似。等同于:nc-k-l[host][port]的效果。我们首先执行命令启动一个agent,开始监听端口8888:bin/flume-ngagent–nagent1–cconf–fconf/tcp.conf–Dflume.root.logger=INFO,console在新的windows命令行中,通过ssh远程连接到虚拟机上,然后执行:nclocalhost88889.6小结本章我们了解了Hadoop平台的基本概念,体会了大数据环境下要进行数据采集工作所面临的挑战,理解了Flume的设计和工作原理,学习了Flume组件在大数据环境
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 升旗杆制作合同范本
- 个性门面转让合同范本
- 农村土地口头出售合同范本
- 冷却塔维保合同范本
- 全国施工合同范本
- 劳动班组合同范本
- 厂房拆卸安全合同范本
- 厂房储罐出租合同范例
- 乡村协议用工合同范本
- 刷脸合同范本
- 《中小学科学教育工作指南》解读与培训
- 学校食堂“三同三公开”制度实施方案
- 跨学科主题学习的意义与设计思路
- 2025年浙江国企台州黄岩站场管理服务有限公司招聘笔试参考题库附带答案详解
- 2025年医院财务工作计划(2篇)
- DB32T 4969-2024大型医用设备使用监督管理平台基础数据采集规范
- 2025年大连长兴开发建设限公司工作人员公开招聘高频重点提升(共500题)附带答案详解
- 教科版三年级下册科学全册单元教材分析
- 《物理学的发展史》课件
- 2025年广东广州市海珠区官洲街道办事处政府雇员招聘5人高频重点提升(共500题)附带答案详解
- 《道路交通安全法》课件完整版
评论
0/150
提交评论