sparkonyarn遇到的几个问题_第1页
sparkonyarn遇到的几个问题_第2页
sparkonyarn遇到的几个问题_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、sparkonyarn 遇到的几个问题1 概述Spark 的 on Yarn 模式,其资源分配是交给 Yarn 的 ResourceManager来进行管理的,但是目前的 Spark 版本, Application 日志的 查看,只能通过 Yarn 的 yarn logs 命令实现。在部署和运行 Spark Application 的过程中,如果不注意一些 小的细节,也许会导致一些问题的出现。2 防火墙部署好 Spark 的包和配置文件, on yarn 的两种模式都无法运 行,在 NodeManager 端的日志都是说 Connection Refused ,连接不上 Driver 所在的客

2、户端节点,但是客户端的 80 端 口可以正常访问! 检查防火墙,果然客户端只开启的对 80 端口的访问,其他都禁止了! 如果你的程序在运行的时候也有类似连接被拒绝的情况,最 好也是先检查下防火墙的配置!3 Spark Driver 程序 host 的指定部署完 Spark 后,分别使用 yarn-cluster 模式和 yarn-client 模式运行 Spark 自带的计算 pi 的示例Spark 的一些配置文件除了一些基本属性外,均未做配置, 结果运行的时候两种运行模式出现了不同的状况。 yarn-cluster 模式可以正常运行, yarn-client 模式总是运行失 败。查看 Res

3、ourceManager、 NodeManager 端的日志,发现程 序总是找不到 ApplicationMaster ,这就奇怪了!并且,客户 端的 Driver 程序开启的端口, 在 NodeManager 端访问被拒绝! 非 Spark 的其他 MR 任务,能够正常执行。检查客户端配置文件,发现原来在客户端的 /etc/hosts 文件中,客户端的一个 IP 对应了多个 Host,Driver 程序会默 认去取最后对应的那个Host,比如是hostB,但是在NodeManager端是配置的其他 Host, hostA,所以导致程序 无法访问。为了不影响其他的程序使用客户端的Host列表,

4、这里在 Spark 配置文件 spark-defaults.conf中使用属性 spark.driver.host来指定 yarn-client 模式运行中和 Yarn 通信的 DriverHost ,此 时 yarn-client 模式可以正常运行。上面配置完了之后, 发现 yarn-cluster 模式又不能运行了! 想 想原因,肯定是上面那个配置参数搞的鬼,注释掉之后, yarn-cluster 模式可以继续运行。 原因是, yarn-cluster 模式下, spark 的入口函数是在客户端运行,但是 Driver 的其他功能 是在 ApplicationMaster 中运行的,上面的

5、那个配置相当于指 定了 ApplicationMaster 的地址,实际上的 ApplicationMaster 在 yarn-master 模式下是由 ResourceManager 随机指定的。4 on Yarn 日志的查看测试环境下,通过 yarn logs -applicationId xxx 可以查看运行结束的 Application 的日志, 但是搞到另一个环 境下发现使用上述命令查看日志时,总是提示如下信息:Logs not available at /tmp/nm/remote/logs/hadoop/logs/application_xxx_xxxLog aggregatio

6、n has not completed or is not enabled.去对应的 NodeManger 目录下,确实找不到日志文件。但是 /tmp/nm/remote/logs 却是在 yarn-site.xml 中指定了的目录, 这 个是对的,到底什么原因呢?难道是 Yarn 的日志聚集没有起日eu!ejuooj|nepQje6eueujepoujeAjesujeAdoopeqeqoede'6joOdNI 9乙J"巾 1/60 170-80-LOS6o|/uuu/ejep/ eje sjip 6o| poo6 ;uejn° - 00000_xxx_xxx_J9

7、uiejuooeuiejuoo o)s6o| 6uipeo|dri :|duu|o问ai66/6oidd/ uow6ai66e6o |je6eueujou!印 uocyo6eueujopoirOAJOSueAdoopei|oipede£o OdNI 9乙J"巾 1/60 170-80-LOS6o|/uuu/ejep/ eje sjip 6o| poo6 juejn° 'Z00000-L0_xxx_xxx_J9uiejuooou!印uoo o)s6o| 6uipeo|dri :|duu|o问ai66/6oidd/ uow6ai66e6o |je6eueujo

8、u!印 uocyo6eueujopoirOAJOSueAdoopei|oipede£o OdNI 9乙J"巾 1/60 170-80-LOS du4®soi|/xxxxxx_uonec)!|dde/s6o|/”eds/sbo|/oioujai/uju/duj# je xxx_xxx_uo!jeo!|dde ddeoj e|y-6o| ete6ej66e 6u屮印s :|dLU|Joie6ej66v6o-|ddvuone6ej66e6o |je6eueujou!印 uocyo6eueujopoirOAJOSueAdoopei|oipede£o OdNI &

9、#163;L97l7L:60 M)七0FL0乙 :孚口阴 uoneoi|ddvJeBeue|/|epoN2宙助xecutor: Deleting path : /data/nm/log/application_xxx_xxx2014-08-04 09:14:47,607 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.l ogaggregation.AppLogAggregatorImpl: Finished aggregate log-file for app application_xxx_xxx可见,日志聚集确实起作用了,但是为什么通过命令不能查 看!猛然见看到日志中“ /tmp/nm/remote/logs/spark/logs/ application_xxx_xxx/hostB.tmp”,日志的路径有问题, 在使用 yarn logs 命令查看的时候, 用的是 hadoop 用户,实际 Spark Application 的提交执行用的 是 spark 用户,而 yarn logs 命令默认去找的是当前用户的路 径,这就是查看不到日志的原因。切换到spark 用户再查看,日志终于出来了!5 小节问题是比较严重, Application 都直接无法运行了,但是引起 问题的原

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论