内容简介:学习 Spark 2(一):初始化 SparkContext
架构
Spark 应用通过 SparkContext 连接到 ClusterManager 与 Executor 建立联系:
利用 SparkContext 可以在集群上创建 RDD、广播和累加器
WARNNING:一个 JVM 进程,仅仅创建一个 SparkContext 实例
参数
SparkContext 可以通过 SparkConf 进行配置:
val conf = new SparkConf()
.setMaster("local[*]")
.setAppName("FirstSparkApp")
val sc = new SparkContext(conf)
默认情况下,SparkConf 会加载系统属性中 spark. * 的属性
配置方式:
- 编辑 %SPARK_HOME%/conf/spark-defaults.conf 文件(全局级别)
-
spark-submit提交应用时,通过--conf参数指定(应用级别)
其中, Master 和 AppName 参数是必填项
参考: http://spark.apache.org/docs/latest/configuration.html
master
表示要连接的集群管理器,以下是 marster URL 格式:
- local 本地执行,启动一个 Worker 线程(本地测试)
- local[K] 本地执行,启动 K 个 Worker 线程(本地测试)
- local[*] 本地执行,启动机器 CPU 核数个 Worker 线程(本地测试)
- spark://HOST:PORT 连接到 Spark Standalone 集群
- mesos://HOST:PORT 连接到 Mesos 集群
- yarn 连接到 YARN 集群(通过环境变量 HADOOP_CONF_DIR,读取 YARN 信息)
方法
日志级别
Spark 使用 Log4J 日志框架,支持的日志级别:
- ALL
- DEBUG
- ERROR
- FATAL
- INFO
- OFF
- TRACE
- WARN
sc.setLogLevel("WARN")
应用骨架
一个完整的 Spark 应用的代码结构如下:
object Application {
def main(args: Array[String]): Unit = {
/*
* 处理 args 参数
*/
/*
* 初始化 SparkContext
*/
val conf = new SparkConf()
.setMaster(master)
.setAppName(appName)
// 其它配置项
val sc = new SparkContext(conf)
/*
* 数据处理
*/
/*
* 清理
*/
sc.close
}
}
以上所述就是小编给大家介绍的《学习 Spark 2(一):初始化 SparkContext》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Machine Learning in Action
Peter Harrington / Manning Publications / 2012-4-19 / GBP 29.99
It's been said that data is the new "dirt"—the raw material from which and on which you build the structures of the modern world. And like dirt, data can seem like a limitless, undifferentiated mass. ......一起来看看 《Machine Learning in Action》 这本书的介绍吧!