摘要:
一、测试或实验性质的本地运行模式 (单机) 该模式被称为Local[N]模式,是用单机的多个线程来模拟Spark分布式计算,通常用来验证开发出来的应用程序逻辑上有没有问题。 其中N代表可以使用N个线程,每个线程拥有一个core。如果不指定N,则默认是1个线程(该线程有1个core)。 指令示例: 1 阅读全文
摘要:
概述 Shuffle是Spark Core比较复杂的模块,它也是非常影响性能的操作之一。因此,在这里整理了会影响Shuffle性能的各项配置。 1)spark.shuffle.manager Spark 1.2.0官方版本支持两种方式的Shuffle,即Hash Based Shuffle和Sort 阅读全文
摘要:
概述 Shuffle,翻译成中文就是洗牌。之所以需要Shuffle,还是因为具有某种共同特征的一类数据需要最终汇聚(aggregate)到一个计算节点上进行计算。这些数据分布在各个存储节点上并且由不同节点的计算单元处理。以最简单的Word Count为例,其中数据保存在Node1、Node2和Nod 阅读全文
摘要:
概述 之前我们提到:Driver 的sc负责和Executor交互,完成任务的分配和调度,在底层,任务调度模块主要包含两大部分: 1)DAGScheduler 2)TaskScheduler 它们负责将用户提交的计算任务按照DAG划分为不同的阶段并且将不同阶段的计算任务提交到集群进行最终的计算。整个 阅读全文
摘要:
概述 为了更好地理解调度,我们先来鸟瞰一下集群模式下的Spark程序运行架构图。 1. Driver Program 用户编写的Spark程序称为Driver Program。每个Driver程序包含一个代表集群环境的SparkContext对象,程序的执行从Driver程序开始,所有操作执行结束后 阅读全文