一、Spark应用程序的工作原理
spark应用程序通过驱动器程序(spark shell、idea等)来发起在集群上的并行操作,包括定义集群上的分布式数据集(RDD),并对数据集进行操作。驱动器程序通过对象SparkContext(即sc)连接spark集群,从而访问spark集群上的分布式文件。在驱动器程序上,可以通过sc来创建RDD,并且一次性操作管理多个执行器节点(通过Spark API对多个节点上的分布式数据集传递函数,进行操作)。
二、独立的spark程序
在spark shell中会自动初始化sc,而在Python、scala的独立应用程序中,需要连接spark,然后自定义初始化sc来使用Spark API操作spark集群。
1、Python
- spark连接:把应用程序写成Python脚本,通过bin/spark-submit 文件.py来运行程序,spark-submit会自动引入Python程序对spark的依赖
- sc初始化:
from pyspark import SparkConf,SparkContext
conf=SparkConf().setMaster("local").setAppName("应用名")
sc=SparkContext(conf=conf)
setMaster为集群URL:即让spark连接到指定集群上,local指的是单机单线程运行,而不必运行在集群上 setAppName:应用程序名
2、scala
- spark连接:给scala程序添加一个对spark-core的maven依赖(idea就可以直接将maven依赖添加到scala工程中)
- sc初始化:
import org.apache.spark.{SparkConf,SparkContext,SparkContext._}
val conf=new SparkConf().setMaster("local").setAppName("应用名")
val sc=new SparkContext(conf)
|