1

我从 oozie hive 操作工作流中得到一个错误:

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], 
      main() threw exception, org/apache/hadoop/hive/serde2/SerDe
      java.lang.NoClassDefFoundError: org/apache/hadoop/hive/serde2/SerDe

我将 CDH4.2、HUE 2.2 和 JSON-SerDe ( rcongiu-hive-json-serde ) 用于我的配置单元表 SerDe。

Hive 查询脚本没问题,我在 hive 控制台中成功运行了它。我已经设置了 oozie 共享库。让我非常困惑的是,在使用默认表(不使用特殊的 SerDe)提交配置单元工作流时我没有收到任何错误,但是当我更改为我的 JSON-SerDe 表时它总是失败。ADD JAR /path-to/serde.jar 也不起作用。

4

1 回答 1

0

我通过将我的 Serde JAR 文件放在应用程序的 lib 路径中解决了这个错误。

下面是我的 HDFS 目录结构:

/user/manoj/app/workflow.xml
/user/manoj/app/lib/json-serde-1.3-jar-with-dependencies.jar

PS:您可能有任何版本的 serDe JAR,我json-serde-1.3-jar-with-dependencies.jar专门使用过,因为我在其他答案中发现该版本也支持反序列化,并且对我有用。我遇到了 hive-serde.jar 的“无法反序列化”错误。

于 2018-10-05T07:01:39.333 回答