Hive内部错误:java.lang.ClassNotFoundException(org.apache.atlas.hive.hook.HiveHook)

Ama*_*man 7 hadoop hive hue oozie

我正在使用hue运行一个hive查询throwh oozie ..
我正在通过hue-oozie工作流程创建一个表...
我的工作失败但是当我在hive中检查时表创建了.
日志显示以下错误:

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$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)   
Run Code Online (Sandbox Code Playgroud)

无法识别问题....
我使用HDP 2.3.1

Ama*_*man 7

基本上这个错误是由于在oozie共享库中丢失了atlas jar.在HDP中,Atlas jar可用于/usr/hdp/2.3.0.0-2557/atlas/ 将所有与atlas相关的罐子放入hadoop共享库中.

hadoop fs -put /usr/hdp/2.3.0.0-2557/atlas/hook/hive/* /user/oozie/share/lib/lib200344/hive 
Run Code Online (Sandbox Code Playgroud)

'export HIVE_AUX_JARS_PATH=<atlas package>/hook/hive'在hive-env.sh中添加.
复制<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在复制之前执行命令来检查共享/ lib文件夹的确切路径.