相关资料:Spark属性配置  http://www.cnblogs.com/chengxin1982/p/4023111.html

本文出处:转载自过往记忆(http://www.iteblog.com/)
本文链接地址: 《Spark三种属性配置方式详细说明》(http://www.iteblog.com/archives/1140)

随着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对。如下:

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

动态加载Spark属性

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

val sc = new SparkContext(new SparkConf()) 

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

./bin/spark-submit --name "My app"
--master local[4]
--conf spark.shuffle.spill=false
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails

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对,中间可以是用空格进行分割,也可以直接用等号进行分割。如
下:

spark.master            spark://iteblog.com:7077
spark.executor.memory 512m
spark.eventLog.enabled true
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文件来得到。
  在后期文章中,我将逐个的介绍Spark中各个参数的含义。欢迎大家关注。
  关于应用程序相关的属性设置解释:《Spark配置属性详解(1)》

Spark学习笔记-三种属性配置详细说明【转】的更多相关文章

  1. [ 原创 ]学习笔记-三种向ListView中填充简单文本的方法

    Android 中ListView是很重要的一块内容 掌握ListView的基本用法 对学习安卓起着举足轻重的作用 今天就介绍一下三种向ListView 填充简单文本的方法 填充其他数据类型的用法之后 ...

  2. Spring boot 官网学习笔记 - Spring Boot 属性配置和使用(转)-application.properties

    Spring Boot uses a very particular PropertySource order that is designed to allow sensible overridin ...

  3. Spark学习笔记2(spark所需环境配置

    Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...

  4. ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心

    作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...

  5. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  6. angular学习笔记(三十)-指令(2)-restrice,replace,template

    本篇主要讲解指令中的 restrict属性, replace属性, template属性 这三个属性 一. restrict: 字符串.定义指令在视图中的使用方式,一共有四种使用方式: 1. 元素: ...

  7. Linux之VMWare下Centos7的三种网络配置过程

    Linux之VMWare下Centos7的三种网络配置过程 环境: 虚拟软件:VMWare 14.0 客户机:windows 10 虚拟机:centos 7 VMware三种网络连接方式 Bridge ...

  8. Linux的VMWare下Centos7的三种网络配置过程(网络二)

    Linux之VMWare下Centos7的三种网络配置过程 环境:虚拟软件:VMWare 14.0客户机:windows 10虚拟机:centos 7 VMware三种网络连接方式 Bridge(桥接 ...

  9. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

随机推荐

  1. css3 之表格隔行分色显示

    <html> <head> <title></title> <style type="text/css"> table{ ...

  2. Android修改XML文件

    最近在项目中需要使用XML记录数据,网上这方面的文章较少,记录一下 使用DOM方式 /** * 追加内容到XML文档 * @param instructions * @throws ParserCon ...

  3. atof

    So given a string like "2.23" your function should return double 2.23. This might seem eas ...

  4. sendmsg: no buffer space available

    今天在将项目从虚拟机上移植到真实机器上面的时候,发现问题,总是不成功,最后判断是userspace的程序没有向kernel发送消息成功,因为无法触发kernel的行为,但是userspace显示正常. ...

  5. linux 切换用户之后变成-bash-x.x$的解决方法

    我们平时在linux下切换用户后命令行为什么会变成-bash-3.2$呢,我们来分析一下,这就是跟linux的机制有关联了,因为在linux下每次通过useradd创建新的用户时,都会将所有的配置文件 ...

  6. thread block grid

    grid里面包含block,block里面包含thread grid里面所有的block都是同样大小的,  每个block最多可以有1024个thread. blockDim表示一个block里面th ...

  7. Android摇一摇振动效果Demo

    前言     在微信刚流行的时候,在摇一摇还能用来那啥的时候,我也曾深更半夜的拿着手机晃一晃.当时想的最多的就是.我靠,为神马摇一下须要用这么大的力度,当时我想可能腾讯认为那是个人性的设计.后来才发觉 ...

  8. 内部类之.this&&.new

    一..this 我们都知道this是指当前类中的对象本身,但是在内部类中需要指明外部类时,this不再起作用,那应该怎么做呢?下面,让我们看看: public class DotThis { void ...

  9. Android Studio设置Eclipse风格快捷键

    Android Studio的1.1.0版本都发布了,ADT也不会再更新了,童鞋们还有理由不换嘛,不要死守着Eclipse了,Android Studio是你唯一的也是最好的选择.什么?用Eclips ...

  10. BFC——块级格式上下文

    BFC中的B指的是block,对应的还有IFC,I指的是inline.对于BFC的理解可以参考层叠上下文.页面中,盒子的排布规则,是生效在对应的BFC中.两个BFC中的布局互不影响.页面的本身的根本身 ...