spark源码阅读二-spark application运行过程

本文详细介绍了Spark应用程序的运行流程,包括SparkConf配置初始化、SparkContext创建及任务执行过程。通过一个wordcount示例,剖析了从配置设置到具体RDD操作的每一个步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码版本:spark 2.2.0
本篇文章主要讲述一个application的运行过程。大体分为三部分:(1)SparkConf创建;(2)SparkContext创建;(3)任务执行。 
假如我们用scala写了一个wordcount程序对文件单词进行计数,
package com.spark.myapp
import org.apache.spark.{SparkContext, SparkConf}
object WordCount {
    def main(args: Array[String]) {
        val conf = new SparkConf().setAppName("WordCount").setMaster("spark://master:7077”)
        val sc = new SparkContext(conf)
        sc.textFile(“README.md").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println)
        sc.stop()
    }
}
编译打包jar完成后,要在standalone集群环境提交一个任务,在提交任务机器安装的spark目录下敲入命令: spark-submit -- class com . spark .my app . WordCount   -- master spark :// master :7077  /home/xx/ myapps / wordcount . jar
关于spark-submit是如何运行到任务代码,请参考前面的文章“spark-submit执行过程”。本篇文章主要讲述一个application的运行过程。
大体分为三部分:(1)SparkConf创建;(2)SparkContext创建;(3)任务执行。

1.SparkConf创建
SparkConf包含了Spark集群配置的各种参数,我们看下这个类的说明。
Configuration for a Spark application. Used to set various Spark parameters as key-value pairs. Most of the time, you would create a SparkConf object with ` new SparkConf() ` , which will load  values from any ` spark.* ` Java system properties set in your application as well. In this case,  parameters you set directly on the ` SparkConf ` object take priority over system properties.
重点就是说new SparkConf()会从系统配置里读取spark相关参数,参数都是k-v对,然后你可以使用 SparkConf的set函数来自己设置覆盖读取的配置。
常见的参数设置函数如下:
(1)设置master url
def setMaster(master: String): SparkConf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值