摘要:
1. DAG是什么有什么用? DAG有向无环图, 用以描述任务执行流程,主要作用是协助DAG调度器构建Task分配用以做任务管理 2. 内存迭代\阶段划分? 基于DAG的宽窄依赖划分阶段,阶段内部都是窄依赖可以构建内存迭代的管道 3. DAG调度器是? 构建Task分配用以做任务管理 1. Spar 阅读全文
摘要:
1. DAG是什么有什么用? DAG有向无环图, 用以描述任务执行流程,主要作用是协助DAG调度器构建Task分配用以做任务管理 2. 内存迭代\阶段划分? 基于DAG的宽窄依赖划分阶段,阶段内部都是窄依赖可以构建内存迭代的管道 3. DAG调度器是? 构建Task分配用以做任务管理 1. Spar 阅读全文
摘要:
spark 的shuffle调优:主要是调整缓冲的大小,拉取次数重试重试次数与等待时间,内存比例分配,是否进行排序操作等等 spark.shuffle.file.buffer 参数说明:该参数用于设置shuffle write task的BufferedOutputStream的buffer缓冲大小 阅读全文
摘要:
bypass运行机制的触发条件如下: 1)shuffle map task数量小于spark.shuffle.sort.bypassMergeThreshold=200参数的值。 2)不是map combine聚合的shuffle算子(比如reduceByKey有map combie) 总结: 阅读全文
摘要:
SortShuffleManager的运行机制主要分成两种,一种是普通运行机制,另一种是bypass运行机制。当shuffle write task的数量小于等于spark.shuffle.sort.bypassMergeThreshold参数的值时(默认为200),就会启用bypass机制。 (1 阅读全文
摘要:
Shuffle阶段划分: shuffle write:mapper阶段,上一个stage得到最后的结果写出 shuffle read :reduce阶段,下一个stage拉取上一个stage进行合并 1)未经优化的hashShuffleManager: HashShuffle是根据task的计算结果 阅读全文
摘要:
1. 广播变量解决了什么问题? 分布式集合RDD和本地集合进行关联使用的时候, 降低内存占用以及减少网络IO传输, 提高性能. 2. 累加器解决了什么问题? 分布式代码执行中, 进行全局累加 Spark的核心是根据RDD来实现的,Spark Scheduler则为Spark核心实现的重要一环,其作用 阅读全文
摘要:
2. 为什么要在全部的服务器安装jieba库? 因为YARN是集群运行, Executor可以在所有服务器上执行, 所以每个服务器都需要有jieba库提供支 撑 3. 如何尽量提高任务计算的资源? 计算CPU核心和内存量, 通过--executor-memory 指定executor内存, 通过-- 阅读全文
摘要:
Cache和Checkpoint区别 Cache是轻量化保存RDD数据, 可存储在内存和硬盘, 是分散存储, 设计上数据是不安全的(保留RDD 血缘关系) CheckPoint是重量级保存RDD数据, 是集中存储, 只能存储在硬盘(HDFS)上, 设计上是安全的(不保留 RDD血缘关系) 2. Ca 阅读全文
摘要:
1. RDD创建有哪几种方法? 通过并行化集合的方式(本地集合转分布式集合) 或者读取数据的方式创建(TextFile\WholeTextFile) 2. RDD分区数如何查看? 通过 getNumPartitions API 查看, 返回值Int 3. Transformation 和 Actio 阅读全文
摘要:
RDD 数据结构内部有五个特性(摘录RDD 源码): 前三个特征每个RDD都具备的,后两个特征可选的。 Spark RDD 编程的程序入口对象是SparkContext对象(不论何种编程语言) 只有构建出SparkContext, 基于它才能执行后续的API调用和计算 本质上, SparkConte 阅读全文
|