`
m635674608
  • 浏览: 5028378 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spark三种属性配置方式详细说明

 
阅读更多

随着Spark项目的逐渐成熟, 越来越多的可配置参数被添加到Spark中来。在Spark中提供了三个地方用于配置:
  1、Spark properties:这个可以控制应用程序的绝大部分属性。并且可以通过 SparkConf对象或者Java 系统属性进行设置;
  2、环境变量(Environment variables):这个可以分别对每台机器进行相应的设置,比如IP。这个可以在每台机器的$SPARK_HOME/ conf/spark-env.sh脚本中进行设置;
  3、日志:所有的日志相关的属性可以在log4j.properties文件中进行设置。
  下面对这三种属性设定进行详细的说明。

一、Spark properties

  Spark properties可以控制应用程序的绝大部分属性,并且可以分别在每个应用上进行设置。这些属性可以直接在SparkConf对象上设定,该对象可以传递给SparkContext。SparkConf对象允许你去设定一些通用的属性(比如master URL、应用的名称等),这些属性可以传递给set()方法的任意key-value对。如下:

1 val conf = new SparkConf()
2              .setMaster("local")
3              .setAppName("CountingSheep")
4              .set("spark.executor.memory""1g")
5 val sc = new SparkContext(conf)

动态加载Spark属性

  在一些场景中,你可能想避免在代码中将SparkConf对象的属性进行设死;比如,你可能想在不同的master上面或者不同内存容量运行你的应用程序。这就需要你运行程序的时候进行设置,Spark允许你创建一个空的conf对象,如下:

1 val sc = new SparkContext(new SparkConf())

  然后你可以在运行的时候通过命令行进行一些属性的配置:

1 ./bin/spark-submit --name "My app"
2                             --master local[4]
3                             --conf spark.shuffle.spill=false
4                             --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails
5                                        -XX:+PrintGCTimeStamps"
6                             myApp.jar

  Spark shell和 spark-submit工具支持两种方式来动态加载配置属性。第一种是命令行方式,比如--master;spark-submit工具可以通过--conf标记接收任何的Spark属性。运行 ./bin/spark-submit --help将会显示全部的选项。
   ./bin/spark-submit工具也会从 conf/spark-defaults.conf配置文件中读取配置选项。 在conf/spark-defaults.conf配置文件中,每行是key-value对,中间可以是用空格进行分割,也可以直接用等号进行分割。如下:

1 spark.master            spark://iteblog.com:7077
2 spark.executor.memory   512m
3 spark.eventLog.enabled  true
4 spark.serializer        org.apache.spark.serializer.KryoSerializer

  每个值将作为一个flags传递到应用中并个SparkConf对象中相应的属性进行合并。通过SparkConf 对象配置的属性优先级最高;其次是对spark-submit 或 spark-shell通过flags配置;最后是spark-defaults.conf文件中的配置。

哪里可以查看配置好的Spark属性

  在应用程序对应的WEB UI(http://<driver>:4040)上的Environment标签下面将会显示出该应用程序的所有Spark配置选项。在你想确定你的配置是否正确的情况下是非常有用的。需要注意的是,只有显示通过spark-defaults.conf 或SparkConf 进行配置的属性才会在那个页面显示。其他所有没有显示的属性,你可以认为这些属性的值为默认的。

二、环境变量

  有很大一部分的Spark设定可以通过环境变量来进行设定。这些环境变量设定在conf/spark-env.sh 脚本文件中(如果你是windows系统,那么这个文件名称是conf/spark-env.cmd)。在 Standalone 和 Mesos模式下,这个文件可以设定一些和机器相关的信息(比如hostname)。
  需要注意,在刚刚安装的Spark中conf/spark-env.sh文件是不存在的。但是你可以通过复制conf/spark-env.sh.template文件来创建,你的确保这个复制之后的文件是可运行的。
  下面的属性是可以在conf/spark-env.sh文件中配置

JAVA_HOME Java的安装目录
PYSPARK_PYTHON Python binary executable to use for PySpark.
SPARK_LOCAL_IP IP address of the machine to bind to.
SPARK_PUBLIC_DNS Hostname your Spark program will advertise to other machines.

对于 standalone 模式的集群除了上面的属性可以配置外,还有很多的属性可以配置,具体我就不说了,自己看文档去。

三、日志配置

  Spark用log4j来记录日志。你可以通过配置log4j.properties来设定不同日志的级别、存放位置等。这个文件默认也是不存在的,你可以通过复制log4j.properties.template文件来得到。

 

http://www.iteblog.com/archives/1140

分享到:
评论

相关推荐

    Spark分布式内存计算框架视频教程

    知识点介绍、代码演示、逻辑分析、灵活举例、使用图形的方式详细演示代码的流程和细节、整合企业级实战案例,全面讲解并突出重点,让学习也变成一种快乐。 课程亮点 1,知识体系完备,阶段学习者都能学有所获。 2,...

    spark-programming-guide(Spark 编程指南)-高清文字版

    - **RDD操作**:详细说明RDD上的操作类型,分为转换(Transformation)和行动(Action)。转换是指创建新的RDD的操作,而行动则是触发计算并将结果返回到驱动器程序或保存到外部存储系统。 - **传递函数到Spark**:...

    Spark动车推荐系统 简版

    项目必要说明.txt文件可能详细阐述了系统的设计理念、实现步骤和注意事项,对于理解和复现项目至关重要。它可能还包含了数据处理的具体流程、推荐算法的选择和评估指标的说明。 Project文件夹很可能包含了项目的源...

    spark-submit工具参数说明.pdf

    8. **--properties-file FILE**:设置Spark应用程序的配置文件路径,通常默认为`conf/spark-defaults.conf`,可以在这里定义额外的Spark配置属性。 9. **--driver-memory MEM**:设置Driver程序的内存大小,单位...

    大数据-- Apache Spark Semi-Structured data

    本篇文章将详细介绍如何利用Apache Spark处理半结构化数据。 #### 数据结构谱 数据可以被分为三种主要类型:结构化数据、半结构化数据以及非结构化数据。这些不同类型的数据在处理和存储方式上有着本质的区别。 1...

    spark之Standalone模式部署配置详解

    * SPARK_MASTER_OPTS:用于设置 master 节点的配置属性。 * SPARK_WORKER_CORES:用于设置 worker 节点的 CPU 核心数。 * SPARK_WORKER_MEMORY:用于设置 worker 节点的总内存大小。 * SPARK_WORKER_PORT / SPARK_...

    sbt-0.13.16.tgz 学习spark用

    3. **SBT的配置文件**:主要的配置文件是`build.sbt`,它是一个包含Scala代码的文件,用于定义项目属性、设置依赖、创建任务等。 4. **Spark与SBT的关联**:Spark是基于Scala的大数据处理框架,因此在开发Spark应用...

    基于Scala与Spark的数字仓库推荐系统源码

    - Properties配置文件:2个,设置系统参数和属性。 - Gitignore文件:1个,定义版本控制的忽略项。 - LICENSE文件:1个,明确项目许可协议。 - Markdown文档:1个,包含项目说明和操作指南。 - PNG图像文件:1个,...

    邮电学院Scala大数据实时处理——基于Lambda架构的Spark源码

    - 属性文件(.properties):4个,存储了项目相关的配置属性。 - 文档文件(.doc):2个,提供了项目的说明和使用指南。 - 版本控制忽略文件(.gitignore):1个,用于定义哪些文件或目录应被Git忽略。 - IntelliJ ...

    基于Spark的新闻推荐系统,包含爬虫项目、web网站以及spark推荐系统.zip

    1. **Spark技术**:Apache Spark是一个开源的大数据处理框架,它提供了一种快速、通用且可扩展的数据处理方式。Spark通过内存计算,显著提高了数据处理速度,尤其适合大规模数据分析。在这个新闻推荐系统中,Spark...

    apache-spark-benchmark:Apache Spark 框架的测试基准

    下面列出并简要说明了项目的一般配置参数。 全局配置属性。 这些配置参数是通用的,会影响项目中开发的所有测试。 apache.benchmark.config.global.master :我们想要运行基准的模式。 如果我们想要在本地执行

    Spark在Windows下的环境搭建方法

    首先需要准备JDK(Java Development Kit),接着安装Scala,之后下载Spark本身,并设置好系统变量,最后为了更好地运行Spark环境,还需要配置Hadoop。 **JDK的安装和配置:** JDK是运行Java程序所必须的软件开发包...

    hadoop配置文件夹

    在使用PySpark时,通常需要配置Spark的相关属性,这可以通过创建一个`spark-defaults.conf`文件或在代码中通过`SparkConf()`对象来实现。这些配置包括: 1. **spark.master**:指定Spark运行的模式,如`local`...

    大数据平台概要设计说明书

    - **运行环境**:明确指出硬件和软件环境的要求,包括服务器配置、操作系统版本、中间件和第三方库等。 - **基本设计思路和处理流程**:采用分层架构设计,分为数据采集层、数据处理层、数据存储层和服务展示层等。...

    SparkMavenJava:Spark Maven Java项目

    SparkMavenJava的Spark Maven Java项目要执行spark作业,请运行以下命令替换{}中的属性。 ./bin/spark-submit --class org.spark.workingsample.WordCountSpark --properties-file {config file .conf} {jar file} {...

    anaconda案例:火花1.6.2-standalone-anaconda

    现在,我们详细说明如何使用Anaconda来设置和运行Spark 1.6.2 Standalone: 1. **安装Anaconda**:首先,你需要在你的计算机上安装Anaconda。访问Anaconda官网,根据你的操作系统下载并安装最新版本。 2. **创建新...

    OOZIE 配置和调度流程(1).doc

    下面是 OOZIE 配置和调度流程的详细知识点: 1. OOZIE 命令: OOZIE 提供了多种命令来管理和调度作业,包括: * 提交并执行作业:oozie job -oozie http://localhost:11000/oozie -config job.properties -run * ...

    winutils.exe+hadoop.dll

    在Spark的配置中,添加或修改`spark.master`属性,根据你的需求设置为本地模式(如`local[*]`)或其他集群模式。 5. **验证配置**:重新运行Spark程序,如果错误消除,说明配置成功。如果没有,可能需要检查`...

    Talend_Components_RG_7.0.1_EN.pdf

    在Talend Components Reference Guide 7.0.1中详细介绍了Talend 7.0.1版本中各组件的使用方法,包括标准属性配置、相关场景示例以及如何利用组件完成特定的数据处理任务。Talend是一个开源的数据集成工具,广泛应用...

Global site tag (gtag.js) - Google Analytics