我一直在运行Spark应用程序,其中一个阶段失败了。大约同时,与以下日志相似的日志中出现在"资源管理器日志"中。
<data> <time>,988 INFO org.apache.hadoop.yarn.server.resourcemanager.RMAudtiLogger: User=<user> OPERATION=AM Released Container TARGET=SchedulerApp RESULT=SUCCESS APPID=<appid> CONTAINERID=<containerid>
我的应用程序使用的纱线多于分配,但是它已经运行了几天。我期望发生的事情是其他应用程序开始并希望使用集群,资源经理杀死了我的一个容器,将资源提供给其他容器。
任何人都可以帮助我验证我的假设和/或将我指向描述资源管理器输出的日志消息的文档?
编辑:如果我正在运行的纱线版本有助于2.6.0-cdh5.4.9
有关OPERATION=AM Released Container
的INFO
消息来自org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.fair.fsappattempt。我对代码的模糊了解告诉我,这是由于成功的容器释放,这意味着Spark应用程序的应用程序管理员成功完成了。
我刚刚回答了一个类似的问题,为什么由于拒绝连接而导致的YARN上的Spark应用程序失败了?(您的几乎是重复的)。
fetchfailedexception exception当还原任务(用于洗牌依赖性)无法取出shuffle块时会引发异常。
FetchFailedException
的根cause
通常是因为遗忘者(带有换行块的块手)丢失(即不再可用),因为:
- 可以抛出
OutOfMemoryError
(又名 oomed )或其他一些未经手的例外。 - 与Spark应用程序的执行者管理工人的集群管理器,例如纱线,执行容器内存限制,并最终由于使用过多而决定杀死执行者。
您应该使用Web UI,Spark历史服务器或群集特定的工具(例如YARN LOGS -APPLICATIONID for HADOOP YARN)查看Spark应用程序的日志(您的情况)。
解决方案通常是为了调整您的火花应用程序的内存。