网易首页 > 网易号 > 正文 申请入驻

Spark1.6官方文档译文系列四 | 在YARN上运行Spark

0
分享至

温馨提示

本公众号专注分享大数据技术Spark、Hadoop等,如果你是初学者、或者是自学者,这里都是可以提供免费资料,也可以加小编微信号:wusc35,小编可以给你学习上、工作上一些建议以及可以给你提供免费的学习资料!学习技术更重要的是在于学习交流!等你来...

注:本公众号纯属个人公益号!免费分享所有学习资料!希望朋友多多支持!多多关注!

《Spark 官方文档》在YARN上运行Spark

对 YARN (Hadoop NextGen) 的支持是从Spark-0.6.0开始的,后续的版本也一直持续在改进。

在YARN上启动

首先确保 HADOOP_CONF_DIR 或者 YARN_CONF_DIR 变量指向一个包含Hadoop集群客户端配置文件的目录。这些配置用于读写HDFS和连接YARN资源管理器(ResourceManager)。这些配置应该发布到YARN集群上所有的节点,这样所有的YARN容器才能使用同样的配置。如果这些配置引用了Java系统属性或者其他不属于YARN管理的环境变量,那么这些属性和变量也应该在Spark应用的配置中设置(包括驱动器、执行器,以及其AM【运行于client模式时的YARN Application Master】)

在YARN上启动Spark应用有两种模式。在cluster模式下,Spark驱动器(driver)在YARN Application Master中运行(运行于集群中),因此客户端可以在Spark应用启动之后关闭退出。而client模式下,Spark驱动器在客户端进程中,这时的YARN Application Master只用于向YARN申请资源。

与独立部署( Spark standalone )或 在Mesos 集群中不同,YARN的master地址不是在–master参数中指定的,而是在Hadoop配置文件中设置。因此,这种情况下,–master只需设置为yarn。

以下用cluster模式启动一个Spark应用:

\$ ./bin/spark-submit --class path.to.your.Class \\ --master yarn \\ --deploy-mode cluster \\ [options] \\ <app jar> [app options]

例如:

\$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \\ --master yarn \\ --deploy-mode cluster \\ --driver-memory 4g \\ --executor-memory 2g \\ --executor-cores 1 \\ --queue thequeue \\ lib/spark-examples*.jar 10

以上例子中,启动了一个YARN客户端程序,使用默认的Application Master。而后SparkPi在Application Master中的子线程中运行。客户端会周期性的把Application Master的状态信息拉取下来,并更新到控制台。客户端会在你的应用程序结束后退出。参考“调试你的应用”,这一节说明了如何查看驱动器和执行器的日志。

要以client模式启动一个spark应用,只需在上面的例子中把cluster换成client。下面这个例子就是以client模式启动spark-shell:

\$ ./bin/spark-shell --master yarn --deploy-mode client

增加其他JAR包

在cluster模式下,驱动器不在客户端机器上运行,所以SparkContext.addJar添加客户端本地文件就不好使了。要使客户端上本地文件能够用SparkContext.addJar来添加,可以用–jars选项:

\$ ./bin/spark-submit --class my.main.Class \\ --master yarn \\ --deploy-mode cluster \\ --jars my-other-jar.jar,my-other-other-jar.jar my-main-jar.jar app_arg1 app_arg2 准备

在YARN上运行Spark需要其二进制发布包构建的时候增加YARN支持。二进制发布包可以在这里下载:downloads page 。

想要自己编译,参考这里: Building Spark(地址:http://spark.apache.org/docs/latest/building-spark.html)

配置

大多数配置,对于YARN或其他集群模式下,都是一样的。详细请参考这里: configuration page。

以下是YARN上专有的配置项。

调试你的应用

在YARN术语集中,执行器和Application Master在容器(container)中运行。YARN在一个应用程序结束后,有两种处理容器日志的模式。如果开启了日志聚合(yarn.log-aggregation-enable),那么容器日志将被复制到HDFS,并删除本地日志。而后这些日志可以在集群任何节点上用yarn logs命令查看:

yarn logs -applicationId <app ID>

以上命令,将会打印出指定应用的所有日志文件的内容。你也可以直接在HDFS上查看这些日志(HDFS shell或者HDFS API)。这些目录可以在你的YARN配置中指定(yarn.nodemanager.remote-app-log-dir和yarn.nodemanager-remote-app-log-dir-suffix)。这些日志同样还可以在Spark Web UI上Executors tab页查看。当然,你需要启动Spark history server和 MapReduce history server,再在 yarn-site.xml 中配置好 yarn.log.server.url。Spark history server UI 将把你重定向到MapReduce history server 以查看这些聚合日志。

如果日志聚合没有开启,那么日志文件将在每台机器上的 YARN_APP_LOGS_DIR 目录保留,通常这个目录指向 /tmp/logs 或者 \$HADOOP_HOME/log/userlogs(这取决于Hadoop版本和安全方式)。查看日志的话,需要到每台机器上查看这些目录。子目录是按 application ID 和 container ID来组织的。这些日志同样可以在 Spark Web UI 上 Executors tab 页查看,而且这时你不需要运行MapReduce history server。

如果需要检查各个容器的启动环境,可以先把 yarn.nodemanager.delete.debug-delay-sec 增大(如:36000),然后访问应用缓存目录yarn.nodemanager.local-dirs,这时容器的启动目录。这里包含了启动脚本、jar包以及容器启动所用的所有环境变量。这对调试 classpath 相关问题尤其有用。(注意,启用这个需要管理员权限,并重启所有的node managers,因此,对托管集群不适用)

要自定义Application Master或执行器的 log4j 配置,有如下方法:

通过spark-submit –files 上传一个自定义的 log4j.properties 文件。

在 spark.driver.extraJavaOptions(对Spark驱动器)或者 spark.executor.extraJavaOptions(对Spark执行器)增加 -Dlog4j.configuration=<location of configuration file>。注意,如果使用文件,那么 file: 协议头必须显式写上,且文件必须在所节点上都存在。

更新 \${SPARK_CONF_DIR}/log4j.properties 文件以及其他配置。注意,如果在多个地方都配置了log4j,那么上面其他两种方法的配置优先级比本方法要高。

注意,第一种方法中,执行器和Application Master共享同一个log4j配置,在有些环境下(AM和执行器在同一个节点上运行)可能会有问题(例如,AM和执行器日志都写入到同一个日志文件)如果你需要引用YARN放置日志文件的路径,以便YARN可以正确地展示和聚合日志,请在log4j.properties文件中使用spark.yarn.app.container.log.dir。例如,log4j.appender.file_appender.File=\${spark.yarn.app.container.log.dir}/spark.log 。对于流式应用,可以配置RollingFileAppender,并将文件路径设置为YARN日志目录,以避免磁盘打满,而且这些日志还可以利用YARN的日志工具访问和查看。

Spark属性


要提示

对CPU资源的请求是否满足,取决于调度器如何配置和使用。

cluster模式下,Spark执行器(executor)和驱动器(driver)的local目录都由YARN配置决定(yarn.nodemanager.local-dirs);如果用户指定了spark.local.dir,这时候将被忽略。在client模式下,Spark执行器(executor)的local目录由YARN决定,而驱动器(driver)的local目录由spark.local.dir决定,因为这时候,驱动器不在YARN上运行。

选项参数 –files和 –archives中井号(#)用法类似于Hadoop。例如,你可以指定 –files localtest.txt#appSees.txt,这将会把localtest.txt文件上传到HDFS上,并重命名为 appSees.txt,而你的程序应用用 appSees.txt来引用这个文件。

当你在cluster模式下使用本地文件时,使用选项–jar 才能让SparkContext.addJar正常工作,而不必使用 HDFS,HTTP,HTTPS或者FTP上的文件。

转载声明:本文转载自「并发编程网 – ifeve.com」

欢迎关注,获取更多收获

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
贾浅浅《开花》被获得全国诗歌一等奖的诗,写出了女性的原始欲

贾浅浅《开花》被获得全国诗歌一等奖的诗,写出了女性的原始欲

读睡
2026-02-20 16:29:43
瓜帅崩溃?英超最新夺冠概率:阿森纳83.3%,曼城16.6%,有15队0%

瓜帅崩溃?英超最新夺冠概率:阿森纳83.3%,曼城16.6%,有15队0%

风过乡
2026-03-02 20:17:54
1980年,王光美拿过追悼会名单,狠狠划掉几人,却添上个正在挨整的将军:他对咱家有恩

1980年,王光美拿过追悼会名单,狠狠划掉几人,却添上个正在挨整的将军:他对咱家有恩

源溯历史
2026-01-07 19:28:08
年轻人的消费激情,在折扣店里生动体现

年轻人的消费激情,在折扣店里生动体现

阿尔法工场
2026-03-02 21:20:05
一觉醒来,560名美军伤亡航母被炸,特朗普知道事情闹大口风突变

一觉醒来,560名美军伤亡航母被炸,特朗普知道事情闹大口风突变

肖兹探秘说
2026-03-03 14:47:14
谢贤前女友CoCo大曝张柏芝三胎生父内幕,无底线爆料,账号被封!

谢贤前女友CoCo大曝张柏芝三胎生父内幕,无底线爆料,账号被封!

娱乐团长
2026-03-03 13:00:37
现货黄金回落至5300美元/盎司下方 现货白银日内大跌4%

现货黄金回落至5300美元/盎司下方 现货白银日内大跌4%

证券时报
2026-03-03 14:31:03
油市“末日时钟”: 中东产油国将被迫停产 油价冲击200美元?

油市“末日时钟”: 中东产油国将被迫停产 油价冲击200美元?

每日经济新闻
2026-03-02 21:42:28
从国宴到夜宵摊:国产汽水如何从统治者沦为乞丐

从国宴到夜宵摊:国产汽水如何从统治者沦为乞丐

富贵说
2026-02-27 16:40:22
农妇去北京找丈夫被警卫阻拦,当说出丈夫名字后,被紧急送去见首长

农妇去北京找丈夫被警卫阻拦,当说出丈夫名字后,被紧急送去见首长

睡前讲故事
2025-04-25 15:11:25
汪小菲将辞退月嫂,小杨阿姨仍未复工曝处境,老公跑滴滴还房贷!

汪小菲将辞退月嫂,小杨阿姨仍未复工曝处境,老公跑滴滴还房贷!

古希腊掌管月桂的神
2026-03-03 11:30:22
3分钟4失误!哈登替身首秀闹麻了…

3分钟4失误!哈登替身首秀闹麻了…

柚子说球
2026-03-03 14:26:50
突发!陈熠落选世界杯!马琳作出解释,还有一个坏消息,王励勤也无奈

突发!陈熠落选世界杯!马琳作出解释,还有一个坏消息,王励勤也无奈

好乒乓
2026-03-03 14:49:46
内贾德,遇袭身亡

内贾德,遇袭身亡

新华社
2026-03-01 22:13:51
经纪公司エイトマン(8MAN)的顶级新秀「三浦奈々」宣布出道片商!

经纪公司エイトマン(8MAN)的顶级新秀「三浦奈々」宣布出道片商!

孤独的独角兽影视
2026-03-03 09:10:08
秦琼临终前告诫后人:罗家枪法天下无双,但千万别学程咬金那三招

秦琼临终前告诫后人:罗家枪法天下无双,但千万别学程咬金那三招

铭记历史呀
2026-03-03 04:18:17
中方奉陪到底!访华迟迟没回复,特朗普掀桌了,要废除中国一地位

中方奉陪到底!访华迟迟没回复,特朗普掀桌了,要废除中国一地位

古事寻踪记
2026-03-03 08:35:17
普通人究竟要有多少存款才能躺平?评论区太务实了!

普通人究竟要有多少存款才能躺平?评论区太务实了!

另子维爱读史
2026-02-26 21:28:50
李莉没有说过“伊朗半小时灭以色列”,

李莉没有说过“伊朗半小时灭以色列”,

雪中风车
2026-03-01 08:11:49
反转!伊朗杀手锏威力惊人,内塔尼亚胡下落不明,以色列本土告急

反转!伊朗杀手锏威力惊人,内塔尼亚胡下落不明,以色列本土告急

军机Talk
2026-03-03 10:03:02
2026-03-03 15:51:00
大数据之谜
大数据之谜
专注分享大数据技术
43文章数 396关注度
往期回顾 全部

科技要闻

拥抱AI的"牛马":边提效边自嘲"自费"上班

头条要闻

斯塔默:我们都记得伊拉克战争所犯的错误

头条要闻

斯塔默:我们都记得伊拉克战争所犯的错误

体育要闻

35轮后积分-7,他们遭遇史上最早的降级

娱乐要闻

谢娜霸气护夫:喊话薛之谦给张杰道歉

财经要闻

借壳上市纳斯达克?小杨哥海外"洗白"之路

汽车要闻

长安汽车2月销量151922辆 环比逆势增长12.8%

态度原创

亲子
艺术
手机
教育
家居

亲子要闻

本来只准备留一条,收到手后决定都留下来,毕竟两条也不到80块钱 杨雪呀

艺术要闻

Nihad Aghazada:当代阿塞拜疆画家

手机要闻

vivo X300 Ultra全球首发400mm蔡司增距镜,将推全新专业摄影手柄

教育要闻

小升初简算:98x98÷99,必考题

家居要闻

万物互联 享科技福祉

无障碍浏览 进入关怀版