面试篇spark(spark core,spark sql,spark 优化)

一:为什么学习spark?

相比较map-reduce框架,spark的框架执行效率更加高效。
mapreduce的执行框架示意图。
在这里插入图片描述
spark执行框架示意图
在这里插入图片描述
spark的执行中间结果是存储在内存当中的,而hdfs的执行中间结果是存储在hdfs中的。所以在运算的时候,spark的执行效率是reduce的3-5倍。

二:spark是什么?

spark是一个执行引擎。

三:spark包含哪些内容?

1. spark core。

spark RDD五大特性。

1. RDD是由一系列partition组成的。

每个rdd中,partition的个数和由hdfs中的map的个数决定的。和map的个数保持一致。

2. 每个RDD会提供最佳的计算位置。

3. 每个函数会作用在每个partition上。

算子
  1. 转换算子
    常见 Transformation 类算子
    filter :过滤符合条件的记录数, true 保留, false 过滤掉。
    map :将一个 RDD 中的每个数据项,通过 map 中的函数映射变为一个新的元素。特点:输入
    一条,输出一条数据。
    flatMap :先 map 后 flat 。与 map 类似,每个输入项可以映射为0到多个输出项。
    sample 随机抽样算子,根据传进去的小数按比例进行有放回或者无放回的抽样。
    reduceByKey 将相同的 Key 根据相应的逻辑进行处理。
    sortByKey / sortBy 作用在 K,V格式的RDD 上,对 key 进行升序或者降序排序。
  2. 行动算子
    count :返回数据集中的元素数。会在结果计算完成后回收到 Driver 端。
    take(n) :返回一个包含数据集前 n 个元素的集合。
    first :效果等同于 take(1) ,返回数据集中的第一个元素。
    foreach :循环遍历数据集中的每个元素,运行相应的逻辑。
    collect :将计算结果回收到 Driver 端
  3. 持久化算子
    cache:默认将 RDD 的数据持久化到内存中。 cache 是懒执行。
    checkpoint:checkpoint 将 RDD 持久化到磁盘,还可以切断 RDD 之间的依赖关系,也是懒执行。

4. RDD之间相互依赖。

RDD的宽窄依赖。
一对一的就是窄依赖。
一对多的就是宽依赖。
在计算进行切割的时候,会将所有的窄依赖放在一起,成为一个stage。放在一个TaskScheduler中进行计算。
在这里插入图片描述

5. 分区器是作用在 (K,V) 格式的 RDD 上。

shuffle
HashShuffle
在这里插入图片描述

SortShuffle
在这里插入图片描述
在这里插入图片描述
bypass机制

shuffle map task的数量小于spark.shuffle.sort.bypassMergeThreshold参数的值(默认200)或者不是聚合类的shuffle算子(比如groupByKey)

在这里插入图片描述
Shuffle文件寻址
在这里插入图片描述

2. spark的俩种提交模式。

用于测试
在这里插入图片描述
用于生产
在这里插入图片描述

在这里插入图片描述

2. spark sql。

  1. RDD和dataFromes和dataset。
    dataset包含dataFormes,dataFormes包含RDD。
  2. Spark on hive 和hive on spark
    Spark on hive 中,hive是存储,spark负责sql的优化和解析。
    hive on Spark中,Hive即作为存储又负责sql的解析优化,Spark负责执行。

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

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

相关文章

基于通义千问和向量数据构建问答知识库

参考:Java从0到1构建基于ChatGPT向量数据库的检索增强生成模型RAG-02 - 知乎 (zhihu.com) 1、先开通 阿里云的向量检索服务 如何开通向量检索服务并创建API-KEY_向量检索服务-阿里云帮助中心 (aliyun.com) 按流程申请 最后需要申请API-KEY 安装DashVector SDK M…

Nacos2.x配置中心源码分析

概述 源码注释参考 git 仓库,对应流程图后续补充; 启动 nacos nacos 启动类: // com.alibaba.nacos.NacosSpringBootApplication(scanBasePackages "com.alibaba.nacos") ServletComponentScan EnableScheduling public class…

关于安科瑞AAFD-40型故障电弧探测器的功能介绍-安科瑞 蒋静

1 概述 故障电弧探测器(以下简称探测器)对接入线路中的故障电弧(包括故障并联电弧、故障串联电弧)进行有效的检测,当检测到线路中存在引起火灾的故障电弧时,可以进行现场的声光报警,并将报警信…

单片机实验(三)

前言 实验一:利用定时器T1的中断控制P1.7引脚输出音频信号,启动蜂鸣器发出一段熟悉的与众不同的具有10个音节的音乐音频。 实验二:使用定时器/计数器来实现一个LCD显示年、月、日、星期 、时、分、秒的电子表,要求时和分可以方便…

Vmware17虚拟机安装windows10系统

不要去什么系统之家之类的下载镜像,会不好安装,镜像被魔改过了,适合真实物理机上的系统在PE里安装系统,建议下载原版系统ISO文件 安装vmware17pro 下载地址https://dwangshuo.jb51.net/202211/tools/VMwareplayer17_855676.rar 解…

04.PostgreSQL是如何实现隔离级别的?

PostgreSQL是如何实现隔离级别的? 事务有哪些特性? 事务看起来感觉简单,但是要实现事务必须要遵守 4 个特性,分别如下: 原子性(Atomicity):一个事务中的所有操作,要么…

Elasticsearch(ES)概述

文章目录 一.什么是Elasticsearch?1.正向索引和倒排索引2.Mysql和ES的概念对比3.安装elasticsearch、kibana 二.IK分词器三.索引库操作四.文档操作五.RestClient操作索引库1.初始化RestClient2.创建索引库3.删除索引库4.判断索引库是否存在 六.RestClient操作文档1.新增文档2.…

Elasticsearch 优化查询中获取字段内容的方式,性能提升5倍!

1、背景 集群配置为:8 个 node 节点,16 核 32G,索引 4 分片 1 副本。应用程序的查询逻辑是按经纬度排序后找前 200 条文档。 1、应用对查询要求比较高,search 没有慢查询的状态。 2、集群压测性能不能上去,cpu 使用未打…

Nat. Rev. Chem. | 一份关于用机器学习研究化学问题的评估指导

今天为大家介绍的是来自Tiago Rodrigues团队的一篇论文。机器学习(ML)有望解决化学领域的重大挑战。尽管ML工作流程的适用性极广,但人们通常发现评估研究设计多种多样。目前评估技术和指标的异质性导致难以(或不可能)比…

java设计模式学习之【单例模式】

文章目录 引言单例模式简介定义与用途实现方式:饿汉式懒汉式 UML 使用场景优势与劣势单例模式在spring中的应用饿汉式实现懒汉式实现数据库连接示例代码地址 引言 单例模式是一种常用的设计模式,用于确保在一个程序中一个类只有一个实例,并且…

计算机组成学习-数据的表示和运算总结

1、进制与编码 1.1 进位计数法 常用的进位计数法有十进制、二进制、八进制、十六进制等。十六进制每个 数位可取0〜9、A、B、C、D、E、F中的任意一个,其中A、B、C、D、E、F分别表示 10〜15。 八进制数字通常以前缀 "0"(零)加上数…

Ubuntu 2204 安装libimobiledevice

libimobiledevice是一个开源的软件,它可以直接使用系统原生协议和IOS设备进行通信,类似iMazing,iTunes,libimobiledevice不依赖IOS的私有库,并且连接IOS设备时用的都是原生协议,IOS无需越狱就能实现设备信息…

同旺科技 USB TO SPI / I2C --- 调试W5500_读写网关地址

所需设备: 内附链接 1、USB转SPI_I2C适配器(专业版); 首先,连接W5500模块与同旺科技USB TO SPI / I2C适配器,如下图: 这里的网关地址设置为192.168.1.1 先将网关地址写入寄存器,然后再读取出来:

Echarts 设备状态 甘特图

在做工厂智能化生产看板时,绝对会有设备状态看板,展示设备当天或者当前状态,设备状态数据一般是有mes 系统设备管理模块对设备信息进行采集,一般包括过站数据,设备当前状态,是否在线是否故障、检修、待生产…

Linux CentOS7 联网配置 | 安装中文输入法

参考视频:保姆式教学虚拟机联网liunx(centos)_哔哩哔哩_bilibili 配置网络:解决上网问题 第一步:选择网络模式 第二步:配置网卡命令:打开终端执行命令: 1、先切换到根目录下,防止在第执行cd …

css如何设置文本添加下划线

css文本添加下划线 text-decoration: underline;text-decoration相关属性参数 参数描述none默认。定义标准的文本。underline定义文本下的一条线。overline定义文本上的一条线。line-through定义穿过文本下的一条线。blink定义闪烁的文本。inherit规定应该从父元素继承 text-…

blue beacon rssi 指纹室内定位数据集

数据集是开展实验的基础,搜集并分享。如果你有关于室内定位的问题,请联系博主。 namedatesetpapercommentBLEBeacon: A Real-Subject Trial Dataset from Mobile Bluetooth Low Energy Beaconshttps://github.com/dimisik/BLEBeacon-Datasethttps://arxi…

matlab基于线性二次调节器(LQR)法实现机器人路径规划可变轨迹跟踪

1、内容简介 略 可以交流、咨询、答疑 2、内容说明 基于线性二次调节器(LQR)法实现机器人路径规划可变轨迹跟踪 3、仿真分析 略 load path.mat %% 轨迹处理 % 定义参考轨迹 refPos_x path(:,1); refPos_y path(:,2); refPos [refPos_x, refPos_y];% 计算航向角和曲率 …

Elasticsearch:ES|QL 函数及操作符

如果你对 ES|QL 还不是很熟悉的话,请阅读之前的文章 “Elasticsearch:ES|QL 查询语言简介​​​​​​​”。ES|QL 提供了一整套用于处理数据的函数和运算符。 功能分为以下几类: 目录 ES|QL 聚合函数 AVG COUNT COUNT_DISTINCT 计数为近…

G1264 0.85 V 启动,12uA,同步 DC/DC 变换器

G1264 0.85 V 启动,12uA,同步 DC/DC 变换器 概述: G1264集成 PFM 模式同步升压变换器,只需要一个电感和两个电容。由于升压专有设计,它启动在非常低的输入电压下降到850毫伏,使其成为单电池碱性/镍氢电池操…