当前位置: 首页 > article >正文

SparkCore中的常见问题

1、rdd五大特性

特性一:每个RDD都由一系列的分区构成

特性二:RDD的转换操作本质上是对RDD所有分区的并行转换

特性三:每个RDD都会保存与其他RDD之间的依赖关系:血链机制或者血脉机制

特性四:可选的,如果是二元组【KV】类型的RDD,在Shuffle过程中可以自定义分区器。

特性五:可选的,Spark程序运行时,Task的分配可以指定实现本地优先计算:最优计算位置.

2、spark启动yarn需要启动哪些服务

# 启动yarn
start-yarn.sh
# 启动MR的JobHistoryServer:19888
mapred --daemon start historyserver
# 启动Spark的HistoryServer:18080
/opt/installs/spark/sbin/start-history-server.sh

3、spark中哪些是shuffle算子,哪些是触发算子,哪些是转换算子

count foreach saveAsTextFile first take 
  collect  reduce top takeOrdered 
  collectAsMap foreachParition   max min mean sum  checkpoint
map flatMap filter union distinct groupByKey sortByKey sortBy reduceByKey 
 repartition coalesce keys values mapValues
 join fullOuterJoin leftOuterJoin rightOuterJoin
 mapPartitions  cache persist
 groupByKey sortByKey sortBy reduceByKey repartition
   coalesce(根据情况)  join( fullOuterJoin / leftOuterJoin / rightOuterJoin)

4、创建rdd的两种方式

方式一:并行化一个已存在的集合

方式二:读取外部共享存储系统

5、宽依赖算子

窄依赖:Narrow Dependencies

定义:父RDD的一个分区的数据只给了子RDD的一个分区 【不用经过Shuffle

特点:一对一或者多对一不经过Shuffle,性能相对较快, 但无法实现全局分区、排序、分组等

一个Stage内部的计算都是窄依赖的过程,全部在内存中 完成。

宽依赖:Wide/Shuffle Dependencies

定义:父RDD的一个分区的数据给了子RDD的多个分区【需要调用Shuffle的分区器来实现】

特点:一对多,必须经过Shuffle,性能相对较慢,可以实现全 局分区、排序、分组等

Spark的job中按照宽依赖来划分Stage

本质:只是一种标记,标记两个RDD之间的依赖关系

3、为什么要标记宽窄关系?

1)提高数据容错的性能,避免分区数据丢失时,需要重新构建整个RDD

2)提高数据转换的性能,将连续窄依赖操作使用同一个Task都放在内存中直接转换

6、容错机制

persist持久化机制

checkpoint检查点机制

7、spark的shuffle过程

1)Hash Based Shuffle

特点:没有排序,只分区,每个Task按照ReduceTask个数生成多个文件

2) Hash Based Shuffle 【优化后的,File Consolidation机制】

3) Sort Based Shuffle [目前最新的]

Shuffle Write:类似于MR中的Map端Shuffle,但是Spark的 Shuffle Write有3种,会根据情况自动判断选择哪种Shuffle Write

第一种:SortShuffleWriter

第二种:BypassMergeSortShuffleWriter

第三种:UnsafeShuffleWriter

Shuffle Read:类似于MR中的Reduce端Shuffle,但是 Spark的Shuffle Read功能由算子来决定,不同算子经过的过程不一样的。


http://www.kler.cn/a/385821.html

相关文章:

  • 工化企业内部能源能耗过大 落实能源管理
  • vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
  • 第二十一周机器学习笔记:动手深度学习之——数据操作、数据预处理
  • 营销手段的变革:开源 AI 智能名片与 S2B2C 商城小程序在新趋势下的机遇与挑战
  • Git_2024/11/16
  • Python如何获取request response body
  • C#-异步查询示例
  • 理解 WordPress | 第一篇:与内容管理系统的关系
  • HiveSQL面试题
  • 惊爆:抖音小程序广告掘金计划,游戏+广告双赢新趋势!
  • django-tidb版本说明
  • 软考系统架构设计师论文:论边缘计算及其应用
  • 华为市场ASO详解
  • 什么是聚类分析,它在数据分析中的应用是什么
  • [前端]NodeJS常见面试题目
  • 类与对象—中
  • Spark 中的 RDD 分区的设定规则与高阶函数、Lambda 表达式详解
  • 使用Python和Vosk库实现语音识别
  • MATLAB和R及Python亚群差异表达分析
  • 剑指offer第二版(PDF+源码)
  • ABAP:SET CURSOR FIELD设置鼠标焦点
  • 二维码(Misc)
  • 双十一购买服务器不止局限于新用户,老用户同样有福利!
  • 丹摩征文活动|新手入门指南
  • vue实现图片无限滚动播放
  • 线上模型准确率估计——在没有标签的测试数据上估计模型准确率