`
m635674608
  • 浏览: 5091635 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

日志系统之Flume采集加morphline解析

    博客分类:
  • java
 
阅读更多

概述

这段时间花了部分时间在处理消息总线跟日志的对接上。这里分享一下在日志采集和日志解析中遇到的一些问题和处理方案。

日志采集-flume

logstash VS flume

首先谈谈我们在日志采集器上的选型。由于我们选择采用ElasticSearch作为日志的存储与搜索引擎。而基于 ELK(ElasticSearch,Logstash,Kibana)的技术栈在日志系统方向又是如此流行,所以把Logstash列入考察对象也是顺 理成章,Logstash在几大主流的日志收集器里算是后起之秀,被Elastic收购之后更加成熟,社区也比较活跃。

Logstash的设计:inputfilter,output。flume的设计sourcechannelsink,当然flume也有interceptor。具体的设计就不多废话,大致上都是拆分解耦pipeline(管道)的思想。同时,它们都支持分布式扩展,比如Logstash既可以作为shipper也可作为indexer,flume可以多个agent组成分布式事件流。

我对flume的接触早于Logstash。最近调研Logstash的时候,对它强大的filter印象深刻,特别是grok。而之前flume阵营强调最多的是它的source,sink,channel对各种开源组件的扩展支持非常强大。

Logstash固然是一个不错的,但它采用JRuby语言(一种形似Ruby语法的JVM平台的语言)实现使得它的定制性不够灵活, 这是我放弃Logstash的主要原因。因为生态的原因,我确实需要Java技术栈提供的扩展性(这里主要目标是将消息总线作为日志采集的缓存队列),而 这正是flume的强项。但flume里很少有提及对日志的解析支持,即便有支持正则的interceptor,也只是很有限的查找、替换之类的。经过一 番调研发现其实flume提供了这样一个interceptor——morphline。它可以完成对日志的解析。

日志解析-morphline

morphline简介

morphline是由flume的母公司cloudera开源的一个ETL框架。它用于构建、改变基于Hadoop进行ETL(extract、 transfer、load)的流式处理程序。(值得一提的是flume是由cloudera捐献给Apache的,后来经过重构成了flume- ng)。morphline使得你在构建ETL Job不需要编码并且不需要大量的MapReduce技巧。

morphline是一个富配置文件可以很简单得定义一个转化链,用于从任何数据源消费任何类型的数据,处理数据然后加载结果到Hadoop组件中。它用简单的配置步骤代替了Java编程。

morphline是一个类库,可以嵌入任何java程序中。morphline是一个内存容器可以存储转化命令。这些命令以插件的形式被加载到 morphline中以执行任务,比如加载、解析、转化或者处理单条记录。一个记录是在内存中的名称-值对的数据结构。而且morphline是可扩展 的,可以集成已存在的功能和第三方系统。

这篇文章不是morphline的软文,所以更多介绍请移步cloudera的CDK官方文档。

这里有副图,形象地展示了morphline大致的处理模型:
系统。利用storm stream做实时解析,利用mapreduce做离线分析,这种高度定制化的使用场景,几乎不需要flume的agent在客户端进行解析的能力,因此flume的morphline也就很少被提及。

但morphline还是不可多得的文本ETL利器,无论你是在采集的时候直接用morphline 做ETL还是在服务端做,flume+morphline加起来带来的灵活性也不输Logstash。

 

http://www.2cto.com/kf/201511/450943.html

http://my.oschina.net/u/2311010/blog/523066?p=1

 

分享到:
评论

相关推荐

    基于Flume的分布式日志采集分析系统设计与实现.pdf

    基于Flume的分布式日志采集分析系统设计与实现 Flume是一种分布式日志采集系统,可以实时地采集和处理大量日志数据。该系统基于Flume、Elasticsearch和Kibana等技术手段,能够对海量日志数据进行实时采集、处理和...

    Flume 构建高可用、可扩展的海量日志采集系统

    根据提供的文件信息,实际内容与标题及描述严重不符,但基于题目要求,我们将重点解析标题“Flume 构建高可用、可扩展的海量日志采集系统”以及描述“flume 大数据导入数据首选”所涉及的知识点。 ### Flume 构建高...

    Flume采集数据到Kafka,然后从kafka取数据存储到HDFS的方法思路和完整步骤

    本文将详细介绍如何利用Flume采集日志数据,并将其发送到Kafka中,最后将这些数据从Kafka取出并存储到HDFS上。这一流程不仅适用于大规模的日志数据采集场景,还能帮助读者快速熟悉Flume、Kafka和HDFS等大数据组件的...

    Flume采集Nginx日志到Hive.rar

    Flume采集Nginx日志到Hive的事务表时需要导入到Flume下的Jar文件,具体使用方式可参见博文:https://blog.csdn.net/l1028386804/article/details/97975539

    flume采集日志jar

    flume采集日志所用的jar包,将自动采集生成的日志,配合博客使用。

    (源码)基于Flume和Morphline的Solr数据处理系统.zip

    # 基于Flume和Morphline的Solr数据处理系统 ## 项目简介 本项目是一个基于Apache Flume和Morphline框架的Solr数据处理系统。Flume是一个分布式、可靠且高可用的服务,用于高效地收集、聚合和移动大量日志数据。...

    flume采集日志信息简报

    Flume 的强大之处在于它的 Output 方式多样,可以将日志信息输出到文件、数据库、Kafka、HDFS 等多种存储介质中。 Flume 的架构主要分为三个部分:Source、Channel 和 Sink。Source 负责采集日志信息,Channel ...

    Flume++构建高可用、可扩展的海量日志采集系统pdf

    其中上篇介绍了HDFS以及流式数据/日志的问题,同时还谈到了Flume是如何解决这些问题的。本书展示了Flume的架构,包括将数据移动到数据库中以及从数据库中获取数据、NoSQL数据存储和性能调优。对于各个架构组件(源、...

    flume日志采集

    Apache Flume是一款高可靠、高性能的日志采集系统,支持在日志系统中定制各类数据发送方(source)、数据通道(channel)以及数据接收方(sink)。Flume提供对数据进行简单处理,并写到各种数据接受方的能力。其主要...

    Flume构建高可用、可扩展的海量日志采集系统

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

    kafka+flume 实时采集oracle数据到hive中.docx

    Flume是一个分布式、可靠、高吞吐量的日志收集系统,能够实时地从Kafka中提取数据,并将其写入到HDFS中。为了实现这一点,需要先安装Flume,版本号为flume-1.9.0-bin.tar.gz。然后,需要配置Flume的配置文件flume....

    flume:构建高可用、可扩展的海量日志采集系统

    flume:构建高可用、可扩展的海量日志采集系统 flume:构建高可用、可扩展的海量日志采集系统

    基于java的开发源码-日志服务器 Apache Flume.zip

    基于java的开发源码-日志服务器 Apache Flume.zip 基于java的开发源码-日志服务器 Apache Flume.zip 基于java的开发源码-日志服务器 Apache Flume.zip 基于java的开发源码-日志服务器 Apache Flume.zip 基于java的...

    Flume++构建高可用、可扩展的海量日志采集系统

    在“Flume++构建高可用、可扩展的海量日志采集系统”这个主题中,我们将深入探讨Flume如何帮助处理和分析海量数据,以及如何通过扩展和优化实现高可用性。 1. **Flume 基础概念**:Flume由Source、Channel和Sink三...

    已上线的日志采集系统,使用flume收集日志.zip

    在这个日志系统中,Kafka扮演了中间件的角色,接收来自Logstash的结构化日志数据,并存储在主题(topics)中,等待消费者(可能是数据分析应用、ELK Stack或其他系统)进行实时处理或离线分析。 **数据库** 虽然...

    大数据技术应用(一) 应用Flume+HBase采集和存储日志数据

    在大数据技术领域,Flume和HBase是两个关键的组件,它们在日志数据的采集、传输和存储中发挥着重要作用。本篇文章将详细介绍这两个工具的使用及其在实际应用中的结合。 首先,让我们来理解Flume。Apache Flume是一...

    大数据实时日志采集框架Flume实战(视频+课件+代码+工具+讲义)

    Flume的介绍及其架构组成 Flume的安装部署 Flume的测试运行 Flume中配置使用file channel及HDFS sink Flume中配置HDFS文件生成大小及时间分区 Flume中配置Spooling Dir的使用 Flume中配置Spooling Dir的文件...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    Flume-ng 是一个高可用、可靠、分布式的日志聚合系统,可以实时地从各种数据源(如日志文件、网络 socket、数据库等)中收集数据,并将其传输到目标系统中,如 HDFS、HBase 等。在本文中,我们将介绍如何在 Windows ...

Global site tag (gtag.js) - Google Analytics