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检查文件是不是存在于HDFS位置?

Oozie Spark (2.x) 动作总是卡在接受状态

Oozie Pig 动作卡在 PREP 状态,作业处于 RUNNING 状态

oozie 作业提交失败,检查您的配置是不是有 mapreduce.framework.name 和相应的服务器地址

oozie 常用命令

Oozie shell 操作失败