yarn RM crash问题一例 推荐 原创 菜菜光 2014-07-08 22:59:06 博主文章分类:hadoop ©著作权 文章标签 rm yarn crash 文章分类 Yarn 大数据 ©著作权归作者所有:来自51CTO博客作者菜菜光的原创作品,请联系作者获取转载授权,否则将追究法律责任 今天收到线上的resource manager报警:报错信息如下:2014-07-08 13:22:54,118 INFO org.apache.hadoop.yarn.util.AbstractLivelinessMonitor: Expired:xxxx:53356 Timed out after 600 secs 2014-07-08 13:22:54,118 INFO org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl: Deactivating Node xxxx:53356 as it is now LOST 2014-07-08 13:22:54,118 INFO org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl: xxxx:53356 Node Transitioned from UNHEALTHY to LOST 2014-07-08 13:22:54,118 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error in handling event type NODE_REMOVED to the scheduler java.lang.NullPointerException at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.removeNode(FairScheduler.java:715) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.handle(FairScheduler.java:974) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.handle(FairScheduler.java:108) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher$EventProcessor.run(ResourceManager.java:378) at java.lang.Thread.run(Thread.java:662) 2014-07-08 13:22:54,118 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Exiting, bbye.. 2014-07-08 13:22:54,119 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Size of event-queue is 1000 2014-07-08 13:22:54,119 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Size of event-queue is 2000这是一个bug,bug id:https://issues.apache.org/jira/browse/YARN-502根据bug的描述,是在rm删除标记为UNHEALTHY的nm的时候可能会触发bug(第一次已经删除,后面删除再进行删除操作时就会报错)。根据堆栈信息来看代码:org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler: protected ResourceScheduler scheduler; private final class EventProcessor implements Runnable { // 开启一个EventProcessor 线程,对event进行处理 @Override public void run() { SchedulerEvent event; while (!stopped && !Thread.currentThread ().isInterrupted()) { try { event = eventQueue.take(); // 从event queue里面拿出event } catch (InterruptedException e) { LOG.error("Returning, interrupted : " + e); return; // TODO: Kill RM. } try { scheduler.handle(event); //处理event } catch (Throwable t) { // cache event的异常 // An error occurred, but we are shutting down anyway. // If it was an InterruptedException, the very act of // shutdown could have caused it and is probably harmless. if (stopped ) { LOG.warn("Exception during shutdown: " , t); break; } LOG.fatal("Error in handling event type " + event.getType() //根据日志来看,这里获取的event.getType()为 NODE_REMOVED + " to the scheduler", t); if (shouldExitOnError && !ShutdownHookManager.get().isShutdownInProgress()) { LOG.info("Exiting, bbye.." ); System. exit(-1); } } } } }这里可以看到可以通过shouldExitOnError可以控制RM线程是否退出。private boolean shouldExitOnError = false; // 初始设置为false @Override public synchronized void init(Configuration conf) { // 在做初始化时,可以通过配置文件获取 this. shouldExitOnError = conf.getBoolean(Dispatcher.DISPATCHER_EXIT_ON_ERROR_KEY, Dispatcher.DEFAULT_DISPATCHER_EXIT_ON_ERROR); // 参数在Dispatcher类中定义 super.init(conf); }org.apache.hadoop.yarn.event.Dispatcher类: public interface Dispatcher { // Configuration to make sure dispatcher crashes but doesn't do system-exit in // case of errors. By default, it should be false, so that tests are not // affected. For all daemons it should be explicitly set to true so that // daemons can crash instead of hanging around. public static final String DISPATCHER_EXIT_ON_ERROR_KEY = "yarn.dispatcher.exit-on-error"; // 控制参数 public static final boolean DEFAULT_DISPATCHER_EXIT_ON_ERROR = false; // 默认为false EventHandler getEventHandler(); void register(Class<? extends Enum> eventType, EventHandler handler); }在ResourceManager类的init函数中: @Override public synchronized void init(Configuration conf) { this. conf = conf; this. conf.setBoolean(Dispatcher.DISPATCHER_EXIT_ON_ERROR_KEY, true); // 这个值的默认值为true了(覆盖了Dispatcher类中的DEFAULT设置)即默认在遇到dispather的错误时,会退出。遇到错误是否退出可以由配置参数yarn.dispatcher.exit-on-error决定。不过这个改动影响比较大,最好还是不要设置,还是打patch来解决吧。官方的patch也比较简单,即在rmnm时进行一次判断,防止二次删除操作:--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java @@ -501,8 +501,13 @@ public DeactivateNodeTransition(NodeState finalState) { public void transition(RMNodeImpl rmNode, RMNodeEvent event) { // Inform the scheduler rmNode.nodeUpdateQueue.clear(); - rmNode.context.getDispatcher().getEventHandler().handle( - new NodeRemovedSchedulerEvent(rmNode)); + // If the current state is NodeState.UNHEALTHY + // Then node is already been removed from the + // Scheduler + if (!rmNode.getState().equals(NodeState.UNHEALTHY)) { + rmNode.context.getDispatcher().getEventHandler() + .handle( new NodeRemovedSchedulerEvent(rmNode)); + } rmNode.context.getDispatcher().getEventHandler().handle( new NodesListManagerEvent( NodesListManagerEventType.NODE_UNUSABLE, rmNode)); 赞 收藏 评论 分享 举报 上一篇:hadoop Unexpected end of input stream 错误 下一篇:hbase java sample 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 处理Microsoft Entra ID P1许可分配报错一例 Microsoft Entra ID P1中的条件访问策略使组织能够根据特定条件(例如用户位置、设备运行状况和应用程序敏感性)控制访问。这确保了仅在正确的情况下才授予访问权限,从而增强安全性。所以在分配Microsoft Entra ID许可证的时候,系统会检测用户是否设置了“Usage Location”属性,如果没有设置则会报错,提示进行设置。所以在创建用户的时候,需要尽可能的完善用户属性,进而避免此类问题的产生。 Azure Microsoft Entra ID Azure AD 安全 npm、yarn、pnpm设置国内镜像源 默认的官方镜像:https://registry.npmjs.org,切换国内淘宝镜像,访问下载更快。一、npm设置npm config set registry https://registry.npmmirror.com/12、查看源npm config get registry13、切回官方镜像npm config set registry https://registry.npmjs.or 文件删除 清除缓存 json 【OpenShift】集群组件分析(一)样例库 前言OpenShift 是一个由 Red Hat 公司维护的基于 Kubernetes 的容器化应用平台,旨在简化构建、部署和管理容器化应用程序的过程。它提供了一整套工具和功能,使开发人员能够更轻松地构建、测试和部署他们的应用程序,同时为运维团队提供了一种简单、可靠的方式来管理容器化的基础设施。OpenShift 的集群组件 样例库 用于管理存储在 openshift 命名空间中的样例镜像流和模板 openshift co 样例库 samples 源码 yarn oom问题一例 线上部分job运行失败,报OOM的错误:因为是maptask报错,怀疑是map数量过少,导致oom,因此调整参数,增加map数量,但是问题依然存在。看来和map的数量没有关系。通过jobid查找jobhistory中对应的日志信息,定位到出错的task id和对应的host.通过日志查看出问题的containerid.由于container是由RM进行分配的,查看RM的日志,可以看到contain yarn oom App 应用Crash 分析一例总结 问题点:应用在启动的时候, d3 2d f5 一例WLAN故障问题分析 今日受朋友之托,为其友人安装几台无线路由。因其原已在使用中,而且因为电源问题导致几台设备故障,无法工作。故此次只需将新无线路由器填上原空缺即告完成。但在填补完空缺后,发生了一个很奇怪的现象。故在此对该现象凭借对无线的一点微薄知识对其产生的原因做一个简单分析。 故障现象:在楼房二楼过道处有一无线路由器,原来此处为一台单天线的TP-LINK,现更换为一台华硕的双天 路由器 WI-FI 无线 WLAN 休闲 impala集成kerberos问题一例 最近在折腾hadoop+kerberos,由于线上使用的组件比较多,遇到不少问题,记录下来,碰到同样问题的同学可以参考下。在hdfs+mapred+kerberos运行正常后,开始尝试集成impala.其中statestore的参数:export IMPALA_STATE_STORE_ARGS=${IMPALA_STATE_STORE_ARGS:- -log_dir=${IMPALA_LOG_DI impala kerberos yum发现问题排查一例 [root@pachong yum-3.2.28]# yum search wwwLoaded plugins: fastestmirrorDetermining fastest mirrorsYumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. </html>/removing mirrorlis yum 解答网友shell问题一例20140702 今天看到一网友观看老男孩shell视频后,问了一个问题如下:解答思想:我们学习shell的最好方法就是参看系统的标杆脚本及帮助的example。下面是网卡启动脚本的有关这位网友问题的脚本样例。很明显上述中括号字符比较等号两边有空格。所以上述的问题答案就不言而喻了。[root@oldboy ~]# cat oldboytest.sh #!/bin/shst 问题 shell 使用wireshark排除一例网络问题 wireshark排查网络问题 故障 数据 客户端 抓包 mysql问题一天一例 1 问题来源 在交流群一个哥们询问 ERROR 1146 (42S02): Table 'xxx' doesn't exist 此错误2 具体问题分析此表是属于innodb空间 由于ibdata1中记录了innodb表的元数据 ,经过网上查下和自己分析。由于ibdata1文件损坏造成的,造成innodb引擎的表不可以用3 解决办法暂时没有好的解决办法,只能利用备份恢复 空间 mysql 记录 ERROR 网上 交换机环路问题一例 问题: 昨天监控系统报告一台Cisco 3550交换机工作不正常,在局域网内ping值竟然达到了300多ms。登上这台交换机查看日志如下,问题为内存不足。这台交换机一直工作很正常,出现内存不足极有可能是病毒造成的。登上监控系统查看了一下这台交换机各个端口的使用率,fa0/17端口的占用率竟然高达90%。去机房查看了此端口,其一直显示为橙色状态,并且闪烁 职场 休闲 交换机环路问题 rewrite 一例 首先感谢帮助过我的朋友。前几天学习了 rewrite 写个心得吧。 URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程 原题: 将[url]http://www.new.com/work/index. 职场 apache 正则 休闲 rewrite mysql问题一天一例(1215) 1 问题来源 一个哥们求助mysql 运行所需要的pid文件不存在 造成无法启动mysql具体报错为Can't start server: can't create PID file: No such file or directory2 具体问题分析看到此问题时,我一开始很疑 mysql server 文件夹 create 用户组 使用加密的SMTPExchange 2007问题一例 公司老板的MAC本中的MAIL突然不能往外网发送电子邮件了,总是报出【服务器响应: '550 5.7.1 Unable to relay'】错误,由于公司内部只有几位高层使用MAC电脑,也没有可以进行测试的资源,只能现在PC机上测试一下Outlook Express的收发情况了。配置好OE,域内收信和发信都没问题,但是给域外发信问题就来了 从提示上看,是邮 加密 Exchange OE SMTP unable qt编译com服务异常问题一例 故障现象:Couldn't resolve 'DumpIDL' symbol in D:\xxx\qt midl release/xxtest2.idl /nologo /tlb release/xxtest2.tlb\Processing release\xxtest2.idlnpguitest2.idlc1: fatal error C1083: 无法打开源文件: “release\xxtest2.idl”: No such file or directorymidl : comman... 导出函数 工程文件 配置文件 其他 extjs window不能拖动问题一例 extjs desktop示例修改后用在项目中,createwindow出来以后说啥也不能拖动,折腾了三天啊,TMD,最后才找到原因是window id不能为汉字,我草啊 前端 ViewUI desktop Protobuf一例 客户端 ide 数据同步 perl 微信 VML一例 VML一例<html xmlns:v="urn:schemas-microsoft-com:vml"><STYLE>v/:* { Behavior: url(#default#VML) }</STYLE><head></head><body> <br>画线 <v:line from="0,0 html xml microsoft PowerShell一例 (Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey 其他