来源马士兵教程,不错的一套基本教程,地址在:一套搞定大数据开发必备技术:Spark,Flink,Hive,数据仓库,数据湖Iceberg,数据中台,OLAP分析引擎Clickhouse(附完整学习路线)_哔哩哔哩_bilibili
§
§
Lambda架构
Lambda架构是一种经典的大数据处理架构,它结合了批处理和流处理两种方式,以同时满足低延迟的实时查询和高吞吐量的批处理查询需求。
- 数据来源:
- 用户日志
- 系统日志
- biglog日志
- 处理路径:
- 离线处理:
- 日志数据首先进入Hive,这是Hadoop生态系统中的一个数据仓库工具,用于存储和处理大量数据。
- 数据在Hive中经过ODS(操作数据存储)、DWD(数据仓库明细层)、DWS(数据仓库汇总层)的处理,这些层次分别对应数据的原始存储、明细加工和汇总统计。
- 最终,处理后的数据进入DM(数据集市),并通过Impala和MySQL进行数据存储和可视化展示。Impala是一个用于大数据集交互式查询的开源工具,而MySQL则是一个广泛使用的关系型数据库管理系统。
- 实时处理:
- 日志数据通过Kafka,这是一个高吞吐量的分布式消息系统,用于实时数据流的处理。
- 数据同样经过ODS、DWD、DWS的处理层次,但在此路径中,使用了Kudu、Elasticsearch(ES)、MySQL和Druid进行数据存储和可视化展示。Kudu是一个快速的列式存储引擎,适用于需要快速查询和分析的场景;Elasticsearch是一个基于Lucene的搜索引擎,提供了分布式的多用户能力的全文搜索引擎;Druid则是一个实时分析数据库,设计用于对大规模数据进行快速随机访问。
- 离线处理:
Kappa架构
Kappa架构是Lambda架构的一种简化版本,它去掉了批处理部分,只保留流处理部分,从而简化了架构的复杂性。
- 数据来源:
- 与Lambda架构相同,包括用户日志、系统日志和biglog日志。
- 处理路径:
- 日志数据同样通过Kafka进入系统。
- 与Lambda架构不同,Kappa架构使用Flink进行实时计算。Flink是一个开源的流处理框架,能够支持高吞吐、低延迟的数据处理。
- 数据经过ODS、DWD、DWS的处理层次后,最终进入DM层。
- 在DM层,数据存储和可视化展示使用了Elasticsearch(ES)、Kudu、MySQL、Druid和HBase等组件。HBase是一个分布式的、面向列的开源数据库,适用于非结构化数据的存储。
关键组件
- Kafka:在两种架构中均用于实时数据流处理,提供了高吞吐量的消息传递服务。
- Flink:仅在Kappa架构中用于实时计算,支持复杂的事件处理和状态管理。
- Hive:仅在Lambda架构中用于离线数据处理,提供了数据汇总、即席查询等功能。
- 数据存储和可视化组件:包括Impala、Kudu、Elasticsearch、MySQL、Druid和HBase等,这些组件在两种架构中根据处理路径的不同被选用,以满足不同的数据存储和查询需求。