我正在使用hue运行hive查询throwh oozie ..
我正在通过hue-oozie工作流程创建一个表...
我的工作失败但是当我在蜂房中检查时,表格已经创建了
日志显示如下错误:
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)
无法识别问题....
我是usig HDP 2.3.1
答案 0 :(得分:7)
基本上这个错误是由于oozie共享库中缺少atlas jar。
在HDP中,Atlas jar可在/usr/hdp/2.3.0.0-2557/atlas/
中找到
将所有与atlas相关的罐子放入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
,检查共享/ lib文件夹的确切路径。]
答案 1 :(得分:2)
hive&gt;添加jar / usr / hdp // atlas / hook / hive / hive-bridge - $ {VERSION} .jar
没关系。
希望对你有所帮助。答案 2 :(得分:1)
看起来你没有找到CLASS例外。
您是否安装了Oozie Sharedlib,如果是,请更新sharedLib位置中所有依赖于hive的Jar,并检查状态是否
同时检查Hive Client是否在群集下的所有节点中都可用,并且应该正在运行
答案 3 :(得分:1)
我尝试了本论坛和stackoverflow中提到的每一个可能的解决方案,但它没有解决我的问题。 最后,我通过将/ hook / hive中的所有jar复制到我的oozie工作流中的lib(在job.properties级别创建一个新的lib文件夹)文件夹来解决它