大数据架构Lambda-架构师(六十九)

news2024/11/25 15:58:20

随着信息时代技术的发展,数据量的快速增加逐渐飙升到了惊人的数量级别。并且数据的采集与处理技术还在更新加快。大数据中,结构化占比百分之15左右,其余百分之85都是非结构化数据,他们大量存在于社交网络、互联网和电子商务等领域。

  • 大数据系统架构的特征
  1. 鲁棒性和容错性(Robust and Fault-tolerant)

对于大规模分布式系统中,机器可能存在宕机,但系统需要健壮性,行为正确,即使遇到了机器错误。机器错误和人错误都是存在的,每天都难以避免。

  1. 低延迟读取和更新能力

有的需要毫秒的更新能力,有的允许几个小时的延迟更新,只要有低延迟需求,系统应该保证鲁棒性。

  1. 横向扩展

当负载增大的时候,通常可以通过增加机器数量来横向扩展。

  1. 通用性

要支持绝大多数应用程序,包括金融领域,社交领域和电子商务。

  1. 延展性

有新的需求出现时候,可以把新的功能加入到系统。

  1. 查询能力

用户可以按照自己的需求进行查询,可以产生更高的价值。

  1. 最少维护能力

系统在大多数时候保持平衡,减少系统的维护次数重要途径。

  1. 可调式性

系统在运行中,产生的每一个值,都是可追踪调试的。

  • Lambda架构

Lambda架构主要分为三层,批处理层、加速层和服务层。

  1. 批处理层(Batch Layer):存储数据集,预先计算查询函数,并构建查询对应的view。Batch Layer适合批量处理离线数据。当很多场景需要实时查询的时候,则需要Speed Layer
  2. 加速层(Speed Layer):batch layer处理的是全体数据,speed layer处理的是增量数据。Speed layer接收到数据后会不断更新Real-time view。
  3. 服务层(serving layer):Serving layer用于合并batch view 和real-time view中的结果数据集到最终数据集。

  1. 批处理

批处理有两个核心功能,存储数据集和生成batch View。该层主要负责主数据集,主数据集有以下三个属性:

  1. 数据是原始的
  2. 数据是不可变的
  3. 数据永远真实的

  1. 加速层

它存储实时视图并传入数据流,以便更新这些视图。

他们的区别是什么呢?

  1. speed layer处理数据是增量数据,batch layer是全体数据。
  2. Speed layer为了效率,接受时候更新real Time view,而batch layer是根据全体离线数据直接得到batch view。

分为加速层和批量层的好处有哪些

容错性:当speed layer重新计算后,当前的real-time view就可以丢弃,而batch view也是重新计算的。

复杂性隔离:批量处理离线数据很好掌握,加速层处理增量数据隔离出来。

Scale out:横向扩展,通过增加机器来扩展,而不是增加机器性能scale up。

  1. 服务层

用于响应用户查询,合并batch view和real-time view中的结果集得到最终数据集。

Lambda架构实现?

Hadoop(HDFS)用于存储数据集,Spark(或Storm)构成速度层(Speed Layer),HBase作为服务层,有Hive创建可查询视图。

Hadoop设计成适合运行在通用分布式文件系统(Distributed File System),与目前的分布式系统有很多共同点,HDFS是一个具有高度容错性的系统,能提供吞吐量的访问数据。

Apache Spark专门为大数据设计的快速计算引擎。

HBase-Hadoop database,是一个高可用、高性能、面向列、可伸缩的分布式系统。

Lambda优点:

  1. 容错性好:一旦发生错误,从修复算法或从头计算开始。
  2. 查询灵活度高:批处理可以针对任何数据临时查询。
  3. 易伸缩:所有批处理、加速层和服务层都很容易扩展。
  4. 扩展:添加视图很容易,只需要给主数据添加新函数。

缺点:

  1. 全场景覆盖带来编码开销。
  2. 针对具体场景重新训练一遍益处不大。
  3. 重新部署和迁移成本高。

Lambda架构与其他架构比较:

  1. 事件溯源与lambda架构

整个系统以事件驱动来完成,业务数据是事件产生的视图。

  1. CQRS与lambda架构

CQRS架构分离了对数据进行的读操作和写操作,将其改变数据模型状态命令对于模型状态查询实现了分离。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1217339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解锁

目录 常用锁策略 1.乐观锁 VS 悲观锁 2.轻量级锁 VS 重量级锁 3.自旋锁 VS 挂起等待锁 4.互斥锁 VS 读写锁 5.公平锁 VS 非公平锁 6.可重入锁 VS 可重入锁 CAS ABA问题 Synchronized原理 1. 锁升级/锁膨胀 2.锁消除 3.锁粗化 常用锁策略 1.乐观锁 VS 悲观锁 站在…

【Java实现图书管理系统】

图书管理系统 1. 设计背景2. 设计思路3. 模块展示代码演示3.1 Book类3.2 BookList类(书架类)3.4 用户类 - User类3.5 子类管理员类 -- AdminUser类3.6 子类普通用户类 -- NormalUser类3.7 操作接口3.8 操作类3.8.1 查找操作 -- FindOperation类3.8.2 增加…

PostgreSQL基于Citus实现的分布式集群

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

LCD1602指定位置显示字符串-详细版

本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步! > 发布人:日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

Hive数据表操作--学习笔记

1,Hive数据表操作 1,建表语句和内外部表 ①创建内部表 create [external] table [if not exists] 表名( 字段名 字段类型 [comment 注释], 字段名 字段类型 [comment 注释], ... ) [row format delimited fields terminated by 指定分隔符];&#xff0…

深度学习之基于YoloV5血红细胞检测识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习已经在许多领域中得到了广泛的应用,包括医疗健康领域。其中,YOLO(You O…

App加固中的代码混淆功能,让逆向工程师很头疼

App加固中的代码混淆功能,让逆向工程师很头疼 “我想离开浪浪山。” 在数次尝试破解某个App 时,某个逆向工程师无奈感慨道。 逆向工程师顾名思义就是把一个个完整的软件逆推,还原成一段段代码,方便破解。 比如给他们一个手机Ap…

行内样式、内部样式、外部样式

行内样式: 该元素的所在本行中使用style标记来写样式 内部样式: 在head标签中使用style标记来写样式 外部样式: 在head标签中使用link标记引用外部样式 注意优先级: 行内样式>内部样式>外部样式 代码…

ChatGPT简介及基本概念

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC 👉关于作者 专…

传输层——— UDP协议

文章目录 一.传输层1.再谈端口号2.端口号范围划分3.认识知名端口号4.两个问题5.netstat与iostat6.pidof 二.UDP协议1.UDP协议格式2.UDP协议的特点3.面向数据报4.UDP的缓冲区5.UDP使用注意事项6.基于UDP的应用层协议 一.传输层 在学习HTTP等应用层协议时,为了便于理…

JMeter JDBC请求---操作MySql数据库

准备: 1、MySql的驱动jar包:mysql-connector-java-5.1.28.jar, 2、jmeter安装目录中修改编码格式:\bin\jmeter.properties :sampleresult.default.encodingUTF-8 3、连接数据库的连接地址、用户名、密码以及操作s…

在test用户下创建test1表并插入数据,然后将tes1t表的查询权限授予test2用户

文章目录 1、以 test 用户登录2、创建 test1 表3、插入数据4、查看数据5、授予权限创建用户test2以 test 用户登录并授予权限:使用test2用户登录查询,测试结果 1、以 test 用户登录 首先,您需要以 test 用户登录到数据库 sqlplus test/1232…

RocketMQ 分布式事务消息实战指南:确保数据一致性的关键设计

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

【数据结构】树与二叉树(十七):二叉树的基础操作:删除指定结点及其左右子树(算法DST)

文章目录 5.2.1 二叉树二叉树性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点,其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

【软考篇】中级软件设计师 第四部分(三)

中级软件设计师 第四部分(三) 三十四. 结构化开发方法34.1 内聚34.2 耦合 三十五. 测试基础知识三十六. 面向对象36.1 UML图36.2 设计模式36.3 数据流图 读前须知: 【软考篇】中级软件设计师 学前须知 上一章节: 【软考篇】中级软…

在rt-thread中使用iperf触发断言卡死

问题触发 最近在适配sdio device驱动,CP芯片与AP芯片对接(RK3399),准备使用iperf测试下能否AP与CP能否正常通信。CP芯片跑的是rt-thread系统,在使用sdio_eth_dev_init命令初始化后,使用iperf -c 192.168.1…

Uniapp连接iBeacon设备——实现无线定位与互动体验(理论篇)

目录 前言: 一、什么是iBeacon技术 二、Uniapp连接iBeacon设备的准备工作 硬件设备: 三、Uniapp连接iBeacon设备的实现步骤 创建Uniapp项目: 四、Uniapp连接iBeacon设备的应用场景 室内导航: 五、Uniapp连接iBeacon设备的未来…

MQTT协议详解及在Android上的应用

MQTT协议详解及在Android上的应用 一、MQTT协议简介二、MQTT工作原理三、MQTT协议特点四、MQTT在Android上的应用4.1 准备工作4.2 示例代码 五、结论 本博客将全面介绍MQTT(Message Queuing Telemetry Transport)协议的基本概念、工作原理、特点以及在An…

网工内推 | 国企、上市公司售前,CISP/CISSP认证,最高18K*14薪

01 中电福富信息科技有限公司 招聘岗位:售前工程师(安全) 职责描述: 1、对行业、用户需求、竞争对手等方面提出分析报告,为公司市场方向、产品研发和软件开发提供建议; 2、负责项目售前跟踪、技术支持、需…

01Urllib

1.什么是互联网爬虫? 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解释1:通过一个程序,根据Url(http://www.…