大数据三道习题

2023-11-18

Lambda 架构设计图

Lambda体系架构的优点

  • 鲁棒性和容错能力。由于批处理层被设计为追加式,即包含了自开始以来的整体数据集,因此该系统具有一定的容错能力。如果任何数据被损坏,该架构则可以删除从损坏点以来的所有数据,并替换为正确的数据。同时,批处理视图也可以被换成完全被重新计算出的视图。而且速度层可以被丢弃。此外,在生成一组新的批处理视图的同时,该架构可以重置整个系统,使之重新运行。

  • 可扩展性。Lambda体系架构的设计层是作为分布式系统被构建的。因此,通过简单地添加更多的主机,最终用户可以轻松地对系统进行水平扩展。

  • 通用性。由于Lambda体系架构是一般范式,因此用户并不会被锁定在计算批处理视图的某个特定方式中。而且批处理视图和速度层的计算,可以被设计为满足某个数据系统的特定需求。

  • 延展性。随着新的数据类型被导入,数据系统也会产生新的视图。数据系统不会被锁定在某类、或一定数量的批处理视图中。新的视图会在完成编码之后,被添加到系统中,其对应的资源也会得到轻松地延展。

  • 按需查询。如有必要,批处理层可以在缺少批处理视图时,支持临时查询。如果用户可以接受临时查询的高延迟,那么批处理层的用途就不仅限于生成的批处理视图了。

  • 最少的维护。Lambda架构的典型模式是:批处理层使用Apache Hadoop,而服务层使用ElephantDB。显然,两者都很容易被维护。

  • 可调试性。Lambda体系架构通过每一层的输入和输出,极大地简化了计算和查询的调试。

  • 低延迟的读取和更新。在Lambda体系架构中,速度层为大数据系统提供了对于最新数据集的实时查询。

Lambda体系架构的缺点

  • 由于所有数据都是被追加进来,并且批处理层中的任何数据都不会被丢弃,因此系统的扩展成本必然会随着时间的推移而增长。

  • 如前文所述,批处理层可使用Hadoop或Snowflake,而速度层则可以使用Storm或Spark。显然,这两层虽然运行同一组数据,但是它们是在完全不同的系统上构建的。因此,用户需要维护两套相互独立的系统代码。这样不但复杂,而且极具一定的挑战性。

简述HDFS读过程

(1) client访问NameNode,查询元数据信息,获得这个文件的数据块位置列表,返回输入流对象。

(2) 就近挑选一台datanode服务器,请求建立输入流 。

(3) DataNode向输入流中中写数据,以packet为单位来校验。

(4) 关闭输入流

简述HDFS写过程

(1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。

(2)NameNode返回是否可以上传,若通过检查,直接先将操作写入 EditLog,并返回输出流对象。(注:WAL,write ahead log,先写Log,再写内存,因为EditLog记录的是最新的HDFS客户端执行所有的写操作。如果后续真实写操作失败了,由于在真实写操作之前,操作就被写入EditLog中了,故EditLog中仍会有记录,我们不用担心后续client读不到相应的数据块,因为在第6步中DataNode收到块后会有一返回确认信息,若没写成功,发送端没收到确认信息,会一直重试,直到成功)

(3)客户端请求第一个 Block上传到哪几个DataNode服务器上,client端按每个Block128MB的块切分文件。

(4)client将NameNode返回的分配的可写的DataNode列表Data数据一同发送给最近的第一个DataNode节点,此后client端和NameNode分配的多个DataNode构成pipeline管道(NameNode返回3个DataNode节点,分别为dn1、dn2、dn3),client端向输出流对象中写数据。

(5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。

(6)dn1、dn2、dn3逐级应答客户端。

(7)客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。

(8)写完数据,关闭输输出流,发送完成信号给NameNode。

(注:发送完成信号的时机取决于集群是强一致性还是最终一致性,强一致性则需要所有

DataNode写完后才向NameNode汇报。最终一致性则其中任意一个DataNode写完后就能单独向

NameNode汇报,HDFS一般情况下都是强调强一致性)

参考文档:HDFS读写流程(史上最精炼详细)_little prince,blue coder-CSDN博客_hdfs的读写流程

Lambda架构概览:工作原理、优缺点和适用场景

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据三道习题 的相关文章

  • 如何读取 RCFile

    我正在尝试将一个小的 RCFile 约 200 行数据 读入 HashMap 中以进行 Map Side 连接 但是在将文件中的数据变为可用状态时遇到了很多麻烦 这是我到目前为止所拥有的 其中大部分来自这个例子 http sumit1001
  • Hive 分区表上的 Spark 行为

    我用的是 Spark 2 实际上我不是执行查询的人 所以我不能包含查询计划 数据科学团队问过我这个问题 我们将 Hive 表划分为 2000 个分区并以 parquet 格式存储 当在 Spark 中使用相应的表时 执行器之间恰好执行了 2
  • 使用 Hive 自定义输入格式

    Update 好吧 事实证明以下不起作用的原因是因为我使用的是较新版本的InputFormat API import org apache hadoop mapred这是旧的与import org apache hadoop mapredu
  • 是否可以使用 impala 查询包含 DATE 类型列的 Hive 表?

    每次我尝试在 IMPALA 中从 HIVE 中创建的表中选择 DATE 类型字段时 都会收到 AnalysisException Unsupported type DATE 有什么解决方法吗 UPDATE这是从 hive 创建表模式和 im
  • HIVE:GROUP BY 的行为与 MySQL 中不同

    我对 MySQL 有一些经验 最近我必须在 HIVE 上做一些工作 两者之间的查询基本结构非常相似 但是 HIVE 中的 GROUP BY 的工作方式似乎有点不同 因此我无法实现以前在 MySQL 中使用 GROUP BY 可以实现的目标
  • Hive - 通过聚合跨组的值来创建映射列类型

    我有一个看起来像这样的表 customer category room date 1 A aa d1 1 A bb d2 1 B cc d3 1 C aa d1 1 C bb d2 2 A aa d3 2 A bb d4 2 C bb d4
  • 远程执行hadoop作业时出现异常

    我正在尝试在远程 hadoop 集群上执行 Hadoop 作业 下面是我的代码 Configuration conf new Configuration conf set fs default name hdfs server 9000 c
  • 将多个前缀行过滤器设置为扫描仪 hbase java

    我想创建一台扫描仪 它可以为我提供带有 2 个前缀过滤器的结果例如 我想要其键以字符串 x 开头或以字符串 y 开头的所有行 目前我知道只能使用一个前缀 方法如下 scan setRowPrefixFilter prefixFiltet 在
  • 连接到 Hive 时使用 Spark 进行 Kinit

    我正在尝试从独立的 Spark 连接到 Hive hadoop 集群具有 kerberos 身份验证 有人可以让我知道如何在 Spark 程序中执行 kinit 我可以连接到配置单元吗 更新 我的 Spark 与 Hadoop 位于不同的集
  • Hive ParseException - 无法识别“结束”“字符串”附近的输入

    尝试从现有 DynamoDB 表创建 Hive 表时出现以下错误 NoViableAltException 88 at org apache hadoop hive ql parse HiveParser IdentifiersParser
  • Hive查询快速查找表大小(行数)

    是否有 Hive 查询可以快速查找表大小 即行数 而无需启动耗时的 MapReduce 作业 这就是为什么我想避免COUNT I tried DESCRIBE EXTENDED 但这产生了numRows 0这显然是不正确的 对新手问题表示歉
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • Spark scala - 按数组列分组[重复]

    这个问题在这里已经有答案了 我对 Spark Scala 很陌生 感谢你的帮助 我有一个数据框 val df Seq a a1 Array x1 x2 a b1 Array x1 a c1 Array x2 c c3 Array x2 a
  • 计算行的排名

    我想根据一个字段对用户 ID 进行排名 对于相同的字段值 排名应该相同 该数据位于 Hive 表中 e g user value a 5 b 10 c 5 d 6 Rank a 1 c 1 d 3 b 4 我怎样才能做到这一点 可以使用ra
  • 通过 hive 访问 maxmind 的 GeoIP-country.mmdb 数据库时出现异常

    我有一个自定义 Hive UDF 来访问 MaxmindGeoIP 国家 mmdb通过 add file pqr mmdb 添加到 Hive 资源的数据库 编译好的 UDF 添加为 add jar abc jar 当我运行 hive 查询时
  • 如何将Hive数据表迁移到MySql?

    我想知道如何将日期从 Hive 转移到 MySQL 我看过有关如何将 Hive 数据移动到 Amazon DynamoDB 的示例 但没有看到有关如何将 Hive 数据移动到 MySQL 等 RDBMS 的示例 这是我在 DynamoDB
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • 在 HIVE 中,使用 COALESCE 将 Null 值替换为相同的列值

    我想用同一列中的值替换特定列的空值我想得到结果 我在下面尝试过 select d day COALESCE val LAST VALUE val TRUE OVER ORDER BY d day ROWS BETWEEN UNBOUNDED
  • 如何在蜂巢中的每个组中按计数 desc 进行排序?

    这是 HQL select A B count as cnt from test table group by A B order by cnt desc 示例输出如下 a1 b1 5 a2 b1 3 a1 b2 2 a2 b2 1 但我想
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current

随机推荐

  • 测试触控延时的软件,重点测试:触控屏响应时间_笔记本评测-中关村在线

    重点测试 触控屏响应时间 触控型笔记本除了有一块触控屏外 传感器及控制IC部分是十分重要的 整套电路设计优劣会直接会影响到触控的响应时间 下面就来进行实际测试 为了这个环节我们特意找到了一套专业的滑轨设备 精准性是本次测试的重点指标 由于滑
  • JavaBean与XML相互转换

    一 JavaBean注解 1 XmlRootElement 类级别注解 name属性用于指定生成元素的名字 若不指定 默认使用类名小写作为元素名 XmlRootElement name mystudent XmlRootElement pu
  • Nginx的X-Accel-Redirect实现大文件下载

    一 文件下载的几种方式 1 直接给出下载地址 使用静态文件服务器nginx下载 任何人都可以下载 无法控制用户的权限 2 后端流式读取文件内容 设置header后疯狂输出 django文档中提到 可以向HttpResponse传递一个迭代器
  • 蓝桥杯算法训练VIP-传球游戏

    题目 题目链接 题解 动态规划 这个题不能用DFS 用DFS的小朋友趁早放弃 输入数据为30 30时 输出为155117522 这就意味着要是dfs的话 需要搜到底155117522次 光遍历这么多次都会超时更别说深搜了 所以只能动归 也算
  • SpringMVC注解

    注解大全 请求注解 名称 类型 位置 作用 注意点 RequestMapping save 方法注解 SpringMVC控制器方法定义上方 设置当前控制器方法请求访问路径 如果设置在类上统一设置当前控制器方法请求访问路径前缀 路径不能重复
  • cmake脚本中的list

    代码 cmake minimum required VERSION 2 8 set mylist a list APPEND mylist b c MESSAGE mylist MESSAGE mylist foreach componen
  • 适用于 Windows 11/1 0电脑的 8 款最佳免费数据恢复软件

    在这个数字办公时代 我们总是在电脑前工作 处理海量数据 存储重要文件 然而 系统崩溃 病毒攻击或人为错误都会导致极度绝望的数据丢失 此时 专业的数据备份和恢复工具就是不幸者的救命稻草 因此 这篇文章将向您介绍适用于Windows 11 10
  • sqlloader的使用------Linux版

    其实Linux中sqlloader的操作和在windows中的操作是一样的 下面我再为大家详细地讲解一下 一 注意事项 首先要注意下面的情形 我是在虚拟机中运行的Linux系统 关于在Linux系统中root用户下多次执行sqlldr 都是
  • LSP协议被劫持导致不能上网

    故障现象 最近有同事电脑浏览器打不开网页 DNS没问题 外网地址可以PING通 本地连接显示正常 登陆QQ显示网络连接超时 打开浏览器不能显示网页 网络丢包率达到了100 本地连接数据包收到为0 查杀木马 病毒也不能解决问题 原因分析 Wi
  • 接1.1 Python语言概述

    1 1 3 Python2和Python3 初学Python的读者 在打开Python官方网站 https www python org 下载Python时 总会看到有两个可供下载的版本 python2 7和Python3 X 从版本号上来
  • Django拼接queryset

    querysets one queryset two queryset
  • _MSC_VER

    MSC VER是微软的预编译控制 MSC VER可以分解为 MS Microsoft的简写 C C编译器 VER Version的简写 MSC VER的意思就是 Microsoft的C编译器的版本 微软不同时期 编译器有不同的版本 MS V
  • upload-labs靶场-Pass-02关-思路以及过程

    开始前的小准备 upload labs靶场 是PHP环境运行的 所以我准备了一个PHP脚本和一张图片 图片好准备 PHP脚本如果不想写的话可以用我的这个获取当前时间的PHP脚本 图片默认不清楚放大看 Pass 02需要了解的信息 点击提示可
  • print() java_java的print,printf,println以及输入

    java中有三种方式向控制台输入信息 分别是print printf println 现在简单介绍一下他们之间的异同 printf主要是继承了C语言的printf的一些特性 可以进行格式化输出 print就是一般的标准输出 但是不换行 pr
  • 自动化携程酒店爬虫

    一 查看chrome版本 浏览器 chrome version 二 下载传送门 url http chromedriver storage googleapis com index html 根据自己的版本进行下载 放入C Program
  • Linux 下Qt应用程序打包发布方法

    1 首先选择Qt中的 Release 模式 然后点击Run 在Qt工作空间生成相应的 build 项目名称 Desktop 4bec8a Release文件夹 2 将Qt的打包脚本 deployqtapp sh 放在build 项目名称 D
  • Window XP驱动开发(十七) 芯片固件程序设计 (代码实现,针对USB2.0 芯片CY7C68013A)

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家拍砖 在我的文章 lt lt http blog csdn net chenyujing1234 article details 7604266
  • 武汉工程大学计算机科学与工程学院调剂公告,武汉工程大学计算机科学与工程学院2017年考研复试安排...

    武汉工程大学计算机科学与工程学院2017年考研复试安排本站小编 免费考研网 2017 07 23 武汉工程大学计算机科学与工程学院 以下简称 本院 2017年硕士研究生复试工作将于2017年3月18日 2017年3月20日进行 具体安排如下
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 大数据三道习题

    Lambda 架构设计图 Lambda体系架构的优点 鲁棒性和容错能力 由于批处理层被设计为追加式 即包含了自开始以来的整体数据集 因此该系统具有一定的容错能力 如果任何数据被损坏 该架构则可以删除从损坏点以来的所有数据 并替换为正确的数据