课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,大数据技术在数据处理上有了更多的变化形式,而今天我们就一起来了解一下,目前比较常见的两种大数据处理架构形式。
Lambda架构
Lambda架构是目前影响深刻的大数据处理架构,它的核心思想是将不可变的数据以追加的方式并行写到批和流处理系统内,随后将相同的计算逻辑分别在流和批系统中实现,并且在查询阶段合并流和批的计算视图并展示给用户。Lambda的提出者NathanMarz还假定了批处理相对简单不易出现错误,而流处理相对不太可靠,因此流处理器可以使用近似算法,快速产生对视图的近似更新,而批处理系统会采用较慢的精确算法,产生相同视图的校正版本。
Lambda架构的四个挑战
Lambda架构非常复杂,在数据写入、存储、对接计算组件以及展示层都有复杂的子课题需要优化:
写入层上,Lambda没有对数据写入进行抽象,而是将双写流批系统的一致性问题反推给了写入数据的上层应用;
存储上,以HDFS为代表的masterdataset不支持数据更新,持续更新的数据源只能以定期拷贝全量snapshot到HDFS的方式保持数据更新,数据延迟和成本比较大;
计算逻辑需要分别在流批框架中实现和运行,而在类似Storm的流计算框架和HadoopMR的批处理框架做job开发、调试、问题调查都是比较复杂的;
结果视图需要支持低延迟的查询分析,通常还需要将数据派生到列存分析系统,并保证成本可控。
流批融合的Lambda架构
针对Lambda架构的问题3,计算逻辑需要分别在流批框架中实现和运行的问题,不少计算引擎已经开始往流批统一的方向去发展,例如Spark和Flink,从而简化lambda架构中的计算部分。实现流批统一通常需要支持:
以相同的处理引擎来处理实时事件和历史回放事件;
支持exactlyonce语义,保证有无故障情况下计算结果完全相同;
支持以事件发生时间而不是处理时间进行窗口化。
Kappa架构
Kappa架构由JayKreps提出,不同于Lambda同时计算流计算和批计算并合并视图,Kappa只会通过流计算一条的数据链路计算并产生视图。Kappa同样采用了重新处理事件的原则,对于历史数据分析类的需求,Kappa要求数据的长期存储能够以有序log流的方式重新流入流计算引擎,重新产生历史数据的视图。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。