Spark精华问答 | 谈谈spark中的宽窄依赖

640?wx_fmt=png

总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面。


640?wx_fmt=gif1

Q:Spark RDD是什么?


A:RDD是Spark的基本抽象,是一个弹性分布式数据集,代表着不可变的,分区(partition)的集合,能够进行并行计算。也即是说:

它是一系列的分片、比如说128M一片,类似于Hadoop的split;

在每个分片上都有一个函数去执行/迭代/计算它

它也是一系列的依赖,比如RDD1转换为RDD2,RDD2转换为RDD3,那么RDD2依赖于RDD1,RDD3依赖于RDD2。

对于一个Key-Value形式的RDD,可以指定一个partitioner,告诉它如何分片,常用的有hash、range

可选择指定分区最佳计算位置


640?wx_fmt=gif2

Q:RDD的三大Operations


A:Transformation 


从原有的一个RDD进行操作创建一个新的RDD,通常是一个lazy过程,例如map(func) 、filter(func),直到有Action算子执行的时候

Action 

返回给驱动program一个值,或者将计算出来的结果集导出到存储系统中,例如count() reduce(func)

Persist 

将数据存储在内存中,或者存储在硬盘中 

例如:cache() persist() unpersist() 

合理使用persist()和cache()持久化操作能大大提高spark性能,但是其调用是有原则的,必须在transformation或者textFile后面直接调用persist()或cache(),如果先创建的RDD,然后再起一行调用这两个方法,则会报错

640?wx_fmt=gif3

Q:Spark和Hadoop的操作模型区别


A:Hadoop:只提供了Map和Reduce两种操作所有的作业都得转换成Map和Reduce的操作。

Spark:提供很多种的数据集操作类型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多种操作类型,还提供actions操作包括Count,collect, reduce, lookup, save等多种。这些多种多样的数据集操作类型,给开发上层应用的用户提供了方便。


640?wx_fmt=gif4

Q:spark RDD有哪些特性?


A:1.A list of partitions:一个分区列表,RDD中的数据都存储在一个分区列表中

2.A function for computing each split:作用在每一个分区中的函数

3.A list of dependencies on other RDDs:一个RDD依赖于其他多个RDD,这个点很重要,RDD的容错机制就是依据这个特性而来的

4.Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可选的,针对于kv类型的RDD才有这个特性,作用是决定了数据的来源以及数据处理后的去向

5.可选项,数据本地性,数据位置最优

640?wx_fmt=gif5

Q谈谈spark中的宽窄依赖


A:RDD和它的父RDD的关系有两种类型:窄依赖和宽依赖

宽依赖:指的是多个子RDD的Partition会依赖同一个父RDD的Partition,关系是一对多,父RDD的一个分区的数据去到子RDD的不同分区里面,会有shuffle的产生

窄依赖:指的是每一个父RDD的Partition最多被子RDD的一个partition使用,是一对一的,也就是父RDD的一个分区去到了子RDD的一个分区中,这个过程没有shuffle产生

区分的标准就是看父RDD的一个分区的数据的流向,要是流向一个partition的话就是窄依赖,否则就是宽依赖

640?wx_fmt=png

小伙伴们冲鸭,后台留言区等着你!

关于Spark,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 屡试不爽的互联网架构三大马车!

  • 抖音微博等短视频千万级高可用、高并发架构如何设计?

  • 20大5G关键技术

  • Fast.ai:从零开始学深度学习 | 资源帖

  • 10个简单小窍门带你提高Python数据分析速度(附代码)

  • 程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!

  • 暗网竟成比特币最大用户? 上半年5.15亿美元被用于非法活动


真香,朕在看了!

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

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

相关文章

阿里云产品头条(2017年12月刊)

摘要: 一、新产品发布1、云防火墙 商业化 发布云防火墙是一款云环境下的防火墙产品,首创了基于业务可视的结果,实现业务梳理和业务隔离的技术。适用于互联网/通用/游戏/金融/新零售/…

一张图解读阿里云数据管理DMS企业版

摘要: 阿里云数据管理DMS企业版,作为数据管理产品大家族里的新成员,于2017年11月开启公测,今年1月底正式发布商业化版本。 作为业界领先的面向企业的数据库DevOps解决方案,DMS企业版旨在帮助企业安全、高效的使用数据库…

架构设计之「 微服务入门 」

戳蓝字“CSDN云计算”关注我们哦!作者 | 奎哥来源 | 不止思考微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务。一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来…

提升研发效率 保障数据安全——阿里云宣布数据管理DMS企业版正式商业化

摘要: 阿里云数据管理DMS企业版,作为数据管理产品大家族里的新成员,于2017年11月开启公测,今年1月底正式发布商业化版本。 作为业界领先的面向企业的数据库DevOps解决方案,DMS企业版旨在帮助企业安全、高效的使用数据库…

flowable实战(五)flowable驳回/退回上一步/退回到

一、驳回/退回上一步/退回到(历史某一个节点) 我们经常需要工作流中退回上一步,或者退回历史某一个节点。但由于流程的场景是很复杂的,回退有以下一些场景:1.串行路线上的退回:流程中没有任何网关&#xff…

全链路压测一招搞定,阿里云性能测试铂金版发布

摘要: 阿里云性能测试(Performance Testing Service)是卓越的SaaS性能测试平台,具备强大的分布式压测能力,可模拟海量用户的真实业务场景,让所有性能问题无所遁形。近日,PTS宣布推出了基于阿里双…

老司机教你分析日志:分析用户的地理位置信息

摘要: 地理位置的需求 通常我们分析用户的需求,了解到用户当前位置在哪里非常重要,例如,可以根据用户的地理位置,针对性的推广本地广告。 通常,我们可以在客户端获取定位权限来获取GPS信息。但是如果用户关…

java中的switch的规则_细细讲述Java技术开发的那些不为人知的规则

本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。一、在finally方法里关掉input或者output资源方法体里面定义了input或者output流的…

华为,百度豪投,这类程序员要再次上榜了!

前不久百度AI开发者大会,李彦宏高调宣布百度AI技术;同时,AI测试权威软件AI Benchmark的测试数据显示,中国华为研发的7nm旗舰手机芯片麒麟810的AI分数,远远超过美国高通骁龙855了!早前华为就宣布&#xff1a…

flowable实战(六)flowable的意见表和附件表应用

一、act_hi_comment和act_hi_attachment两表表,前者意见表后者是附件表 意见表它里面有一个类型type字段,分别是comment代表意见(这个type可以自定义,例如自定义为:通过/退回/提前终止),缺省提供了comment&#xff0c…

Serverless在游戏、电商行业的一个运用场景示例

摘要: Serverless 是一种架构理念,具有自己的独特的优势和适用场景。本文以使用阿里云函数计算为例,构建一个简单具体的microservice为例,看看这种架构是如何达到快速开发和节约运维成本的。 点此查看原文:http://clic…

SDN精华问答 | SDN的核心技术是什么?

SDN火热了好一阵子,无论运营商、政府企业、投资机构,一段时间,不知道SDN、不能甩几个SDN相关的名词术语,似乎都落后于时代了。今天,就来看看关于SDN的精华问答吧。1Q:SDN的目的是什么? A&#x…

RocksDB 写入流程详解

摘要: 最初的写入流程,继承自 leveldb,多个 写线程组成一个 group, leader 负责 group 的 WAL 及 memtable 的提交,提交完后唤醒所有的 follwer,向上层返回。 支持 allow_concurrent_memtable_write 选项&a…

Greenplum roaring bitmap与业务场景 (类阿里云RDS PG varbitx, 应用于海量用户 实时画像和圈选、透视)

摘要: 标签 PostgreSQL , Greenplum , varbitx , roaring bitmap , pilosa , varbit , hll , 多阶段聚合 背景 roaring bitmap是一个压缩比很高同时性能不错的BIT库,被广泛使用(例如Greenplum, ES, InfluxDB. 点此查看原文 标签 PostgreSQL ,…

容器快速入门完全指南

戳蓝字“CSDN云计算”关注我们哦!作者 | JUSTIN来源 | RancherLabs介 绍容器,以及Docker和Kubernetes之类的容器技术已经日益成为许多开发人员工具包中常见的工具。容器化的核心目标是提供一种更好的方式,以可预测和便于管理的方式在不同的环…

Java错误提示框口怎么使用_如何在Swing中显示错误消息对话框?

以下示例展示了如何在基于swing的应用程序中显示错误消息警告。使用以下API -JOptionPane - 创建标准对话框。JOptionPane.showMessageDialog() - 显示消息警告。JOptionPane.ERROR_MESSAGE - 将警报消息标记为错误。示例package com.yiibai.swingdemo;import java.awt.BorderL…

PostgreSQL Oracle 兼容性之 - rownum

摘要: 标签 PostgreSQL , rownum , Oracle 兼容性 , row_number 窗口 , limit , PPAS , EDB 背景 Oracle ROWNUM是一个虚拟列,每输出一行递增1。 点此查看原文:https://yq.aliyun.com/articles/405183?spma2c4e.11153959.teamhomeleft.24.8W…

PostgreSQL 查询涉及分区表过多导致的性能问题 - 性能诊断与优化(大量BIND, spin lock, SLEEP进程)

摘要: 标签 PostgreSQL , 分区表 , bind , spin lock , 性能分析 , sleep 进程 , CPU空转 , cache 背景 实际上我写过很多文档,关于分区表的优化: 《PostgreSQL 商用版本EPAS(阿里云ppas) - 分区表性能优化 (堪比pg_pathman)》 《PostgreSQL …

flowable实战(九)flowable数据库表中流程实例、活动实例、任务实例三者之间关系分析

场景模拟(请假流程): 员工申请请假 部门领导审批 人事审批 员工销假 本文用次例介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的。 在线演示实例:http://aws.kafeitu.me:8080/kft…

看懂云计算、虚拟化和容器,这一篇就够啦!

戳蓝字“CSDN云计算”关注我们哦!作者 | 小枣君来源 | 鲜枣课堂“云计算”这个词,相信大家都非常熟悉。作为信息科技发展的主流趋势,它频繁地出现在我们的眼前。伴随它一起出现的,还有这些概念名词——OpenStack、Hypervisor、KVM…