Hive Internal Error: java.lang.ClassNotFoundException(org.apache.atlas.hive.hook.HiveHook)

Hive Internal Error: java.lang.ClassNotFoundException(org.apache.atlas.hive.hook.HiveHook)

我是 运行 使用 hue 的 hive 查询 throwh oozie..
我正在通过 hue-oozie 工作流程创建 table...
我的工作失败了,但是当我签入配置单元时,创建了 table。
日志显示以下错误:

16157 [main] INFO  org.apache.hadoop.hive.ql.hooks.ATSHook  - Created ATS Hook
2015-09-24 11:05:35,801 INFO  [main] hooks.ATSHook (ATSHook.java:<init>(84)) - Created ATS Hook
16159 [main] ERROR org.apache.hadoop.hive.ql.Driver  - hive.exec.post.hooks Class not found:org.apache.atlas.hive.hook.HiveHook
2015-09-24 11:05:35,803 ERROR [main] ql.Driver (SessionState.java:printError(960)) - hive.exec.post.hooks Class not found:org.apache.atlas.hive.hook.HiveHook
16159 [main] ERROR org.apache.hadoop.hive.ql.Driver  - FAILED: Hive Internal Error: java.lang.ClassNotFoundException(org.apache.atlas.hive.hook.HiveHook)
java.lang.ClassNotFoundException: org.apache.atlas.hive.hook.HiveHook
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)   

无法确定问题....
我正在使用 HDP 2.3.1

看来你CLASS没有发现异常。

您是否安装了Oozie Sharedlib,如果是,请更新sharedLib Location中所有的hive依赖Jar,并检查状态

还要检查 Hive Client 是否在集群下的所有节点中都可用,并且应该是 运行

这个错误基本上是由于 oozie 共享库中缺少 atlas jar。 在 HDP 中,Atlas jar 在 /usr/hdp/2.3.0.0-2557/atlas/ 中可用 把所有atlas相关的jar放在hadoop share lib中..

hadoop fs -put /usr/hdp/2.3.0.0-2557/atlas/hook/hive/* /user/oozie/share/lib/lib200344/hive 

在 hive-env.sh 中添加 'export HIVE_AUX_JARS_PATH=<atlas package>/hook/hive' .
复制 <atlas package>/conf/application.properties 到 hive conf 目录。

重新启动 oozie 服务。这将解决这个问题。如果有人遇到问题,请在这里发表评论,以便我提供帮助。

[Immo Huneke 的评论:在使用Hortonworks 沙箱VM 时,我发现只需将jar 文件放在HDFS 下的share/lib 文件夹中即可解决问题。我不必更新 hive-env.sh 或复制 application.properties 文件。但是在复制之前通过执行命令 hdfs dfs -ls /user/oozie/share/lib 检查 share/lib 文件夹的确切路径。]

hive>添加 jar /usr/hdp//atlas/hook/hive/hive-bridge-${VERSION}.jar

会好的

希望对你有所帮助

我尝试了本论坛和 Whosebug 中提到的所有可能的解决方案,但都没有解决我的问题。 最后,我通过将 /hook/hive 中的所有 jars 复制到我的 oozie workflow

的 lib(在 job.properties 级别创建一个新的 lib 文件夹)文件夹来解决它