基于Flume的海量日志统一分析平台-计算机信息管理自学考试毕业论文_第1页
基于Flume的海量日志统一分析平台-计算机信息管理自学考试毕业论文_第2页
基于Flume的海量日志统一分析平台-计算机信息管理自学考试毕业论文_第3页
基于Flume的海量日志统一分析平台-计算机信息管理自学考试毕业论文_第4页
基于Flume的海量日志统一分析平台-计算机信息管理自学考试毕业论文_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学高等教育自学考试毕业论文论文题目:基于Flume的海量日志统一分析平台报考专业:计算机信息管理(本)考生姓名:考籍号:工作单位:通讯地址及邮政编码:联系电话:手机:电子邮箱(Email):2017年3月8日目录1 引言 11.1课题背景及意义 11.2研究现状 21.3日志收集系统的发展趋势 21.4课题研究内容 41.5论文组织结构 42Flume等技术介绍 42.1Flume框架介绍 42.2Kafka架构介绍 82.3Storm架构介绍 92.4ElasticSearch架构介绍 103日志分析平台需求分析 113.1日志分析平台设计目标 113.2日志分析平台需求 113.2.1日志采集模块FlumeAgent的功能需求 123.2.2日志收集模块FlumeServer的功能需求 123.2.3日志统计模块Storm的功能需求 123.3日志分析平台运行环境需求 123.4本章小结 124统一日志平台总体架构设计 134.1本章小结 135统一日志平台具体实现 135.1日志采集模块FlumeClient的实现 145.1.1日志采集模块FlumeAgent的具体实现 145.1.2日志采集模块FlumeAgent的目录监控具体实现 145.1.3日志采集模块FlumeAgent的数据保护机制 155.1.4日志采集模块FlumeAgent与FlumeServer的数据交互 165.1.5日志采集模块FlumeClient配置项 175.1.6日志采集模块FlumeAgent的读取Kafka内容具体实现 185.2日志采集模块FlumeServer的实现 205.2.1日志采集模块FlumeServer日志归集实现 205.2.2日志采集模块FlumeServer配置项 216统一日志平台集成测试 22结论 26致谢 27参考文献 28摘要近年来,随着互联网信息技术的迅速发展,互联网上的日志信息资源已经达到海量级别,日志中包含了用户所有的规律信息,能够更加了解用户需求,为企业带来价值,以及包含业务链路数据,运维人员通过日志进行故障定位,以及故障分析,以及性能调优等工作,以及可以通过日志收集到KPI数据进行应用考核等。随着云计算、PaaS平台的普及,虚拟化、容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端。通常,我们需要需要获取日志,来进行监控、分析、预测、统计等工作,但是云端的服务不是物理的固定资源,日志获取的难度增加了,但这又是工程师迫切需要的。,因此,如何应对海量并且分散的日志进行收集统计并且分析,已经成为目前大部分企业都特别关注的一个课题。本文针对分布式环境下,通过Flume收集海量日志,进行ElasticSearch存储,Kibana可视化展示,Storm进行数据分析。关键词海量日志;Flume;ElasticSearch;kibana;Storm27/31引言1.1课题背景及意义近年来,随着互联网信息技术的迅速发展,互联网上的信息资源已经达到海量级别,每天需要处理的日志信息巨大,日志中包含了用户所有的规律信息,能够更加了解用户需求,为企业带来价值,以及包含业务链路数据,运维人员通过日志进行故障定位,以及故障分析,以及性能调优等工作,以及可以通过日志收集到KPI数据进行应用考核等。随着云计算、PaaS平台的普及,虚拟化、容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端。通常,我们需要需要获取日志,来进行监控、分析、预测、统计等工作,但是云端的服务不是物理的固定资源,日志获取的难度增加了,以往可以SSH登陆的或者FTP获取的,现在可不那么容易获得,但这又是工程师迫切需要的,最典型的场景便是:上线过程中,一切都在GUI化的PaaS平台点点鼠标完成,但是我们需要结合tail-F、grep等命令来观察日志,判断是否上线成功。当然这是一种情况,完善的PaaS平台会为我们完成这个工作,但是还有非常多的ad-hoc的需求,PaaS平台无法满足我们,我们需要日志,因此,如何应对海量并且分散的日志进行收集统计并且分析,已经成为目前大部分企业都特别关注的一个课题。一般的数据挖掘是针对关系型数据库中结构化数据进行的分析。而如今日志数据杂乱无章,务结构,有中间件日志,有应用日志,有组件日志,应用日志因项目架构标准化不一而没有标准化,而且数据量还非常大,呈指数级不断增长,分布在非常多的服务器或者节点上,这就导致了数据挖掘需要用到新的挖掘技术,以及模型算法等,从需求上体现,互联网上的数据快速增长,数据挖掘的难度也日益递增,如果还采用高端硬件来处理海量数据,成本是无法承受的,而且有瓶颈,因此要借助分布式计算基础来处理海量数据挖掘,这里涉及到存储的复杂以及数据标准化的问题。进入云计算时代,Apache众多开源项目得到青睐,比如Flume框架,以及基于Lucene的搜索服务器ElasticSearch,以及Strom实时计算框架等。在分布式计算如此火热的场景下,本文设计了一个针对海量日志收集和统计的平台,该平台的研究意义可总结为以下三点:1、日志的快速增长,使得数据的收集和统计任务远比普通的搜索任务要复杂很多,本文基于开源的分布式数据收集框架和云计算等技术实现,整体框架的都具有很强的可扩展性和可重用性。2、从应用价值上看,日志收集统计系统可以为应用日志统计提供一个可靠的数据依据,可以根据统计用户行为上的不通表现,配置满足用户需求的内容,提升产品的运营能力。3、从运维角度上看,可以通过日志收集统计出一个可靠的性能数据,可以根据性能分析数据,配置出系统需求所需要的资源,提前预测是否需要扩容等,提高产品的资源利用率,以及健壮性。1.2研究现状1)国内研究现状出现了一些日志收集统计工具,但是只是针对日志文件进行简单的统计,针对一些频率以及时间的统计,不能关联起所有的日志,输出一个更有意义的数据。2)国外研究现状出现了一系列日志大数据存储方案,但是是针对日志进行批量采集,收集到一定的量级后,进行分布式的统计计算,得出过去一段时间内的一些维度数据,进行可视化。1.3日志收集系统的发展趋势随着日志数量的迅速增长,日志中所包含的信息也越来越具有价值,尤其是针对互联网企业,日志收集与统计更直接的提供出来用户的信息,现如今大部分的企业是通过某些开源的日志收集系统作为代理端来收集日志,然后存储到分布式系统上进行一系列的统计计算。开源的日志收集框架一般需要满足以下特点:1)统计系统与被收集的应用系统上需要关系解耦2)具有高度的可扩展性,在数据量增长的情况下,只需要进行负载均衡或者增加节点即可3)实时性高4)实时分析,统计效率高5)数据可视化清晰,展示最终结果数据正确率高包含这些特征的开源框架有,Apache的Flume,Linkedin的Kafka,Apache的Storm,和Apache的ElasticSearch,以及Kibana等。Apache的Flume开源日志收集系统。Flume作为cloudera开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume初始的发行版本目前被统称为FlumeOG(originalgeneration),属于cloudera。但随着FLume功能的扩展,FlumeOG代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在FlumeOG的最后一个发行版本0.94.0中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011年10月22号,cloudera完成了Flume-728,对Flume进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为FlumeNG(nextgeneration);改动的另一原因是将Flume纳入apache旗下,clouderaFlume改名为ApacheFlume。Linkedin的kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性:通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。支持通过kafka服务器和消费机集群来分区消息。支持Hadoop并行数据加载。kafka的目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。kafka分布式订阅架构如下图1所示图1Kafka架构图Storm是一个分布式的、高容错的实时计算系统。Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供了Map和Reduce原语,使我们对数据进行批处理变的非常的简单和优美。同样,Storm也对数据的实时计算提供了简单Spout和Bolt原语。Storm适用的场景:1、流数据处理:Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。2、分布式RPC:由于Storm的处理组件都是分布式的,而且处理延迟都极低,所以可以Storm可以做为一个通用的分布式RPC框架来使用。在这个教程里面我们将学习如何创建Topologies,并且把topologies部署到storm的集群里面去。Java将是我们主要的示范语言,个别例子会使用python以演示storm的多语言特性。1.4课题研究内容论文主要针对企业系统产生的日志进行需求统计,设计实现了日志实时采集,实时分析,数据存储和统计模块,并对各个模块进行集成测试。本课题的研究主要内容:研究统计统一日志平台的架构设计,针对整体架构进行搭建。研究统计FlumeClient二次开发,能够进行定制化的采集日志发送到FlumeServer。研究统计FlumeServer的数据收集以及传输模式。研究ElasticSearch存储以及kibana可视化能力。研究Storm实时分析日志统计模块。1.5论文组织结构第一章绪论,介绍日志分析平台的背景和当前现状,以及意义,通过目前比较流行的开源收集系统做了比较后,确定本文采用Flume开源框架。第二章介绍了Flume框架和本文相关的一系列开源技术,主要包括,ElasticSearch、Kafka、Storm等技术,为日志分析平台整体搭建做准备。第三章是日志分析平台的需求分析,主要介绍当前平台搭建的目标,以及需求和环境需求。第四章介绍平台总体架构设计,以及各个模块间的数据传输功能描述。第五章介绍平台各模块具体实现。第六章对日志分析平台进行集成测试。2Flume等技术介绍2.1Flume框架介绍Flume的一些核心概念:Agent使用JVM运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。Client生产数据,运行在一个独立的线程。Source从Client收集数据,传递给Channel。Sink从Channel收集数据,运行在一个独立线程。Channel连接sources和sinks,这个有点像一个队列。Events可以是日志记录、avro对象等。Flume以agent为最小的独立运行单位。一个agent就是一个JVM。单agent由Source、Sink和Channel三大组件构成,如图2所示:图2FlumeAgent架构图而且Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS,HBase,甚至是另外一个Source等等。Flume支持用户建立多级流,也就是说,多个agent可以协同工作,并且支持Fan-in、Fan-out、ContextualRouting、BackupRoutes。如图3所示:图3Flume多路Agent架构图基本功能:关于FlumeNG都支持哪些功能,我们围绕着Agent的三个组件Source、Channel、Sink来看它能够支持哪些技术或协议。我们不再对各个组件支持的协议详细配置进行说明,通过列表的方式分别对三个组件进行概要说明:FlumeSourceSource类型说明AvroSource支持Avro协议(实际上是AvroRPC),内置支持ThriftSource支持Thrift协议,内置支持ExecSource基于Unix的command在标准输出上生产数据JMSSource从JMS系统(消息、主题)中读取数据,ActiveMQ已经测试过SpoolingDirectorySource监控指定目录内数据变更Twitter1%firehoseSource通过API持续下载Twitter数据,试验性质NetcatSource监控某个端口,将流经端口的每一个文本行数据作为Event输入SequenceGeneratorSource序列生成器数据源,生产序列数据SyslogSources读取syslog数据,产生Event,支持UDP和TCP两种协议HTTPSource基于HTTPPOST或GET方式的数据源,支持JSON、BLOB表示形式LegacySources兼容老的FlumeOG中Source(0.9.x版本)表1FlumeChannelChannel类型说明MemoryChannelEvent数据存储在内存中JDBCChannelEvent数据存储在持久化存储中,当前FlumeChannel内置支持DerbyFileChannelEvent数据存储在磁盘文件中SpillableMemoryChannelEvent数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用)PseudoTransactionChannel测试用途CustomChannel自定义Channel实现表2FlumeSinkSink类型说明HDFSSink数据写入HDFSLoggerSink数据写入日志文件AvroSink数据被转换成AvroEvent,然后发送到配置的RPC端口上ThriftSink数据被转换成ThriftEvent,然后发送到配置的RPC端口上IRCSink数据在IRC上进行回放FileRollSink存储数据到本地文件系统NullSink丢弃到所有数据HBaseSink数据写入HBase数据库MorphlineSolrSink数据发送到Solr搜索服务器(集群)ElasticSearchSink数据发送到ElasticSearch搜索服务器(集群)KiteDatasetSink写数据到KiteDataset,试验性质的CustomSink自定义Sink实现表32.2Kafka架构介绍Kafka的一些核心概念:Broker,Kafka集群包含一个或多个服务器,这种服务器被称为brokerTopic,每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)Partition,Parition是物理上的概念,每个Topic包含一个或多个Partition.Producer,负责发布消息到KafkabrokerConsumer,消息消费者,向Kafkabroker读取消息的客户端。ConsumerGroup,每个Consumer属于一个特定的ConsumerGroup(可为每个Consumer指定groupname,若不指定groupname则属于默认的group)。Kafka拓扑结构下图4所示:图4Kafka拓扑架构图2.3Storm架构介绍

Storm集群和Hadoop集群表面上看很类似。但是Hadoop上运行的是MapReducejobs,而在Storm上运行的是拓扑(topology),这两者之间是非常不一样的。一个关键的区别是:一个MapReducejob最终会结束,而一个topology永远会运行(除非你手动kill掉)。

Storm集群主要由一个主节点(Nimbus后台程序)和一群工作节点(workernode)Supervisor的节点组成,通过Zookeeper进行协调。Nimbus类似Hadoop里面的JobTracker。Nimbus负责在集群里面分发代码,分配计算任务给机器,并且监控状态。

每一个工作节点上面运行一个叫做Supervisor的节点。Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程。每一个工作进程执行一个topology的一个子集;一个运行的topology由运行在很多机器上的很多工作进程组成。Stormtopology结构图如下图5所示:图5Stormtopology结构图2.4ElasticSearch架构介绍

ElasticSearch是一个基于Lucene构建的开源的、分布式的、RESTfulAPI式的搜索服务器,是开源搜索平台的新成员,实时数据分析的神器,具备高可靠性,用于云计算,能够达到实时搜索且稳定,可靠的快速服务。Elasticsearch分布式搜索引擎架构图如下图6所示:图6Elasticsearch分布式搜索引擎架构图3日志分析平台需求分析平台实现了对日志数据的实时监控以及实时采集,可以实时针对告警信息进行处理,以及统计存储等功能,可以根据用户需要维度来统计一段时间内该指标的波动以及告警数目,通过前台可视化直观展示系统运行状况。本章简单介绍日志分析平台的设计目标、模块的功能需求以及运行环境需求。3.1日志分析平台设计目标目前互联网的迅速进步,从而导致数据的迅速增长,目前企业最关心的是这些数据给自己带来一个什么样的价值,从数据的产生到数据的收集,然后存储,以及数据的发送,数据的处理,到数据的统计,最后通过这些数据产生出来的统计结果,用这些结果展现公司生产系统在产品线上的运营状况,指定更好的方针和政策。本平台的设计目标是建立一个统一日志分析平台,能够让运维人员从海量的机器中直接找到自己所关注的日志信息,以及让运营更好的了解应用的使用情况,指定出更好的方针,对应用或者运营进行修改和设计。根据应用日志统计出的用户行为来建立营销方案,提高公司产品的利益最大化。3.2日志分析平台需求3.2.1日志采集模块FlumeAgent的功能需求通过java语言实现FlumeAgent模块的设计,将FlumeAgent封装成jar包,放入Flume整体框架的lib目录下,在Fperties配置文件中配置当前框架应用Agent的Class文件指向当前jar包。提供Agent的配置文件,配置参数包括,采集的日志目录(可多个),采集的日志文件名(正则匹配),采集内容队列大小,FlumeServer的ip以及端口,采集线程数,发送线程数。Agent提供数据保护机制,在日志采集的过程中进行记录当前文件采集行数,保证Flume应用意外终止的情况下日志不会丢,当FlumeServer发送失败的情况下不进行更新当前日志行数记录文件,直到重新恢复连接才继续采集后续内容。实现从Kafka中拉去数据进行数据治理后重新放回Kafka功能,为storm实时分析做准备。3.2.2日志收集模块FlumeServer的功能需求FlumeServer接受来自FlumeClient发送的日志,从event中取出日志内容,通过配置文件启动当前Sink,然后将数据发送到Kafka队列中。3.2.3日志统计模块Storm的功能需求实现实时拉取3.2.1中第四点提到的治理后的数据内容进行实时分析以及统计,能够达到分析过程中发现严重告警,立即发送邮件或者短信到配置好的当前系统负责人,以及实现统计告警信息条数,以及日志中所关注的维度信息进行分组统计,存入influxdb时间序列存储数据库中。3.3日志分析平台运行环境需求环境配置硬件推荐配置CPU:8核内存:16G硬盘:500G运行系统Centos7.164bit开发平台Linux测试部署环境Linux3.4本章小结本章主要对统一日志平台系统的架构做了简单的介绍,并且给出了各个功能模块设计的功能需求,以及系统运行环境的需求。下一章会针对介绍统一日志平台的总体设计。4统一日志平台总体架构设计统一日志平台总体架构设计如下图7所示:图7统一日志平台总体架构设计如图所示,整体日志分析流程为,通过FlumeAgent实时监控日志文件,然后统一收集到FlumeServer端后,通过FlumeServer将日志发送到Kafka后,通过另一份Agent启动消费者来拉去Kafka日志消息,然后存储到ElasticSearch一份,并且进行日志业务标准化的代码来治理数据后发送到Kafka另外一个topic,给Storm用,Storm拉取治理后的日志内容进行分组统计,以及分析,然后存储到influxdb中,最后通过echart进行数据展示。4.1本章小结本章主要对统一日志分析平台架构图做了一个描述,并且描述了数据流程链路,下一章将会描述部分模块详细的设计和实现。5统一日志平台具体实现本章讨论了统一日志平台的详细设计,重点研究日志采集模块FlumeAgent,以及日志收集模块FlumeServer,以及可视化的详细设计和实现,介绍了各模块之间的链路流程。5.1日志采集模块FlumeClient的实现该平台开发了日志发送端FlumeClient,它是来处理Agent采集到的日志内容传输到日志服务端FlumeServer问题的,通用性强,不需要根据每个应用系统定制化开发日志发送模块,只要将应用产生的日志文件路径加入FlumeAgent监控的目录规则中即可,然后通过Agent进行文件监控内容发送到服务端完成。本文FlumeClient是基于Java设计开发实现的,Agent模块打包成jar包后,放入FlumeClient的lib目录下,并配置好API和具体篇日志信息,这样Flume就可以调度Agent进行日志采集并且发送日志event到FlumeServer端了。5.1.1日志采集模块FlumeAgent的具体实现日志采集模块FlumeAgent工作主要包括配置规则检查,目录监控句柄线程拉起,获取最新日志内容发送到Server端,并且更新监控记录文件行数。如下图8所示:图8日志采集Agent代码5.1.2日志采集模块FlumeAgent的目录监控具体实现通过读取配置文件配置好的多个目录,通过递归将目录下所有的文件句柄获取,然后通过配置文件配置好的读取行数,以及文件已采集行数进行内容读取,如下图9、图10所示:图9目录监控代码图10日志内容获取代码5.1.3日志采集模块FlumeAgent的数据保护机制通过记录每一次读取日志文件当前行数来进行数据保护,Agent实例出现意外的情况下,可以通过记录行数续读,进而保证日志内容采集的完整性,具体代码如下图11、图12所示:图11文件行数记录代码图12日志文件行数记录文件5.1.4日志采集模块FlumeAgent与FlumeServer的数据交互采集到日志内容后将数据传入ChannelProcessor中,然后发送到Server端,其中需要配置好FlumeServer的Ip以及端口,Channel配置为memory,Sink配置为avro,具体参考图13:图14:图13将数据传入通道具体代码图14flushEventBatch具体代码内容5.1.5日志采集模块FlumeClient配置项FlumeAgent在采集数据到发送数据,其中采集规则,FlumeClient调度Agent的配置内容,以及采集频率,以及serverip等配置内容参考下图15:图15FlumeClient端主配置文件5.1.6日志采集模块FlumeAgent的读取Kafka内容具体实现通过读取Kafka集群指定topic内容获取到FlumeServer端归集过来的日志数据信息并且存储到ElasticSearch中,具体代码如下图16、图17、图18所示:图16读取Kafka内容并存储到ElasticSearch具体代码实现图17FlumeAgent读取Kafka内容配置文件图18ElasticSearch连接池代码实现5.2日志采集模块FlumeServer的实现5.2.1日志采集模块FlumeServer日志归集实现通过获取Channel来读取Agent集群收集上来的数据,统一发送到Kafka集群指定Topic中,具体代码实现如下:图19打开通道获取日志信息发送到Kafka图20配置Kafka集群ip代码5.2.2日志采集模块FlumeServer配置项FlumeServer在归集数据发送到Kafka的时候,需要配置当前服务端口,以及服务Channel,以及业务处理Sink,和批处理数量等配置信息,具体参照下图21:图21FlumeServer主配置文件6统一日志平台集成测试统一日志平台总体测试环境需求如下:环境配置硬件推荐配置CPU:8核内存:16G硬盘:500G运行系统Centos7.164bit开发平台Linux测试部署环境Linux测试日志文件准备,目录下有若干日志文件:图22测试日志文件存放位置图23配置好FlumeAgent监控目录启动FlumeAgetn命令:nohup./flume-ngagent-c../conf-f../conf/perties-n${i}-Dflume.root.logger=INFO,DAILY&>/dev/null然后配置好FlumeServer启动后,检查我们的日志采集行数文件,参考图24:图24测试后日志采集行数记录文件然后查看FlumeServer日志,其中包含写入Kafka的日志信息:参照下图25:图25FlumeServer日志信息然后查看Kibana可视化系统,查看我们采集到的日志信息是否完整的写入到了ElasticSearch,参照下图26:图26,Kibana测试图然后可以查看定制化的一系列报表视图是否已经拥有数据:图27,Echart测试图结论本文统计了面对海量日志数据处理过程中,元日志端海量的数据发送,以及服务端海量数据的收集、存储、统计等难点问题。针对日志收集的统计问题,本文设计了基于Flume的日志收集系统,系统主要分为日志发送FlumeClient和日志归集FlumeServer,以及日志存储和统计模块。最后对整个平台进行了集成测试,验证系统的正确性。综上所述,本文主要取得成果包括:提出了目前在海量数据处理中所碰到的一些开源解决方案。将Flume进行二次开发满足系统需求。解决了数据存储和统计的问题。提出了目前在开源可视化的解决方案虽然本文设计的基于Flume的数据收集统计系统解决了海量日志收集的问题,但是在开发该平台的过程中,我们采用了多个开源框架,我们还需要针对当前需求进行二次重构,让系统更加完善。下面对Flume的问题进行描述:Flume:本文中使用Flume在采集的过程中遇到的日志都是非标准化的,在采集并且数据治理的过程中是非常消耗资源的,在数据达到一定程度的时候会造成数据积压,因此恶性循环,甚至会造成Kafka队列积压,引发整体链路正常运行。所以在日至分析平台中,系统的吞吐量,数据治理的性能指标,优化算法以及分组统计的性能指标,我们跟关注提高这些指标,来提高我们系统的可用性以及健壮性。致谢在本篇论文完成的同时,我首先要感谢我的导师。在导师的悉心指导下,我的论文才能如此顺利的完成。并且得到了其他老师的肯定。在本篇论文的完成过程中,导师对我提出了很多建设性的指导意见,细心地和我讲解论文中出现的问题,给予专业上的指导,信心上的鼓励。我能顺利完成本篇论文和老师的认真指导和辛苦的批改是分不开的,在此我由衷论文代写的向各位老师表示感谢。同时我也要感谢学校和学校的领导给我们创造的良好的学习环境,让我们能够在良好的氛围中完成论文。感谢同学和家人在这期间的大力支持。参考文献[1]张龙.ApacheFlume:DistributedLogCollectionforHadoop[M].北京:机械工业出版社,2015,47-87.[2]HariShreedharan.Flume:构建高可用、可扩展的海量日志采集系统[M].北京:电子工业出版社,2015,7-27,31-34.[3]蔡建斌.Elasticsearch服务器开发(第2版)[M].北京:人民邮电出版社,2015,28-55.[4]时金桥.ElasticSearch:可扩展的开源弹性搜索解决方案[M].北京:电子工业出版社,2015,1-34.基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究HYPERLINK"/detail.htm?369

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论