19.6 大数据架构设计案例分析
19.6.1 Lambda架构在某网奥运中的大数据应用
基于Lambda架构,由数据集成层、数据存储层、数据计算层和数据应用层构成
数据集成层分为离线数据集成和实时数据集成。
实时数据集成集群采用Nginx和 Flume服务器对实时流数据聚合并传输至Kafka 队列中,由Kafka将实时流数据分发至实时流计算引擎中分析。
离线数据集成集群使用开源组件sqoop将数据不断追加存储到主数据集中,采用分布式列数据库 Hbase 存储主数据集。两个集群之间通过 Kafka 的Mirror功能实现同步。
数据存储层利用云存储技术构建平台的存储系统,该存储系统不仅集成了分布式列数据 Hbase、 内存关系型数据库MemSQL, 而且还增加了统一的监控管理功能和开放更多的访问接口。
数据计算层为了实现I/O的负载分离,通过对实际业务解析,将数据计算层分为离线计算、 实时计算和合并计算三部分。
19.6.2 Lambda架构在某网广告平台的应用与演进
批处理层每天将 Kafka 中的浏览、下单消息同步到HDFS 中,再将HDFS 中的日志数据解析成Hive表,用Hive Sql/ Spark Sql计算出分区的统计结果Hive表,最终将Hive表导出到 MySQL中供服务层读取。
实时处理层则是用 Spark Streaming程序监听Kafka 中的下单、付款消息,计算出每个追踪 链接维度的转化数据,存储在redis 中。
服务层则是一个Java服务,向外提供 http接口。 Java服务读取两张MySQL表和一个Redis 库的数据。
19.6.3 某证券公司大数据系统
实时日志分析平台基于Kappa架构,使用统一的数据处理引擎Flink可实时处理全部数据, 并将其存储到 Elastic-Search 与 OpenTSDB 中。
实时处理过程:
(1)日志采集,即在各应用系统部署采集组件Filebeat, 实时采集日志数据并输出到 Kafka 缓存。
(2)日志清洗与解析,即基于大数据计算集群的Flink计算框架,实时读取Kafka 中的日 志数据进行清洗和解析,提取日志关键内容并转换成指标,以及对指标进行二次加工形成衍生 指标。
(3)日志存储,即将解析后的日志数据分类存储于 Elastic-Search 日志库中,各类基于日志 的指标存储于 OpenTSDB指标库中,供前端组件搜索与查询。
(4)日志监控,即通过单独的告警消息队列来保持监控消息的有序管理与实时推送。
(5)日志应用,即在充分考虑日志搜索专业需求的基础上,平台支持搜索栏常用语句保存, 选择日志变量自动形成搜索表达式,以及快速按时间排序过滤、查看日志上下文等功能。
19.6.4 某电商智能决策大数据系统
实时智能决策大数据平台基于Kappa架构,使用统一的数据处理引擎Flink可实时处理流 数据,并将其存储到Hive与 Tair中,以供后续决策服务的使用。
实时处理的过程如下:
一是数据采集,即B 端系统会实时收集用户的点击,下单以及广告的曝光和出价数据并输 出到Kafka缓存。
二是数据的清洗与聚合,即基于大数据计算集群 Flink计算框架,实时读取Kafka中的 实时流数据,过滤出需要参与计算的字段,根据业务需求,聚合指定时间端的数据并转换成 指标。
三是数据存储,即将Flink计算得到数据存储到 Hive 日志库中,需要参与模型计算计算 的字段存储到 Tair分布式缓存中。