• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > Spark三种属性配置方式详解

Spark三种属性配置方式详解

作者:小狼_百度 字体:[增加 减小] 来源:互联网

本文主要包含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对。如下:

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

spark.master      spark://iteblog.com:7077
spark.executor.memory  512m
spark.eventLog.enabled true
spark.serializer    org.apache.spark.serializer.KryoSerializ

每个值将作为一个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实现K-Means算法代码示例、浅谈七种常见的Hadoop和Spark项目案例、Spark的广播变量和累加器使用方法代码示例等,有什么问题可以随时留言,小编会及时回复大家的。

您可能感兴趣的文章:

  • 如何为Spark Application指定不同的JDK版本详解
  • Spark整合Mongodb的方法
  • 浅谈Spark RDD API中的Map和Reduce
  • Spark实现K-Means算法代码示例
  • spark之Standalone模式部署配置详解
  • SparkGraphx计算指定节点的N度关系节点源码
  • 浅谈七种常见的Hadoop和Spark项目案例
  • Spark调度架构原理详解
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 孙其功陪你学之——Spark MLlib之K-Means聚类算法,mllibk-means
  • 浅谈Spark RDD API中的Map和Reduce
  • Spark三种属性配置方式详解
  • Spark实现K-Means算法代码示例
  • 浅谈七种常见的Hadoop和Spark项目案例
  • 使用docker快速搭建Spark集群的方法教程

相关文章

  • VMware下ubuntu扩展磁盘空间的方法
  • 详解使用 Docker 构建 LNMP 环境
  • Docker如何进入启动容器
  • 云中的开源KVM是什么样?
  • 在Mac OS X安装Docker教程
  • 为VMware的多台虚拟机绑定IP地址的方法
  • 在Docker容器中使用iptables时的最小权限的开启方法
  • KVM虚拟化:选REHL还是RHEV?
  • 构建一个简单的CaaS系统
  • VMWare Workstation虚拟机访问外网的图文教程

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 详解Docker容器运行多条命令(supervisor)
    • VMware虚拟机安装Fedora 27 Workstation正式版(图文)
    • Centos7安装docker compse踩过的坑及解决方法
    • 详解centos7 docker1.12安装私有仓库
    • 在VMware虚拟机下安装Linux的图文教程(高级安装)
    • Xenserver迁移所有虚拟机到VMware vSphere 6.0
    • CentOS 一键安装Openstack详细介绍
    • KVM虚拟化(一)——KVM虚拟机的介绍与简单使用
    • 详解为 Docker 设置代理
    • VMware12和CentOS7共享文件夹问题解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有