【问题标题】:Hive query file execution is failing through oozieHive 查询文件执行通过 oozie 失败
【发布时间】:2014-06-04 13:39:43
【问题描述】:

我有一个具有 UDF 功能的配置单元查询文件。当我使用“hive -f myqfile.q”运行此查询文件时,它正在正确执行并且数据填充到我的最终表中。

但是当相同的查询文件通过 oozie 工作流执行运行时,它会失败并显示以下错误消息,

FAILED: SemanticException: [Error: 10014]: Line: 29:17 Wrong arguments '"start"': No method matching for class com.abc.xyz.hive.udf.GetRowKeyRange with (string, string, string, string). Possible choices: _FUNC_(string, string, string, string, string)
Intercepting System.exit(10014)
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10014]

在上述错误消息中,“start”是我的 hive udf 参数之一的值。

q 文件存在的 Jar 路径是正确的(手动执行正在工作),并且在侧 q 文件中创建了 hive udf 名称,并且类 com.abc.xyz.hive.udf.GetRowKeyRange 具有评估方法只有 4 个参数。

我不确定这个错误是如何出现的,我试图弄清楚,最后我无法弄清楚这个错误的原因。有人可以帮我解决这个问题。

【问题讨论】:

  • 是你的 oozie wokring 吗?我的意思是在 oozie 上成功运行的任何其他工作?显示你的属性文件和 xml 文件。有的话可以试试hue。
  • 是的,这个集群上运行了很多 oozie 作业,只有执行上述 udf 调用的作业失败了。

标签: hive oozie


【解决方案1】:

包含此 UDF 的 .jar 是否也位于 HDFS 上?如果是本地的,Oozie 可能无法遵循 jar 路径。

【讨论】:

  • 是的,查询文件中添加的jar指向的是本地路径而不是hdfs路径。但是我有另一个 oozie 作业,它执行具有 udf 的查询文件,其中 jar 指向本地并且执行没有问题。
  • 此外,如果它期望在 hdfs 中的 jar,那么添加 jar 应该会失败,但那是通过并且临时函数也成功创建。所以这不是问题。
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2013-04-27
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多