Spark编程指南分享

转载自:https://www.2cto.com/kf/201604/497083.html

1、概述

在高层的角度上看,每一个Spark应用都有一个驱动程序(driver program)。驱动程序就是运行用户的main主程序并在集群上执行各种并行操作的程序。Spark中的一个主要的抽象概念就是弹性分布数据集(resilient distributed dataset,RDD),RDD是分布在多个节点构成的集群上的元素的集合,并支持并行操作。RDD可以由Hadoop的分布式文件系统(或其他支持Hadoop分布式系统的文件系统)中的文件创建,也可以通过在驱动程序中的Scala集合创建,同时,对一个RDD进行转换操作(transform)也可以创建一个新的RDD。用户也可以将RDD存储在内存中,这样RDD就可以在后序的并行操作中高效地重复使用。最后,RDD能够从某个节点的实效中进行恢复。

Spark的第二个抽象概念就是共享变量(shared variables)。共享变量应用于并行操作中。默认情况下,当Spark在几个节点构成的集群上并行执行一系列任务时,Spark会携带函数中使用的每一个变量到每一个任务中。有时,一些变量需要在几个任务间共享,或者在任务和驱动程序间共享。Spark支持两种共享变量:将数据缓存中所有节点中的广播变量(broadcast variables),和只能增加的累加器(accumulators),比如计数器和总和(sums)。

这里我只使用了Scala的版本。Spark还支持Java和Python。如果打开Spark的交互式脚本,很容易理解这个知道的内容。

2、连接Spark

Spark 1.6.1使用Scala 2.10版本。如果使用Scala编写Spark应用,应该使用兼容的版本(比如2.10.x)。

在Intellij Idea搭建Spark开发环境中介绍了使用Idea+Maven搭建Spark开发环境。如果编写Spark应用,应该添加Spark的依赖,具体的信息如下:

groupId = org.apache.spark

artifactId = spark-core_2.10

version = 1.6.1 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgfdpd.html