讨论Spark的配置监控和性能优化

作者: 云计算机网 分类: 云计算知识 发布时间: 2019-03-17 15:51


讨论Spark的配置监控和性能优化(某课程笔记)

上完这节课以后,你将能够描述集群的概念
通过修改Spark的属性,环境变量,或者是日志属性来配置Spark
使用Web端界面,以及各种不同的外部工具来监控Spark和应用程序


在Spark集群中有三种主要的组成部分。驱动程序,是放置主程序中SparkContext的地方,要运行一个集群,你需要一个集群管理器
它可以是单机版的集群管理器,也可以是 Mesos 或者 Yarn
而worker节点,就是放置执行器的地方



执行器,是运行计算和储存应用程序数据的地方。SparkContext以JAR或者Python文件
的形式向每个执行器发送应用程序。最终,它向每个执行器发送任务并运行

因为驱动程序在集群上调配任务,它应该在相同的本地网络中

的woker节点运行。如果要向集群发送远端请求


最好使用一个RPC,并且从附近的节点提交操作

我们前面提到三个支持的集群管理器

对于Spark的配置,主要有三个主要的地方


Spark属性,你可以用SparkConf对象或者通过Java系统属性来设置应用程序的参数
环境变量,你可以用它们来设置每一个机器的设定,比如IP地址这是通过配置每一个节点上的conf/spark-env.sh脚本实现的
对于日志属性,它可以通过log4j.propertieis来进行设置
你可以选择修改目前位于SPARK_HOME/conf目录下的默认配置目录设定SPARK_CONF_DIR环境变量并且在这个目录下提供你的配置文件




这里有两种方法来设定Spark属性:
第一种方法是通过SparkConf对象来传递应用程序属性
第二种方法是动态地设置Spark的属性。Spark允许你在创建一个SparkContext的时候传递一个空的SparkConf
然后,在运行时用 “—master” 或者 “—conf” 参数命令行选项来提供设置值


你可以运行spark-submit脚本的时候,通过“—-help”来查看各种选项
另一种设定Spark属性的方法是在spark-defaults.conf文件里设置
spark-submit脚本会从你的文件中读取这些配置
你可以在应用程序的默认端口为4040的Web客户端上查看Spark属性


最后我想提到的一件注意事项,直接SparkConf上设置的属性具有最高的优先级
spark-submit或者spark-shell是第二优先级,最后是spark-default.conf文件里的设置。


监控Spark应用程序有三种方法:第一种方法是使用基于Web的客户端,它的默认端口是4040
在应用程序运行期间,你可以在这个客户端上获得Spark实时监控信息
如果你希望在程序运行完以后查看这些信息,你需要在应用程序开始之前把spark.eventlog.enabled属性设定为true,这样所有运行的信息就会被储存起来

网站内容禁止违规转载,转载授权联系中国云计算网