文档详情

第6讲大数据架构设计理论与实践Kappa 架构的实现和优缺点.pptx

发布:2025-02-20约2.15千字共9页下载文档
文本预览下载声明

第十九章大数据架构设计理论与实践Kappa架构的实现和优缺点系统架构设计师第二版

综合知识精讲培训课讲师:邵宗其

考点分析本章主要学习大数据方向软件架构的发展和工作中的实践。根据考试大纲,本小时知识点会涉及案例分析题和论文题(各占25分)。本小时内容侧重于理解性记忆,按照以往的出题规律,部分基础知识点来源于教材,部分考查内容需要灵活运用相关知识点。知识架构如图所示。大数据架构设计理论与实践

Kappa架构的实现以ApacheKafka为例来讲述整个全新架构的过程。部署ApacheKafka,并设置数据日志的保留期(RetentionPeriod)。这里的保留期指的是你希望能够重新处理的历史数据的时间区间。例如,如果你希望重新处理最多一年的历史数据,那就可以把ApacheKafka中的保留期设置为365天。如果你希望能够处理所有的历史数据,那就可以把ApacheKafka中的保留期设置为“永久(Forever)”。如果需要改进现有的逻辑算法,那就表示我们需要对历史数据进行重新处理。需要做的就是重新启动一个ApacheKafka作业实例(Instance)。这个作业实例将从头开始,重新计算保留好的历史数据,并将结果输出到一个新的数据视图中。ApacheKafka的底层是使用LogOffset来判断现在已经处理到哪个数据块了,所以只需要将LogOffset设置为0,新的作业实例就会从头开始处理历史数据。当这个新的数据视图处理过的数据进度赶上了旧的数据视图时,我们的应用便可以切换到从新的数据视图中读取。停止旧版本的作业实例,并删除旧的数据视图。Kappa的实现Kafka

Kappa架构的优缺点Kappa架构的优点在于将实时和离线代码统一起来,方便维护而且统一了数据口径的问题,避免了Lambda架构中与离线数据合并的问题,查询历史数据的时候只需要重放存储的历史数据即可。Kappa优点

Kappa架构的优缺点(1)消息中间件缓存的数据量和回溯数据有性能瓶颈。通常算法需要过去180天的数据,如果都存在消息中间件,无疑有非常大的压力。同时,一次性回溯订正180天级别的数据,对实时计算的资源消耗也非常大。(2)在实时数据处理时,遇到大量不同的实时流进行关联时,非常依赖实时计算系统的能力,很可能因为数据流先后顺序问题,导致数据丢失。(3)Kappa在抛弃了离线数据处理模块的时候,同时抛弃了离线计算更加稳定可靠的特点。Lambda虽然保证了离线计算的稳定性,但双系统的维护成本高且两套代码带来后期运维困难。对于以上Kappa框架存在的几个问题,目前也存在一些解决方案,对于消息队列缓存数据性能的问题,Kappa+框架提出使用HDFS来存储中间数据。针对Kappa框架展示层能力不足的问题,也有人提出了混合分析系统的解决方案。Kappa缺点

Kappa架构的变形Kappa+是Uber提出流式数据处理架构,它的核心思想是让流计算框架直接读HDFS里的数据仓库数据,一并实现实时计算和历史数据backfll计算,不需要为backfll作业长期保存日志或者把数据拷贝回消息队列。Kappa+将数据任务分为无状态任务和时间窗口任务,无状态任务比较简单,根据吞吐速度合理并发扫描全量数据即可,时间窗口任务的原理是将数据仓库数据按照时间粒度进行分区存储,窗口任务按时间先后顺序一次计算一个partition的数据,partition内乱序并发,所有分区文件全部读取完毕后,所有source才进入下一个partition消费并更新watermark。事实上,Uber开发了Apachehudi框架来存储数据仓库数据,hudi支持更新、删除已有parquet数据,也支持增量消费数据更新部分,从而系统性解决了存储的问题。图19-11是完整的Uber大数据处理平台,其中Hadoop→Spark→用户查询的流程涵盖了Kappa+数据处理架构。将不同来源的数据通过Kafka导入到Hadoop中,通过HDFS来存储中间数据,再通过spark对数据进行分析处理,最后交由上层业务进行查询。Kappa+架构

Kappa架构的优缺点Lambda和Kappa架构都还有展示层的困难点,结果视图如何支持热点数据查询分析,一个解决方案是在Kappa基础上衍生数据分析流程。如图19-12所示,在基于使用Kafka+Flink构建Kappa流计算数据架构,针对Kappa架构分析能力不足的问题,再利用Kafka对接组合Elastic-Search实时分析引擎,部分弥补其数据分析能力。但是ElasticSearch也只适合对合理数据量级的热点数据进行索引,无法覆

显示全部
相似文档