Spark面试重点

这篇具有很好参考价值的文章主要介绍了Spark面试重点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Spark VS Hadoop区别?

Spark面试重点,大数据常见面试题,spark,面试,大数据

2. Hadoop的基于进程的计算和Spark基于线程方式优缺点?

Hadoop中的MR中每个map/reduce task都是一个java进程方式运行,好处在于进程之间是互相独立的,每个task独享进程资源,没有互相干扰,监控方便,但是问题在于task之间不方便共享数据,执行效率比较低。比如多个map task读取不同数据源文件需要将数据源加载到每个map task中,造成重复加载和浪费内存。而基于线程的方式计算是为了数据共享和提高执行效率,Spark采用了线程的最小的执行单位,但缺点是线程之间会有资源竞争

3. Spark四大特点

  • 速度快
  • 易于使用
  • 通用性强
  • 支持多种运行方式

4. Spark的架构角色

Spark面试重点,大数据常见面试题,spark,面试,大数据

5. Spark运行模式

  1. Local模式

    • Local模式可以限制模拟Spark集群环境的线程数量, 即Local[N] 或Local[*]
    • 其中N代表可以使用N个线程,每个线程拥有一个cpu core。如果不指定N,则默认是1个线程(该线程有1个core)。通常Cpu有几个Core,就指定几个线程,最大化利用计算能力。
  2. Standalone模式

    StandAlone 是完整的Spark运行环境,其中:

    • Master角色以Master进程存在, Worker角色以Worker进程存在
    • Driver和Executor运行于Worker进程内, 由Worker提供资源供给它们运行
      Spark面试重点,大数据常见面试题,spark,面试,大数据
  3. SparkOnYarn模式

  • Master角色由YARN的ResourceManager担任
  • Worker角色由YARN的NodeManager担任
  • Driver角色运行在YARN容器内或提交任务的客户端进程中
  • 真正干活的Executor运行在YARN提供的容器内
    Spark面试重点,大数据常见面试题,spark,面试,大数据
    【注】Spark On YARN是有两种运行模式的,一种是Cluster模式一种是Client模式
    Cluster模式即:Driver运行在YARN容器内部, 和ApplicationMaster在同一个容器内
    Client模式即:Driver运行在客户端进程中, 比如Driver运行在spark-submit程序的进程中

6. Job\State\Task的关系?

一个Spark程序会被分成多个子任务(Job)运行, 每一个Job会分成多个State(阶段)来
运行, 每一个State内会分出来多个Task(线程)来执行具体任务

7. Python On Spark 执行原理

PySpark宗旨是在不破坏Spark已有的运行时架构,在Spark架构外层包装一层Python API,借助Py4j实现Python和Java的交互,进而实现通过Python编写Spark应用程序,其运行时架构如下图所示。
Spark面试重点,大数据常见面试题,spark,面试,大数据

8. RDD

8.1 什么是RDD?

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。

Resilient:RDD中的数据可以存储在内存中或者磁盘中

8.2 RDD的特性

  • RDD是有分区的,RDD的分区是RDD数据存储的最小单位
  • RDD的方法会作用在其所有的分区上
  • RDD之间是有依赖关系(RDD有血缘关系)

9. RDD算子

9.1 算子是什么?

分布式对象的API,叫做算子

9.2 算子分类

  1. Transformation:转换算子
    定义:RDD的算子,返回值仍旧是一个RDD的,称之为转换算子
    特性:这类算子是lazy 懒加载的。如果没有action算子,Transformation算子是不工作的

  2. Action:行动算子

    定义:返回值不是rdd的就是action算子
    Spark面试重点,大数据常见面试题,spark,面试,大数据

9.3 Spark 的转换算子 (8 个)

9.4 Spark 的行动算子 (5 个)

10. groupByKey和reduceByKey的区别

Spark面试重点,大数据常见面试题,spark,面试,大数据
groupByKey执行流程:
Spark面试重点,大数据常见面试题,spark,面试,大数据
reduceByKey执行流程:
Spark面试重点,大数据常见面试题,spark,面试,大数据

11. 宽窄依赖

Spark面试重点,大数据常见面试题,spark,面试,大数据

12. Spark是怎么做内存计算的?DAG的作用?Stage阶段划分的作用?

Spark面试重点,大数据常见面试题,spark,面试,大数据
Spark执行流程:
Spark面试重点,大数据常见面试题,spark,面试,大数据

13. Spark为什么比Mapreduce快?

  • Spark算子丰富,Map reduce算子匮乏,Mapreduce很难处理复杂的任务,要想解决复杂的任务,需要写多个MapReduce程序进行串联,多个MR串联通过磁盘交互数据
  • Spark可以执行内存迭代,算子之间形成DAG并基于依赖划分阶段后,在阶段内形成内存迭代管道。但是MapReduce的Map和Reduce之间的交互依旧是通过磁盘来交互的

14. Spark Shuffle

DAG中的宽依赖就是Spark中的Shuffle过程
Spark面试重点,大数据常见面试题,spark,面试,大数据文章来源地址https://www.toymoban.com/news/detail-846810.html

到了这里,关于Spark面试重点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java面试常问,zookeeper常见面试题

    什么是 Spring Boot? 为什么要用 Spring Boot? Spring Boot 的核心配置文件有哪几个?它们的区别是什么? Spring Boot 的配置文件有哪几种格式?它们有什么区别? Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的? 开启 Spring Boot 特性有哪几种方式? Spring Boot 需要独立的容器

    2024年03月15日
    浏览(63)
  • 程序员面试系列,docker常见面试题

    原文链接 什么是Docker?它的主要作用是什么? Docker和虚拟机之间有什么区别? Docker的主要组件有哪些? Docker镜像和容器的区别是什么? 如何构建Docker镜像?请简要描述构建过程。 如何创建和启动一个Docker容器? 如何在Docker容器内运行后台任务? Docker的网络模式有哪些?

    2024年02月15日
    浏览(43)
  • 程序员面试系列,kafka常见面试题

    原文链接 Kafka是什么?它的主要作用是什么? 什么是Kafka的主题(Topic)和分区(Partition)? Kafka中的消息是如何被生产者发送和消费者接收的? Kafka中的分区有什么作用?为什么分区是Kafka的基本并行单位? 什么是Kafka生产者和消费者?如何创建和配置它们? Kafka中的消息保

    2024年02月15日
    浏览(45)
  • Tomcat面试题+http面试题+Nginx面试题+常见面试题

    1、Tomcat的缺省端口是多少?怎么修改? 答:缺省端口是8080,若要修改,可以进入Tomcat的安装目录下找到conf目录下的server.xml文件,找到该文件中的Connector字段中的port。 2、Tomcat有哪几种connector运行模式(服务的请求方式)? 答:三种。修改它的运行模式需要在主配置文件中

    2023年04月10日
    浏览(44)
  • 大数据开发(Spark面试真题-卷一)

    Spark Streaming是 Spark提供用于实时流式数据处理和分析的库 。它 基于离散时间间隔将原始流式数据划分为小的批处理,然后将这些批次数据提供给Spark引擎进行处理 。 Spark Streaming的工作原理如下: 不断从流源接收数据,并将其划分为微批次 。 将每个微批次传递给Spark引擎 。

    2024年03月12日
    浏览(41)
  • 大数据开发(Spark面试真题-卷三)

    Spark的阶段划分是指将一个Spark作业划分为多个阶段(Stage)来执行的过程。每个阶段包含一组相互依赖的任务,并且每个任务可以并行执行。Spark的阶段划分是为了提高作业的执行效率和并行度。 Spark的阶段划分分为两个阶段:转换阶段(Transformation Stage)和动作阶段(Actio

    2024年03月10日
    浏览(81)
  • 大数据面试题:Spark的任务执行流程

    面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)Spark的工作流程?2)Spark的调度流程;3)Spark的任务调度原理;4)Spark的任务提交和执行流程;5)Spark任务调度到yarn上面,流程;6)Spark job提交过程讲一下?7)Spark On YARN流程,Client与

    2024年02月12日
    浏览(43)
  • 程序员面试系列,k8s常见面试题

    原文链接 Kubernetes(通常简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌开发,并于2014年捐赠给了云原生计算基金会(CNCF)。Kubernetes 提供了一个强大的容器化应用程序管理系统,使开发人员和运维团队能够更轻松地构建

    2024年02月06日
    浏览(46)
  • 大数据面试题:Spark和Flink的区别

    面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)Spark Streaming和Flink的区别 问过的一些公司:杰创智能科技(2022.11),阿里蚂蚁(2022.11),阿里云(2022.10)(2019.03),携程(2022.10),银联(2022.10),顺丰(2022.09)(2022.05),贝壳(2022.09),美团(2022.09),字节

    2024年02月08日
    浏览(44)
  • Spark面试题集锦

    1、什么是Apache Spark?Spark是什么? 是基于内存的分布式的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。包含Spark core、Spark sql、Spark streaming 、Spark MLlib 、spark GraphX五个核心组件。 2、Spark的核心组件是什么? Spark Core:是其它组件的基础,spark的内核

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包