博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SparkConf 是什么?有什么作用?
阅读量:4072 次
发布时间:2019-05-25

本文共 1345 字,大约阅读时间需要 4 分钟。

前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见

正文

为什么需要 SparkConf?

任何优秀的软件或服务都会提供一些配置参数,这些配置参数有些是内置的,有些则是可以由用户配置的。

对于熟悉 Java 的开发人员来说,对 JVM 进行性能调优是一个经常需要面对的工作,这个过程常常伴随着各种 JVM 参数的调整与测试。

之所以将这些参数交给具体的开发人员去调整,是因为软件或服务的提供者也无法保证给定的默认参数是最符合用户应用场景与软硬件环境的。

举一个简单的例子:当用户的 QPS 发生变化时,对于 Web 服务的 JVM 来说也应当相应调整内存的大小或限制。

Spark 作为一款优秀的计算框架,也配备了各种各样的系统配置参数。

SparkConf 是什么?

SparkConf 是 Spark 的配置类,这个类在 Spark 的历史版本中已经存在很久了,Spark 中的每一个组件都直接或者间接地使用着它所存储的属性,这些属性都存储在如下的数据结构中。

private val settings = new ConcurrentHashMap[String, String]()

由以上代码的泛型可以看出, Spark 的所有配置,无论是 key 还是 value 都是 String 类型。

Spark 的配置通过以下 3 种方式获取

  1. 来源于系统参数(即使用 System.getProperties 获取的属性)中以 spark. 作为前缀的那部分属性;
  2. 使用 SparkConf 的 API 进行设置;
  3. 从其他 SparkConf 中克隆。

SparkConf 源码类注释 (3.2.0-SNAPSHOT)

/** * Spark应用程序的配置。 *  * 用于将各种Spark参数设置为键值对。  *  * 大多数情况下,使用 new SparkConf() 创建一个SparkConf对象,它也会从应用程序中设置的任何 spark.* 形式的 Java 系统属性来加载值。 *  * 在这种情况下,直接在SparkConf对象上设置的参数优先于系统属性。  *  * 对于单元测试,可以调用 new SparkConf(false) 跳过加载外部设置并获得相同的配置,而不管系统属性是什么。  *  * 此类中的所有 setter 方法都支持链式语法。 *  * 例如,可以编写 new SparkConf().setMaster(“local”).setAppName(“My app”)。  *  * * @param loadDefaults 是否从Java系统属性加载值 *                      * @note 一旦SparkConf对象被传递给Spark,它就会被克隆,并且用户不能再修改它。Spark不支持在运行时修改配置。 *        */class SparkConf(loadDefaults: Boolean) extends Cloneable with Logging with Serializable

转载地址:http://rkgji.baihongyu.com/

你可能感兴趣的文章
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
支付宝生活号服务号 用户信息获取 oauth2 登录对接 springboot java
查看>>
CodeForces #196(Div. 2) 337D Book of Evil (树形dp)
查看>>
uva 12260 - Free Goodies (dp,贪心 | 好题)
查看>>
uva-1427 Parade (单调队列优化dp)
查看>>
【设计模式】学习笔记14:状态模式(State)
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
斯坦福大学机器学习——因子分析(Factor analysis)
查看>>
项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
查看>>
linux对于没有写权限的文件如何保存退出vim
查看>>
Windows下安装ElasticSearch6.3.1以及ElasticSearch6.3.1的Head插件
查看>>
IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
查看>>
【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
查看>>
ssh 如何方便的切换到其他节点??
查看>>
JSP中文乱码总结
查看>>
Java-IO-File类
查看>>
Java-IO-java的IO流
查看>>
Java-IO-输入/输出流体系
查看>>
Java实现DES加密解密
查看>>
HTML基础
查看>>