由于在写oozie hive action时候script属性指定hql脚本时多写了一个斜杠导致的一个悲剧,以及解决方案

20 篇文章 0 订阅
6 篇文章 0 订阅

今天在编写 oozie hive action,编写的action如下:

<action name="action_0_0_0">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>/tmp/hupu/hive/res/hive-site.xml</job-xml>
            <script>/tmp/hupu/hive/tmphql/</script>
        </hive>
        <ok to="fork_97" />
        <error to="kill" />
    </action>


script节点的tmphql后面多了一个斜杠,然后导致了一个CDH5.3.0上的yarn的一个BUG,后续版本中应该已经解决了,如果你用的是这个版本,然后恰巧你也出现了这个失误,下面的内容也许就对你有帮助了。


由于这个BUG,会导致你的nm起不来,具体错误日志中有以下重要信息:

下午5点17:58.437 FATAL org.apache.hadoop.yarn.event.AsyncDispatcher
Error in dispatcher thread
java.lang.IllegalArgumentException: Can not create a Path from an empty string
	at org.apache.hadoop.fs.Path.checkPathArg(Path.java:127)
	at org.apache.hadoop.fs.Path.<init>(Path.java:135)
	at org.apache.hadoop.fs.Path.<init>(Path.java:94)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl.getPathForLocalization(LocalResourcesTrackerImpl.java:420)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$PublicLocalizer.addResource(ResourceLocalizationService.java:773)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerTracker.handle(ResourceLocalizationService.java:687)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerTracker.handle(ResourceLocalizationService.java:629)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:173)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:106)
	at java.lang.Thread.run(Thread.java:745)
下午5点17:58.445 INFO org.apache.hadoop.yarn.event.AsyncDispatcher
Exiting, bbye..


下午5点17:59.386 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl
Applications still running : [application_1423189731488_0063]

我首先按照第一个重要信息去GOOGLE,在jira上找到了原来这是这个版本的一个BUG,后面版本应该FIX掉了,但是我想改源码重新部署集群,于是我找日志发现了下面第二个重要信息,提示说我有一个一个application仍在运行,很奇怪,找不到这个正在运行的程序,是由于上面那个斜杠导致的失误导致应用程序状态不一致了。

Applications still running : [application_1423189731488_0063]
于是继续GOOGLE,找到一篇文章:http://stackoverflow.com/questions/27065011/cdh-5-2-error-starting-nodemanager-service-nodemanager-failed-in-state-inited-c
其中说到删除/tmp/hadoop-yarn/yarn-nm-recovery目录,我的目录是配在:/var/lib/hadoop-yarn/yarn-nm-recovery  (具体配置的哪个目录可以在cm中的 node manager group中找到)。于是我删除掉无法启动的nm节点上的这个目录,然后重启动,OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值