Cheng Chao

Spark 学习笔记03-运行

Spark 运行时架构 在分布式环境下,Spark 集群采用的是主/从结构。在一个 Spark 集群中,有一个节点负责中央协调,调度各个分布式工作节点。这个中央协调节点被称为驱动器(Driver)节点,与之对应的工作节点被称为执行器(executor)节点。驱动器节点可以和大量的执行器节点进行通信,它们也都作为独立的 Java 进程运行。驱动器节点和所有的执行器节点一起被称为一个 Spar...

Spark 学习笔记02-共享变量

共享变量是一种可以在 Spark 任务中使用的特殊类型的变量。Spark 有两种类型的共享变量:累加器(accumulator) 和广播变量(broadcast variable)。 累加器用来对信息进行聚合,广播变量用来高效分发较大的对象。 当任务需要很长时间进行配置,譬如需要创建数据库连接或者随机数生成器时,在多个数据元素间共享一次配置就会比较有效率。由于需要用到远程呼号查询数据库,...

Spark 学习笔记01-数据分区

在分布式程序中,通信的代价是很大的,因此控制数据分布以获得最少的网络传输可以极大地提升整体性能。和单节点的程序需要为记录集合选择合适的数据结构一样,Spark 程序可以通过控制 RDD 分区方式来减少通信开销。分区并不是对所有应用都有好处的——比如,如果给定 RDD 只需要被扫描一次,我们完全没有必要对其预先进行分区处理。只有当数据集多次在诸如连接这种基于键的操作中使用时,分区才会有帮助。我...