当我使用'hive shell'命令启动配置单元时。它给了我以下例外:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/ql/CommandNeedRetryException
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/common/LogUtils$LogInitializationException
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.CommandNeedRetryException
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.common.LogUtils$LogInitializationException
答案 0 :(得分:2)
实际上这是因为hadoop设置。我已经显式地设置了HADOOP_CLASSPATH(仅作为Java jar),并且在运行hive时,它需要更多的hadoop jar文件,同样是通过hive配置文件添加。所以我们需要在hadoop-env.sh中设置HADOOP_CLASSPATH,如下所示
export HADOOP_CLASSPATH = $ {HADOOP_CLASSPATH}:{yours previous classpath}
答案 1 :(得分:0)
面对同样的问题,虽然HADOOP_CLASSPATH列出了所有必要的罐子,但是底层罐子没有“hadoop”组的读取权限。
使用'chmod'命令更改为组的读取权限后,解决了问题。