0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以Lambda为例参考,分析该如何做好一个大数据平台架构?

如意 来源:今日头条 作者:CRM研究社 2020-09-16 16:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、Lambda架构需求

Lambda架构背后的需求是由于MR架构的延迟问题。MR虽然实现了分布式、可扩展数据处理系统的目的,但是在处理数据时延迟比较严重。实际上如果内存和CPU足够强大,MR也可以实现近实时运算,但实际业务环境并非如此,因此我们需要权衡,选择实时处理和批处理所需要数据量和恰当的资源。

2012年Storm的作者Nathan Marz提出的Lambda数据处理框架。Lambda架构的目标是设计出一个能满足实时大数据系统关键特性的架构,包括有:高容错、低延时和可扩展等。Lambda架构整合离线计算和实时计算,融合不可变性(Immunability),读写分离和复杂性隔离等一系列架构原则,可集成Hadoop,Kafka,Storm,Spark,Hbase等各类大数据组件。

二、Lambda架构的关键

横向扩容

可扩展性意味着为满足日益增长的用户服务需求,同时不用对底层架构或者代码,可以通过现有机器添加内存或者磁盘资源来实现(垂直扩展),或者可以通过在集群中添加机器实现(水平扩展)。无论是实时或者批处理,都应该能够不停服务的情况下,可以实施水平扩展。

故障容错

系统需要妥善处理故障,确保系统在某些组件发生故障的情况下,整个系统服务的可用性。可能部分组件故障会导致集群中部分节点宕机,影响了整理的SLA,但是系统还是可以相应的,系统不能有单点故障。

低延迟

很多应用对于读和写操作的延时要求非常高,要求对更新和查询的响应是低延时的。

可扩展

系统需要足够灵活,能够实现新增和修改需求,又不需要重构整个系统。实时处理和批处理隔离开,能够灵活修改需求。

易维护

开发部署不能够太复杂。

三、Lambda架构的分层

以Lambda为例参考,分析该如何做好一个大数据平台架构?

在Lambda架构中新数据到达时,会被同时分派到批处理层和快速处理层。一旦数据到达批处理层,按照常规批处理时间间隔,每次都从头开始重新计算并生成批处理视图。类似地,只要新数据到达快速处理层,快速处理层就会使用新数据生成快速视图。在查询到达服务层时,它会合并快速视图和批处理视图来生成适当的查询结果。生成批处理视图后,快速视图将被丢弃,除非有新数据抵达,否则只需要查询批处理视图,因为此时批处理层中拥有所有的数据。

Lambda架构定义主要层以及每个组件之间的集成。注意分为以下层:

数据源

数据源指外部的数据库、消息队列、文件等,可以开发数据消费层,隐藏来自不同访问数据的复杂性,定义好数据格式。

数据消费层

负责封装不能数据源获取数据的复杂性,将其转换可由批处理或者流处理进一步使用同一的格式进行消费。

批处理层

这是Lambda架构核心层之一,批处理接受数据,持久化到用户定义好的数据结构中,维护着主数据。数据结构一般不做改变,只是追加数据。批处理还负责创建和维护批处理视图。比如我们常做的Hive ETL ,统计一些数据,最后将结果保存在hive表中,或者数据库中,就属于批处理层。

实时层

这是Lambda另一个核心层。批处理在很多场景下能够满足需求,但是随着业务需求“苛刻性”,他们希望能够及时看到数据,而不是等到第二天才看指标变化和分析结果。所以引入了实时处理。实时层解决了一个问题,即只存储可立即向用户提供的一组数据,这样就不需要对全量数据进行处理,大大提供处理效率。比如流处理仅仅存储最近5分钟的数据,处理计算并形成结果,这就是我们用spark streaming中要有的时间窗口。

服务层

这是Lambda架构的最后一层,服务层的职责是获取批处理和流处理的结果,向用户提供统一查询视图服务。

四、Lambda架构总结

Lambda数据架构曾经成为每一个公司大数据平台必备的架构,它解决了一个公司大数据批量离线处理和实时数据处理的需求。

数据从底层的数据源开始,经过各种各样的格式进入大数据平台,在大数据平台中经过Kafka、Flume等数据组件进行收集,然后分成两条线进行计算。一条线是进入流式计算平台(例如 Storm、Flink或者Spark Streaming),去计算实时的一些指标;另一条线进入批量数据处理离线计算平台(例如Mapreduce、Hive,Spark SQL),去计算T+1的相关业务指标,这些指标需要隔日才能看见。

Lambda架构经历多年的发展,非常稳定,对于实时计算部分的计算成本可控,批量处理可以用晚上的时间来整体批量计算,这样把实时计算和离线计算高峰分开,这种架构支撑了数据行业的早期发展,但是它也有一些致命缺点:

实时与批量计算结果不一致

因为批量和实时计算走的是两个计算框架和计算程序,算出的结果往往不同,经常看到一个数字当天看是一个数据,第二天看昨天的数据反而发生了变化。

批处理的健壮性

随着数据量级越来越大,经常发现夜间只有4、5个小时的时间窗口,已经无法完成白天20多个小时累计的数据,保证早上上班前准时出数据已成为每个大数据团队头疼的问题,同时做个任务并行执行对于大数据集群的稳定性也是巨大的考验,经常会有任务因为资源不足没有定时启动或者报错。

开发和维护的复杂

Lambda 架构中对同样的业务逻辑进行两次编程:一次为批量计算的ETL系统,一次为流式计算的Streaming系统。针对同一个业务问题产生了两个代码库,各有不同的漏洞。

存储增长快

数据仓库的设计不合理,会产生大量的中间结果表,造成数据急速膨胀,加大服务器存储压力。比如我们经常纠结于数据仓库到底怎么分层,是直接ODS层到应用呢?还是ODS层要景观DWS、DW等,最后才到应用呢?

Lambda架构虽然有缺点,但是在很多公司依然适用,有时候我们没有那么大的业务量,实时业务需求并没有那么明显,用着Lambda架构依然很爽。对于超大数据量的业务或者实时业务同样多的情况,可以探索改良Lambda,业内也提出了Kappa架构,感兴趣的小伙伴可以搜索学习下。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 平台
    +关注

    关注

    1

    文章

    200

    浏览量

    24444
  • 大数据
    +关注

    关注

    64

    文章

    9029

    浏览量

    143037
  • Lambda
    +关注

    关注

    0

    文章

    31

    浏览量

    10500
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NICE协处理器接口信号解读--demo

    valid-ready握手协议。 详细说明 在这部分,我们会结合demo中的具体代码对接口信号的行为进行分析。 1.系统信号 nice_clk是系统的时钟信号,nice_rst_n是系统
    发表于 10-31 08:01

    组态大数据平台是什么?有什么功能?

    组态大数据平台是融合 组态技术 与 大数据处理能力 的综合性平台,通过图形化、可配置的方式实现数据采集、存储、
    的头像 发表于 10-30 11:29 88次阅读
    组态<b class='flag-5'>大数据</b><b class='flag-5'>平台</b>是什么?有什么功能?

    电磁兼容与电磁干扰在电磁兼容性大数据分析中的智能管理系统

    数据,结合大数据分析、流程自动化及云边协同技术,实现电磁环境全生命周期管理。以下从五大维度精简解析: 应用案例 北京华盛恒辉、北京五木恒润研发的 EMC/EMI 智能管理系统已落地应用,成效显著,系统推广提供有力支撑。
    的头像 发表于 09-17 14:58 426次阅读

    NVMe高速传输之摆脱XDMA设计23:UVM验证平台

    抽象 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用,项目基于 UVM 搭建验证平台进行功能验证。图1 验证平台架构图在验证平台
    发表于 08-26 09:49

    NVMe高速传输之摆脱XDMA设计18:UVM验证平台

    抽象 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用,项目基于 UVM 搭建验证平台进行功能验证。图1 验证平台架构图在验证平台
    发表于 07-31 16:39

    水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?

    ARM 架构与 RISC-V 架构的 MCU 在同性能水平下的运行速度对比,需从架构设计原点、指令集特性及实际测试数据展开剖析。
    的头像 发表于 07-02 10:29 1200次阅读
    同<b class='flag-5'>一</b>水平的 RISC-V <b class='flag-5'>架构</b>的 MCU,和 ARM <b class='flag-5'>架构</b>的 MCU 相比,运行速度如何?

    智能手表的适老化设计应考虑哪些方面?橙子大健康Watch D Pro

    生活的同时,获得科技带来的安全感与便利性。本文橙子大健康WatchDPro,谈谈智能健康手表如何做好适老化设计。、交互与显示设计:兼
    的头像 发表于 06-19 14:31 594次阅读
    智能手表的适老化设计应考虑哪些方面?<b class='flag-5'>以</b>橙子大健康Watch D Pro<b class='flag-5'>为</b><b class='flag-5'>例</b>

    ArkUI-X跨平台技术落地-华为运动健康()

    、心脏健康)与 数据平台的耦合关系,通过接口的形式隔离三端(iOS 和 Android和鸿蒙NEXT系统)的数据平台的实现差异,成为
    发表于 06-18 22:53

    深控数据平台V1.0发布!IoT之力重塑工厂“数据脉络”

    自主研发的“深控数据平台V1.0”(软著登记号:XXXXXXXX),IoT技术核心,打造“全域感知-智能分析-精准控制”的
    的头像 发表于 05-28 14:56 453次阅读

    光伏电站无人机巡检系统平台的设计架构

    电站中不同的运维管理需求。 根据光伏电站的运维管理工作内容,光伏电站无人机巡检系统平台从多个层面建设系统平台架构,能够全方位、智能化的实现电站的运维管理。其设计架构包含设备层、数据采集
    的头像 发表于 05-07 11:23 600次阅读
    光伏电站无人机巡检系统<b class='flag-5'>平台</b>的设计<b class='flag-5'>架构</b>

    物联网平台解决方案:实现设备智能管理与数据安全

    的设计与实施对于推动物联网技术的广泛普及和深度应用至关重要。 、关键要素 1.平台架构设计:平台需兼顾灵活性、可扩展性和安全性。典型的
    的头像 发表于 03-14 16:35 901次阅读

    《AI Agent 应用与项目实战》第1-2章阅读心得——理解Agent框架与Coze平台的应用

    的Agent,每个Agent负责特定领域的任务,并通过精心设计的协作机制实现信息共享和任务协调。数据分析,我们可以设置数据清洗Agen
    发表于 02-19 16:35

    ADS1146的外接时钟,4.096MHZ,这个时钟频率是用来决定采样频率的么?

    读了数据手册后,有如下的困惑:(ADS1146) 1、可以通过产生START的脉冲来
    发表于 02-07 08:04

    工程大数据平台

    由于无人驾驶系统开发需要长期迭代优化,其过程需要大量的路试数据支撑,经纬恒润针对无人驾驶系统持续运营和持续迭代的需求,开发并在云端部署了车路云工程大数据平台,依托5G网络,具有远程数据
    的头像 发表于 01-10 17:00 936次阅读
    工程<b class='flag-5'>大数据</b><b class='flag-5'>平台</b>

    SAR ADC如何做好布线布局?

    SAR ADC如何做好布线布局?
    发表于 12-17 08:27