【Spark学习】Apache Spark配置

Spark版本:1.1.1html

本文系从官方文档翻译而来,转载请尊重译者的工做,注明如下连接:python

http://www.cnblogs.com/zhangningbo/p/4137969.html apache

 

 

Spark配置windows

 

 

Spark属性缓存

动态加载Spark属性安全

查看Spark属性网络

可用属性app

大部分用于控制内部设置的属性都有合理的默认值。一部分最通用的选项设置以下:ide

应用程序属性编码

属性名称 默认值 含义
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等)。

相关文章
相关标签/搜索