【Spark学习】Apache Spark配置
Spark版本:1.1.1
本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接:
http://www.cnblogs.com/zhangningbo/p/4137969.html
Spark配置
Spark属性
动态加载Spark属性
查看Spark属性
可用属性
大部分用于控制内部设置的属性都有合理的默认值。一部分最通用的选项设置如下:
应用程序属性
属性名称 | 默认值 | 含义 |
spark.app.name | (none) | 应用程序名称。该参数的值会出现在UI和日志记录中。 |
spark.master | (none) | 要连接的集群管理器。详见支持的masterURL列表。 |
spark.executor.memory | 512m | 每个executor进程要用的内存量。与JVM内存字符串的格式相同(如,512m,2g)。 |
spark.serializer | org.apache.spark.serializer.JavaSerializer | 用于序列化对象(以序列化形式通过网络发送或者在内存中缓存的对象)的类,默认的Java序列化适用于任何可序列化的Java对象,但速度很慢。因此,在需要较快速度的场合,我们推荐使用org.apache.spark.serializer.KryoSerializer并配置Kryo序列化。该参数的值可以是org.apache.spark.serializer的任何子类。 |
spark.kryo.registrator | (none) | 如果你使用Kryo序列化,那么,需要设置该类以便使用Kryo来注册你的自定义类。该参数应当设置成一个扩展KryoRegistrator的类。详见调优指南。 |
spark.local.dir | /tmp | 在Spark中“草稿”空间所用的路径,包括存储于磁盘上的map输出文件和RDD。该参数值应当指向一个快速的本地磁盘路径。也可以是多个以逗号分隔的位于不同磁盘的路径列表。注意:从Spark1.0以后,该参数会被集群管理器所设置的SPARK_LOCAL_DIRS(Standalone,Mesos模式下)或者LOCAL_DIRS(YARN模式下)环境变量覆盖。 |
spark.logconf | false | 当SparkContext启动时,以INFO日志级别记录有效的SparkConf设置。 |
除了以上属性,下面的属性也可用 ,而且在某些情形下会很有用:
运行时环境
属性名称 | 默认值 | 含义 |
spark.executor.extraJavaOptions | (none) | 传递给executor的额外JVM选项字符串。例如,GC设置或其他日志设置。注意,使用该选项来设置spark属性或heap大小是不合法的。Spark属性应当使用SparkConf对象设置,或者在脚本spark-submit中使用spark-defaults.conf文件。Heap大小可以用spark.executor.memory来设置。 |
spark.executor.extraClassPath | (none) | 追加到executor classpath中的额外classpath条目。该参数主要是为了与老版本的spark后向兼容。用户通常不需要设置该选项。 |
spark.executor.extraLibraryPath | (none) | 设置一个启动executor JVM时使用的特殊库路径。 |
spark.files.userClassPathFirst | false | (实验特性)当把用户添加的jar包和Spark自有jar包中的类加载到executor时,是否优先处理前者,再处理后者。该特性可以用于减少Spark依赖和用户依赖之间的冲突。当前该特性是实验性的。 |
spark.python.worker.memory | 512m | 聚集过程中每个python worker进程所用的内存量,与Java内存字符串的格式相同(如512m,2g)。如果进程在聚集期间所用的内存超过了该值,那么,就会把数据写入磁盘。 |
spark.executorEnv.[EnvironmentVariableName] | (none) | 把EnvironmentVariableName指定的环境变量添加到executor进程中。用户可以指定多个值来设置多个环境变量。 |
spark.mesos.executor.home | driver side SPARK_HOME | 设置Spark在Mesos集群中的executor主机上所安装的路径。默认情况下,executor简单地使用driver上的Spark home路径(executor不可见),注意,如果Spark二进制包不是通过spark.executor.uri来指定的,那么该值就是确切的。 |
spark.mesos.executor.memoryOverhead | executor memory * 0.07,最小值为384 | 该值是spark.executor.memory的附加值,以MB为单位,用于计算Mesos任务的内存总量。384代表开销为384MB。此外,硬编码的7%为最小开销比例。最终的开销是二者中最大的,即max(spark.mesos.executor.memoryOverhead,spark.executor.memory * 7%) |
Shuffle行为
属性名称 | 默认值 | 含义 |
Spark UI
属性名称 | 默认值 | 含义 |
压缩与序列化
属性名称 | 默认值 | 含义 |
执行行为
属性名称 | 默认值 | 含义 |
网络
属性名称 | 默认值 | 含义 |
调度
属性名称 | 默认值 | 含义 |
安全
属性名称 | 默认值 | 含义 |
Spark Streaming
属性名称 | 默认值 | 含义 |
集群管理器
每个集群管理器都有额外的配置选项。这些配置参见每种模式各自的页面:
YARN
Mesos
Standalone
环境变量
某些Spark属性可以通过环境变量来配置,这些变量可以从conf/spark-env.sh脚本(windows平台为conf/spark-env.cmd)中读取。在Standalone和Mesos模式下,该脚本文件可以给出主机相关信息,比如主机名,也可以作为运行本地Spark应用程序或者子任务脚本时的源文件。
注意,conf/spark-env.sh默认安装情况下是不存在的。但是,你可以通过复制conf/spark-env.sh.template来创建它并确保其为可执行的。
以下变量可以在spark-env.sh文件中设置:
环境变量 | 含义 |
JAVA_HOME | Java安装的位置(如果没有在默认的环境变量PATH中指定,就采用该值) |
PYSPARK_PYTHON | PySpark所用的Python二进制可执行文件 |
SPARK_LOCAL_IP | 主机所绑定的IP地址 |
SPARK_PUBLIC_DNS | Spark程序通告给其他主机的主机名 |
除了以上变量,还有一些创建Spark Standalone集群脚本的选项,比如每台主机所用的CPU核数和最大内存。
由于spark-env.sh是脚本,所以有些选项可以通过程序来设置——例如,你可以通过查询指定网卡的IP地址来确定SPARK_LOCAL_IP。
配置日志记录
Spark使用log4j来记录日志。你可以在路径conf中添加log4j.properties文件来配置该功能。还有一种启动方法就是在原地复制log4j.properties.template文件。
覆盖配置路径
要指定其他配置路径而不使用默认的“SPARK_HOME/conf” ,你可以设置SPARK_CONF_DIR环境变量。Spark将会使用该变量指定路径中的配置文件(spark-defaults.conf,spark-env.sh,log4j.properties等)。
【Spark学习】Apache Spark配置的更多相关文章
- spark学习及环境配置
http://dblab.xmu.edu.cn/blog/spark/ 厦大数据库实验室博客 总结.分享.收获 实验室主页 首页 大数据 数据库 数据挖掘 其他 子雨大数据之Spark入门教程 林子 ...
- Spark学习之Spark Streaming(9)
Spark学习之Spark Streaming(9) 1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码. 2. ...
- Spark学习之Spark调优与调试(7)
Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...
- Spark学习之Spark SQL(8)
Spark学习之Spark SQL(8) 1. Spark用来操作结构化和半结构化数据的接口--Spark SQL. 2. Spark SQL的三大功能 2.1 Spark SQL可以从各种结构化数据 ...
- spark学习之IDEA配置spark并wordcount提交集群
这篇文章包括以下内容 (1)IDEA中scala的安装 (2)hdfs简单的使用,没有写它的部署 (3) 使用scala编写简单的wordcount,输入文件和输出文件使用参数传递 (4)IDEA打包 ...
- 【Spark学习】Spark 1.1.0 with CDH5.2 安装部署
[时间]2014年11月18日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm spark-worker-1.1.0+cdh5.2.0+56-1.c ...
- Spark学习之Spark SQL
一.简介 Spark SQL 提供了以下三大功能. (1) Spark SQL 可以从各种结构化数据源(例如 JSON.Hive.Parquet 等)中读取数据. (2) Spark SQL 不仅支持 ...
- Spark学习之Spark Streaming
一.简介 许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用.训练机器学习模型的应用,还有自动检测异常的应用.Spark Streaming 是 Spark 为这些应用而设计的模型.它 ...
- Spark学习之Spark调优与调试(二)
下面来看看更复杂的情况,比如,当调度器进行流水线执行(pipelining),或把多个 RDD 合并到一个步骤中时.当RDD 不需要混洗数据就可以从父节点计算出来时,调度器就会自动进行流水线执行.上一 ...
- Spark学习之Spark调优与调试(一)
一.使用SparkConf配置Spark 对 Spark 进行性能调优,通常就是修改 Spark 应用的运行时配置选项.Spark 中最主要的配置机制是通过 SparkConf 类对 Spark 进行 ...
随机推荐
- jquery index()方法
搜索匹配的元素,并返回相应元素的索引值,从0开始计数. 如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置. 如果参数是一 ...
- C语言全局未初始化数据段分析
前言: 在分析C语言全局未初始化变量时,发现在目标文件中全局未初始化变量并不是直接放在bss段中. 再后来发现在两个.c文件中定义同名的全局变量,链接时居然没有发生符号重定义错误.才知道C语言弱定义的 ...
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务(老罗学习笔记5)
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行.今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件.因此,软件和硬件的关系 ...
- Android手机拍照
参考的这个视频教程:http://v.youku.com/v_show/id_XNjI5MzkzMjQ4.html和官方API档file:///D:/Android/androidstudio/sdk ...
- trackr: An AngularJS app with a Java 8 backend – Part III
这是最后我们对trackr系列的一部分.在过去的两的博文中,我们已经向您展示我们使用的工具和框架构建后端和前端.如果你错过了前面的帖子现在你可能会想读他们赶上来. Part I – The Backe ...
- 严重: Catalina.stop: java.net.ConnectException: Connection refused: connect
原因: 1.连接被拒绝,关闭的时候报错.是不是已经关闭了,你又关闭,他当然找不到了. 2.连接被拒绝有可能是服务端连接数到达最高了 3.服务器拒绝连接,ip地址是否写对,端口号正确与否,网络是否通畅, ...
- Java [Leetcode 235]Lowest Common Ancestor of a Binary Search Tree
题目描述: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in ...
- (3)Spring定时任务的几种实现
Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将 ...
- 【编程基础】const与#define的区别
[前言] 相信大家看别人代码的时候都遇到过,有人用#define定义,也有人用const定义. 那么两者的区别到底是什么呢?哪个更好用呢? 网上查了又查,下面总结一下. [总结] 编译器处理方式不同 ...
- 【MySQL for Mac】在Mac终端导入&导出.sql文件
导入 打开终端输入:(前提是已经配置过MySQL环境变量) mysql -u root -p create database name; use name; source 『将.sql文件直接拖拽至终 ...