luobo2ni 发表于 2015-8-6 09:13:27

【Spark学习】Apache Spark配置

  Spark版本:1.1.1
  本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接:
  http://www.iyunv.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.userClassPathFirstfalse(实验特性)当把用户添加的jar包和Spark自有jar包中的类加载到executor时,是否优先处理前者,再处理后者。该特性可以用于减少Spark依赖和用户依赖之间的冲突。当前该特性是实验性的。spark.python.worker.memory512m聚集过程中每个python worker进程所用的内存量,与Java内存字符串的格式相同(如512m,2g)。如果进程在聚集期间所用的内存超过了该值,那么,就会把数据写入磁盘。spark.executorEnv.(none)把EnvironmentVariableName指定的环境变量添加到executor进程中。用户可以指定多个值来设置多个环境变量。spark.mesos.executor.homedriver side SPARK_HOME设置Spark在Mesos集群中的executor主机上所安装的路径。默认情况下,executor简单地使用driver上的Spark home路径(executor不可见),注意,如果Spark二进制包不是通过spark.executor.uri来指定的,那么该值就是确切的。spark.mesos.executor.memoryOverheadexecutor 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_HOMEJava安装的位置(如果没有在默认的环境变量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等)。
  
页: [1]
查看完整版本: 【Spark学习】Apache Spark配置