我从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)作为我的hive表SerDe。
Hive查询脚本没问题,我已成功在hive控制台中运行它。我已经设置了oozie共享库。是什么让我非常困惑,我在使用默认表(不使用特殊的SerDe)提交hive工作流时没有错误,但是当我更改为我的JSON-SerDe表时,它总是失败。 ADD JAR /path-to/serde.jar也不起作用。
答案 0 :(得分: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中遇到“无法反序列化”错误。