Spark应用程序剖析
每个Spark应用程序都从创建SparkContext开始。
若没有SparkContext,则不能启动计算(如Spark作业)。
Spark应用程序由(applicationId, application attempt-id)唯一标识。
Spark应用程序是SparkContext的一个实例。 或者换句话说,SparkContext构成了一个Spark应用程序。
举例如下:
import org.apache.spark.{SparkContext, SparkConf}
object SampleApp {
def main(args: Array[String]) {
val masterURL = "local[*]" // (1)
val conf = new SparkConf() //(2)
.setAppName("SparkMe Application")
.setMaster(masterURL)
val sc = new SparkContext(conf) //(3)
val fileName = "/tmp/test.xt"
val lines = sc.textFile(fileName).cache() //(4)
val c = lines.count() //(5)
println(s"There are $c lines in $fileName")
}
}
- Master URL
- 创建 Spark configuration
- 创建 Spark context
- 创建 lines RDD
- 执行 count 操作
Spark shell会在启动时为你创建一个Spark context 和SQL context。
Spark应用程序启动时,它将按照MasterURL所述连接到Spark Master。 这是Spark context初始化的一部分。
Spark应用程序可以在本地运行,也可以在定义了集群管理器和部署模式(--deploy-mode)的集群上运行。
然后,你可以创建RDD,将其转换为其他RDD并最终执行操作。 你也可以缓存临时RDD来加速数据处理。完成所有数据处理后,Spark应用程序可以通过终止Spark context来结束(sc.stop)。
网友评论