大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day18】——Spark5

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day18】——Spark5

停🤚
不要往下滑了,
默默想5min,
看看这5道面试题你都会吗?

面试题 01、Spark on Mesos中,什么是的粗粒度分配,什么是细粒度分配,各自的优点和缺点是什么?
面试题02、driver的功能是什么?
面试题 03、Spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?
面试题04、Spark中Worker的主要工作是什么?
面试题05、Mapreduce和Spark的都是并行计算,那么他们有什么相同和区别?

以下答案仅供参考:

面试题 01、Spark on Mesos中,什么是的粗粒度分配,什么是细粒度分配,各自的优点和缺点是什么?

1)粗粒度:启动时就分配好资源, 程序启动,后续具体使用就使用分配好的资源,不需要再分配资源;优点:作业特别多时,资源复用率高,适合粗粒度;缺点:容易资源浪费,假如一个job有1000个task,完成了999个,还有一个没完成,那么使用粗粒度,999个资源就会闲置在那里,资源浪费。

2)细粒度分配:用资源的时候分配,用完了就立即回收资源,启动会麻烦一点,启动一次分配一次,会比较麻烦。

面试题02、driver的功能是什么?

1)一个Spark作业运行时包括一个Driver进程,也是作业的主进程,具有main函数,并且有SparkContext的实例,是程序的入口点;

2)功能:负责向集群申请资源,向master注册信息,负责了作业的调度,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler, TaskScheduler。

面试题03、Spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?

可以画一个这样的技术栈图先,然后分别解释下每个组件的功能和场景

1)Spark core:是其它组件的基础,spark的内核,主要包含:有向循环图、RDD、Lingage、Cache、broadcast等,并封装了底层通讯框架, 是Spark的基础。

2)SparkStreaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如Kafka、Flume、Twitter、Zero和TCP 套接字) 进行类似Map、Reduce和Join等复杂操作,将流式计算分解成一系列短小的批处理作业。 3)Spark sql:Shark是SparkSQL的前身,Spark SQL的一个重要特点是其能够统一处理关系表和RDD,使得开发人员可以轻松地使用SQL命令进行外部查询, 同时进行更复杂的数据分析。

4)BlinkDB :是一个用于在海量数据上运行交互式 SQL 查询的大规模并行查询引擎,它允许用户通过权衡数据精度来提升查询响应时间,其数据的精度 被控制在允许的误差范围内。

5)MLBase是Spark生态圈的一部分专注于机器学习,让机器学习的门槛更低,让一些可能并不了解机器学习的用户也能方便地使用MLbase。MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。

6)GraphX是Spark中用于图和图并行计算。huffle操作或者仅有较少shuffle操作的Spark作业,可以大大减少性能开销。

面试题04、Spark中Worker的主要工作是什么?

主要功能:管理当前节点内存,CPU的使用状况,接收master分配过来的资源指令,通过ExecutorRunner启动程序分配任务,worker就类似于包工头, 管理分配新进程,做计算的服务,相当于process服务。

需要注意的是:

1)worker会不会汇报当前信息给master,worker心跳给master主要只有workid,它不会发送资源信息以心跳的方式给mater,master分配的时候就知道work, 只有出现故障的时候才会发送资源。

2)worker不会运行代码,具体运行的是Executor是可以运行具体appliaction写的业务逻辑代码,操作代码的节点,它不会运行程序的代码的。

面试题05、Mapreduce和Spark的都是并行计算,那么他们有什么相同和区别?

两者都是用mr模型来进行并行计算:

1)hadoop的一个作业称为job,job里面分为map task和reduce task,每个task都是在自己的进程中运行的,当task结束时,进程也会结束。

2)spark用户提交的任务成为application,一个application对应一个SparkContext,app中存在多个job,每触发一次action操作就会产生一个job。 这些job可以并行或串行执行,每个job中有多个stage,stage是shuffle过程中DAGSchaduler通过RDD之间的依赖关系划分job而来的,每个stage里面有多个task, 组成taskset有TaskSchaduler分发到各个executor中执行,executor的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存 进行计算。

3)hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系。

4)spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如join,groupby等,而且通过DAG图可以实现良好的容错。

总结

今天我们复习了面试中常考的Spark相关的五个问题,你做到心中有数了么?

其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在面试期间尴尬!平时不流汗,面试多流泪!

对了,如果你的朋友也在准备面试,请将这个系列扔给他,

好了,今天就到这里,学废了的同学,记得在评论区留言:打卡。给同学们以激励。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
7月前
|
存储 NoSQL 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day07】——Hbase1
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day07】——Hbase1
71 0
|
7月前
|
存储 NoSQL 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day08】——Hbase2
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day08】——Hbase2
60 0
|
7月前
|
消息中间件 大数据 Kafka
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day13】——Hbase7
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day13】——Hbase7
62 0
|
7月前
|
SQL 机器学习/深度学习 分布式计算
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day17】——Spark4
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day17】——Spark4
82 0
|
7月前
|
消息中间件 分布式计算 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day16】——Spark3
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day16】——Spark3
62 1
|
7月前
|
资源调度 大数据 Java
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day21】——Spark8
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day21】——Spark8
67 1
|
7月前
|
存储 缓存 分布式计算
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day19】——Spark6
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day19】——Spark6
54 0
|
7月前
|
存储 分布式计算 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day25】——Spark12
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day25】——Spark12
68 0
|
7月前
|
分布式计算 资源调度 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day14】——Spark1
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day14】——Spark1
80 0
|
7月前
|
分布式计算 大数据 Java
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day24】——Spark11
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day24】——Spark11
60 0
下一篇
DataWorks