spark题目整理

2023-11-03

1、driver的功能是什么?

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

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

2、spark的有几种部署模式,每种模式特点?

1) 本地模式2) standalone 模式3) spark on yarn 模式4) mesos模式

3、Spark为什么比mapreduce快?

1)基于内存计算,减少低效的磁盘交互;2)高效的调度算法,基于DAG;3)容错机制Linage,精华部分就是DAG和Lingae

5、RDD宽依赖和窄依赖?缺陷?

窄依赖就是一个父( 或多个)RDD分区对应一个子RDD分区,如co-partioned join
宽依赖是一个父RDD分区对应(非)全部的子RDD分区,如groupByKey,ruduceByKey
缺陷:1不支持细粒度的写和更新操作,粗粒度写:批量写入数据,但读数据细粒度的 2不支持增量迭代计算,Flink支持。

11、rdd有几种操作类型?算子 

1)transformation,rdd由一种转为另一种rdd 2)action, 3)cronroller,crontroller是控制算子,cache,persist

Transformation和action算子有什么区别?举例说明

Transformation 变换/转换:延迟计算:也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算

Action 行动算子:这类算子会触发 SparkContext 提交 Job 作业。

1,spark的工作机制

用户在客户`端提交作业后,会由Driver运行main方法并创建SparkContext上下文,SparkContext向资源管理器申请资源, 启动Execotor进程, 并通过执行rdd算子,形成DAG有向无环图,输入DAGscheduler, 然后通过DAGscheduler调度器, 将DAG有向无环图按照rdd之间的依赖关系划分为几个阶段,也就是stage, 输入task scheduler, 然后通过任务调度器taskscheduler将stage划分为task set分发到各个节点的executor中执行。

2 你所理解的 Spark 的 shuffle 过程?

Spark shuffle 处于一个宽依赖,可以实现类似混洗的功能,将相同的 Key 分发至同一个 Reducer上进行处理。

3数据倾斜

某一部分的数据显著多于其它部分(木桶效应)。大量不相同的 Key 对应的数据被分配到了同一个 Task 上
1. 调整并行度分散同一个 Task 的不同 Key:
2. 自定义Partitioner:将原本被分配到同一个 Task 的不同 Key 分配到不同 Task
3. 将 Reduce side(侧) Join 转变为 Map side(侧) Join: 通过 Spark 的 Broadcast 机制,将 Reduce 侧 Join 转化为 Map 侧 Join,避免 Shuffle 从而完全消除 Shuffle 带来的数据倾斜。可以看到 RDD2 被加载到内存中了。
4. 为 skew 的 key 增加随机前/后缀 ;5. 大表随机添加 N 种随机前缀,小表扩大 N 倍

4 Spark有哪些聚合类的算子,我们应该尽量避免什么类型的算子?

在我们的开发过程中,能避免则尽可能避免使用 reduceByKey、join、distinct、repartition 等会进行 shuffle 的算子,尽量使用 map 类的非 shuffle 算子。这样的话,没有 shuffle 操作或者仅有较少 shuffle 操作的 Spark 作业,可以大大减少性能开销。

6 Spark为什么快,Spark SQL 一定比 Hive 快吗

Spark SQL 比 Hadoop Hive 快,是有一定条件的,而且不是 Spark SQL 的引擎比 Hive 的引擎快,相反,Hive 的 HQL 引擎还比 Spark SQL 的引擎更快。其实,关键还是在于 Spark 本身快。

消除了冗余的 HDFS 读写: 读写 IO 时间
消除了冗余的 MapReduce 阶段: Hadoop 的 shuffle 操作一定连着完整的 MapReduce 操作,冗余繁琐。而 Spark 基于 RDD 提供了丰富的算子操作,且 reduce 操作产生 shuffle 数据,可以缓存在内存中。
JVM 的优化: 启动一次 JVM

Spark streamning工作流程是怎么样的,和Storm比有什么区别

streamning笔记:https://juejin.im/post/5a40b76a6fb9a045263bd279

Spark 的几个优势

  1. 性能快、内存 ;2、API 3、与Hadoop 兼容 4方便下载安装。shell交互式的学习。 5架构使精力放到计算

其他:https://runzhliu.github.io/posts/

其他参考

https://www.cnblogs.com/feiyudemeng/p/9056772.html(精华)

https://zhuanlan.zhihu.com/p/49169166 (2Spark面试题)

https://blog.csdn.net/zuolixiangfisher/article/details/88973159(常见题目)

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

spark题目整理 的相关文章

随机推荐

  • 申请搜狐自媒体账号

    visualor 申请入驻搜狐公众平台 特此声明
  • 抽象工厂模式和工厂模式的区别?

    简单工厂模式 简单工厂模式不是23种里的一种 简而言之 就是有一个专门生产某个产品的类 比如下图中的鼠标工厂 专业生产鼠标 给参数0 生产戴尔鼠标 给参数1 生产惠普鼠标 工厂模式 工厂模式也就是鼠标工厂是个父类 有生产鼠标这个接口 戴尔鼠
  • HIVE beeline使用shell 批量执行sql语句

    shell脚本如图所示 principal 代表的是认证方式 bin sh Date Author etc profile bash profile sql14 pc insert into table uv daybyday bylimi
  • PHP小皮使用

    PHP小皮基本使用方法 本人新手一枚开始涉猎PHP了 下次有空补个Apache2 4 php7 2的安装教程 小皮使用 官网下载小皮 https www xp cn 选择好对应版本的小皮 本人电脑是windows10 64位的 2 下载好之
  • python知识复习一

    文章目录 前言 一 变量和简单数据类型 1 命名和使用 2 字符串 2 1 修改字符串大小写 2 2 字符串中使用变量 2 3 使用制表符或者换行符添加空白 2 4 删除空白 3 标准数据类型 4 数据类型转变 5 常量 二 数 1 常量
  • sql语句的复习

    sql语句的复习 说来惭愧 写了这么多年代码 sql语句都忘记差不多了 基础 CREATE DATABASE database name drop datebase dbname 备份数据库 mysqldump u 用户名 p 数据库名 g
  • 一步一步理解大模型:模型量化技术3 - GPTQ

    本文介绍专门为生成式预训练模型设计的量化技术GPTQ GPTQ是一种一次性权重量化方法 专为生成预训练Transformer GPT 模型设计 该方法基于近似二阶信息 旨在实现高度准确和高效 关于GPTQ的关键点 GPTQ可以在大约四个GP
  • Redis数据持久化——快照RDB、AOF、主从复制

    redis 本地持久化到硬盘有两种方式 一是快照 snapshotting 二是只追加文件 append only file AOF 快照 快照 顾名思义可以理解为拍照一样 把整个内存数据映射到硬盘中 保存一份到硬盘 因此恢复数据起来比较快
  • STM32输入捕获原理与配置

    目录 一 输入捕获原理 二 输入捕获过程 1 设置输出捕获滤波器 通道1为例 2 设置输入捕获极性 3 设置输入捕获映射通道 4 设置输入捕获分频器 5 捕获到有效信号可以开启中断 6 工作工程 三 输入捕获编程流程 HAL库 四 程序要求
  • 先验概率、后验概率、似然估计、条件概率

    此为Bayesian先生 敬仰吧 同志们 先验 A priori 又译 先天 在拉丁文中指 来自先前的东西 或稍稍引申指 在经验之前 近代西方传统中 认为先验指无需经验或先于经验获得的知识 它通常与后验知识相比较 后验意指 在经验之后 需要
  • JAVA中注解

    注解入门 注解 Annotation 的发展 注解是从JDK5 0开始引入的新技术 注解 Annotation 的作用 不属于程序本身 可以对程序作出解释 这一点跟注释没什么区别 可以被其他程序 如编译器 读取 注解 Annotation
  • mac电脑无法读取移动硬盘

    mac电脑插上硬盘或U盘后不正常断开 会导致读取不到 一 方式1 1 插上硬盘 2 查看硬盘信息 在列表中找到自己的硬盘名称 找到自己的硬盘挂载路径 我的是 dev disk4 diskutil list 3 重新挂载指令 此处我的路径是
  • Java-JDK8下载

    文章目录 一 JDK选择 二 JDK下载 三 JDK安装 四 JDK环境变量配置 五 JDK运行代码测试 六 结尾 一 JDK选择 对于Java开发者而言 选择一个稳定且生态好的开发环境 是最好不过的了 在Java JDK中 JDK8就是相
  • Windows10下安装Mysql

    下载地址 https dev mysql com downloads windows installer 5 7 html 双击安装文件 勾上勾选框 点击Next gt 选择安装类型 这里我选择 Server only 仅安装MySQL数据
  • 激光SLAM入门笔记(三)——传感器数据处理之激光雷达运动畸变去除

    激光雷达运动畸变去除 主要内容 概念介绍 1 激光雷达传感器介绍 两种原理 三角测距 A2 EAI等等 10m内基本为三角测距原理 2 激光雷达数学模型介绍 AMCL采用该模型 3 运动畸变的介绍 相比平移运动 旋转运动 产生的运动畸变比较
  • Response.sendRedirect()

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 用sendRedirect方法实现请求重定向 sendRedirect方法用于生成302响应码和Location响应头 从而通知客户端去重新访问Location响应头中
  • Android中添加CallStack打印

    Android 打印调用堆栈 内核 添加头文件 include
  • [Vue warn]: Failed to mount component: template or render function not defined.解决方案

    命名视图 vue router 里有一个 模式叫做 命名视图 本来一个页面里面只能有一个路由视图 对应 一个组件 现在可以多个路由视图 对应 多个组件 出错点 点击标签之后
  • 关于android:configChanges的属性

    一般在AndroidManifest xml文件中都没有使用到android configChanges keyboardHidden orientation 配置 当然还是很有用的 就是如果配置了这个属性 当我们横竖屏切换的时候会直接调用
  • spark题目整理

    1 driver的功能是什么 1 一个Spark作业运行时包括一个Driver进程 也是作业的主进程 具有main函数和SparkContext的实例 是程序的人口点 2 功能 负责向集群申请资源 向master注册信息 负责了作业的调度