Yarn Client模式下启动Spark的配置问题

由于YARN client模式对用户不直接暴露用于提交YARN程序的辅助程序,因此许多参数是通过环境变量来设置的,可以在spark-env.sh中进行如下配置:

spark-env.sh

这是我的spark-env.sh里面进行的相关配置,对于启动Spark最关键的前三项设置​​。

HADOOP_HOME:设置hadoop的安装目录;

HADOOP_CONF_DIR:设置hadoop配置文件的目录;

YARN_CONF_DIR:设置yarn配置文件的目录,同上;​

在我通过bin/spark-submit --master yarn-client.....提交我的应用程序时,出现了如下诊断错误,导致应用程序状态失败,异常退出:

Diagnostics

经过查找资料和配置分析, 找到了问题的根源。从诊断报告可以看出主要是container的虚拟内存的使用量超出的原因,可以通过(1)关闭虚拟内存使用检查(2)增加虚拟内存与物理内存的比例值。具体参数在yarn-site.xml中完成:

yarn-site.xml

​将修改后的配置文件发送给集群中的各个节点,重启集群后,发现可以成功通过yarn-client模式启动spark。

成功提交作业后,HDFS的${yarn.app.mapreduce.am.staging-dir}/${username}/.sparkStaging下面,就会产生两个jar包,一个是spark-assembly-*.jar,另一个是提交执行的jar包​:

上传jar包到HDFS

​​​作业执行完毕之后,所在目录的jar包会自动被删除,可以通过在spark-defaults.conf中设置保留jar包:

spark-defaults.conf
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容