【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 进行 ...
随机推荐
- Linux批量杀进程
ps -ef |grep 进程名|grep -v grep |awk '{print $2}' |xargs kill -9
- iosblock用法
看了很多的block用法,还是小糊涂. 最后还是自己尝试吧. #import "FirstViewController.h" @interface FirstViewControl ...
- 自定义View(5)Paint常用的一些绘制滤镜,特效等介绍
Shader 返回绘图过程中重复色块的基类 相关方法:Paint::setShader(Shader shader) BitmapShader 从位图加载重复色块 LinearGradient, Ra ...
- 自定义View(4)Canvas和Paint常用绘制函数
画布Canvas 在Android下进行2D绘图需要Canvas类的支持,它位于"android.graphics.Canvas"包下,直译过来为画布的意思,用于完成在View上的 ...
- github的large file storeage
https://git-lfs.github.com/ 1.从这个网址下载git-lfs-windows-amd64-1.1.0.exe,运行这个安装包 2.然后打开git bash 输入git lf ...
- chrome控制台小技巧
对于大多数开发人员来说,chrome控制台最常用的命令就是 console.log()了,然后还有一些其他类似的命令,如: console.info() 提示信息 console.error() ...
- java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.MetadataProvider
Caused by: java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/MetadataProvi ...
- 函数fsp_get_space_header
/**********************************************************************//** Gets a pointer to the sp ...
- ASP.NET MVC 学习3、Controller左手从Model获取数据,右手传递到View页面
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-dat ...
- LeetCode Swap Nodes in Pairs 交换结点对(单链表)
题意:给一个单链表,将其每两个结点交换,只改尾指针,不改元素值. 思路:迭代法和递归法都容易写,就写个递归的了. 4ms /** * Definition for singly-linked list ...