OOZIE 状态检查抛出 java.lang.NullPointerException
Posted
技术标签:
【中文标题】OOZIE 状态检查抛出 java.lang.NullPointerException【英文标题】:OOZIE status check throws java.lang.NullPointerException 【发布时间】:2016-03-01 14:45:25 【问题描述】:我是 oozie 的新手,正在尝试在 CDH4.1.1
中编写一个 oozie 工作流。所以我启动了 oozie 服务,然后我使用这个命令检查了状态:
sudo service oozie status
我收到了消息:
running
然后我尝试了这个命令来检查状态:
oozie admin --oozie http://localhost:11000/oozie status
我得到了以下异常:
java.lang.NullPointerException
at java.io.Writer.write(Writer.java:140)
at org.apache.oozie.client.AuthOozieClient.writeAuthToken(AuthOozieClient.java:182)
at org.apache.oozie.client.AuthOozieClient.createConnection(AuthOozieClient.java:137)
at org.apache.oozie.client.OozieClient.validateWSVersion(OozieClient.java:243)
at org.apache.oozie.client.OozieClient.createURL(OozieClient.java:344)
at org.apache.oozie.client.OozieClient.access$000(OozieClient.java:76)
at org.apache.oozie.client.OozieClient$ClientCallable.call(OozieClient.java:410)
at org.apache.oozie.client.OozieClient.getSystemMode(OozieClient.java:1299)
at org.apache.oozie.cli.OozieCLI.adminCommand(OozieCLI.java:1323)
at org.apache.oozie.cli.OozieCLI.processCommand(OozieCLI.java:499)
at org.apache.oozie.cli.OozieCLI.run(OozieCLI.java:466)
at org.apache.oozie.cli.OozieCLI.main(OozieCLI.java:176)
null
阅读异常堆栈,我无法找出此异常的原因。请让我知道为什么会出现此异常以及如何解决此问题。
【问题讨论】:
【参考方案1】:尝试在集群中禁用 env 属性 USE_AUTH_TOKEN_CACHE_SYS_PROP
。根据您的堆栈跟踪和 code 。
通常使用基于 Kerberos 的身份验证设置集群,该身份验证是按照步骤 here 设置的。不确定您是否想这样做,但只是想提一下,仅供参考。
【讨论】:
根据代码,这是一个环境变量,oozie 客户端在继续使用它获取的身份验证令牌之前会检查它。由于您没有将任何-auth
参数传递给 oozie 调用,因此我猜它会为空。你能检查一下你的 oozie 脚本 (which oozie
) 是否从中挑选任何环境变量吗?
which oozie
给了我这个路径:/usr/bin/oozie
这是一个 shell 脚本,它检测到 java_home 然后执行这一行:exec /usr/lib/oozie/bin/oozie "$@"
你能建议做什么吗?
在检查其他来源时遇到了issues.apache.org/jira/browse/OOZIE-1010。你能检查一下你使用的版本是不是这个吗?另外,您可以尝试将-auth SIMPLE
传递给您的命令,如票证所示?
会检查版本。在 oozie 调用中将此参数传递到哪里:-auth SIMPLE
? oozie 的哪个命令应该包含这个-auth
参数?
尽管通过了-auth SIMPLE
,您是否看到同样的问题?以上是关于OOZIE 状态检查抛出 java.lang.NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
Oozie Pig 动作卡在 PREP 状态,作业处于 RUNNING 状态