Lambda架构?
Lambda架构(三层架构):
(1)将数据处理分为实时和离线两部分。离线部分通过批量计算处理数据,实时部分则通过增加追加方式将数据合并到批处理中。
(2)批处理和增量处理独立存在,适合处理大数据量的场景。
(3)适用于离线批处理和增量处理场景,如离线数据分析、报表生成等。
批处理层:存储数据集。
【MapReduce】【Spark】
加速层:处理最近的增量数据流。
【Spark Streaming】【Storm】
服务层:合并批视图和实时视图中的结果数据集到最终数据集。
【Redis】【MySQL】【HBase】【Hive】
优点:(1)容错性好(2)灵活度高(3)易伸缩易扩展
缺点:(1)全场景覆盖带来的编码开销(2)重新部署和迁移成本高
应用实例
Kappa架构?
Kappa架构(二层架构):
(1)以流处理为主的数据分析架构,实时层流式处理输入数据,生成实时视图,服务层接受用户请求,查询实时视图,响应用户请求。
(2)流式处理,适合处理实时数据。
(3)适用于实时性要求高的场景,如金融、物流等领域的实时监控、预警等。
实时层:处理输入数据,生成实时视图。
【采用Apache Kafka回访数据】
【采用Flink或Spark Streaming处理】
服务层:使用实时视图中的结果数据集响应用户请求。
【一般使用数据仓库或数据湖中的缓存或存储作为服务层】
优点:离线和实时处理代码统一,将实时和离线统一起来,方便进行数据处理;具有低延迟、高吞吐量、高可扩展性等优点。
缺点:计算能力相对较弱,难以即时响应;过度依赖特定组件(如Redis和HBase)。
应用实例
Lambda和Kappa架构的区别?