本文中我们首先介绍Lamda架构,然后基于Lamda架构设计我们的饿日志数据分析流水线架构。

1.Lamda架构

       日志分析中既有离线大规模分析的需求,又有实时性的需求,这就可以通过采用Lamda架构构建日志分析流水线。

1.1Lamda架构简介

       Lambda架构的目的是为大数据分析应用程序提供一个低响应延迟的组合数据传输环境。

      Lambda 系统架构定义了一套明确的架构原则, 它为建立一套强大的和可扩展的数 据系统定义了架构范式。 在 Lamda 架构中, 被读取的数据是不可变的, 在并行处理过程中数据会依次进入流处理系统和批处理系统, 同时进行实时处理和离线数据分析。 在查询时, 当这两者都返回结果后, 才算是完成一次完整的查询。从逻辑上看, 传输过程发生了两次, 一次是在批处理中, 一次是在流处理中。
       Lamda 架构并不限定其中的具体系统, 要根据实际情况进行调整优化。 大数据的系统选型具体可以有很多的组合变化。 例如可以将下图 中的 Kafka 、 Strom 、 Hadoop 等换成其他类似的系统, 例如 Spark Streaming、 Spark 等, 惯常的做法是使用两个数据库来存储数据输出表, 一个存储实时表, 响应实时查询需求, 另外一个存储批处理表, 返回离线计算结果。

Lamda架构日志分析流水线(一)

       它是由三层组成:批处理层、 服务层和速度层。
     (1)批处理层:Hadoop 、 Spark、 Tez 等都可以作为批处理层的处理工具, HDFS、 HBase 等都可以作为数据持久化系统。

     (2)服务层:用于加载和实现数据库中的批处理视图, 以便用户能够查询, 不一定需要随机写, 但是支持批更新和随机读, 例如采用 ElephantDB、 Voldemort。

    (3)快速处理层:主要处理新数据和服务层更新造成的高延迟补偿, 利用流处理系统(如 Storm 、 S4、 SparkStreaming) 和随机读写数据存储库来计算实时视图 ( HBase) 。 批处理和服务层定期处理和转换实时视图为批处理视图。
       为了获得一个完整结果, 批处理和实时视图都必须被同时查询和融合(实时代表新数据)。

1.2数据分析流水线架构

      我们借鉴lamda架构,设计整个数据分析流水线架构,如下图所示:

Lamda架构日志分析流水线(一)

本例中实时日志分析流水线大致按以下步骤操作。
(1)数据采集:采用 Flume NG 进行数据采集。

(2)数据汇总与转发:通过 Flume 将数据转发汇总到实时消息系统 Kafka。

(3)数据处理:采用SparkStreaming 进行实时数据处理。

(4)结果呈现:采用 Flask作为可视化呈现工具进行结果呈现。

离线日志分析流水线大致按以下步骤操作。

(1)数据存储:通过 Flume 将数据转储到 HDFS。

(2)数据处理: 通过 SparkSQL 进行数据预处理。

(3)结果呈现:结果汇总存储到 MySQL 最后通过 Flask进行结果呈现。

相关文章:

  • 2021-08-12
  • 2021-10-06
  • 2021-05-30
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2022-12-23
猜你喜欢
  • 2021-04-28
  • 2022-12-23
  • 2022-01-17
  • 2021-07-26
  • 2021-10-09
  • 2021-08-21
  • 2021-09-04
相关资源
相似解决方案