Hive启动报错无法找到class— java.lang.NoClassDefFoundError
2015-08-16 16:23
573 查看
Hive启动时,报错无法找到class,如java.lang.NoClassDefFoundError
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/ql/CommandNeedRetryException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.CommandNeedRetryException
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
分析:
这类问题很可能是由环境配置导致导致的问题,回想最近都没有改动Hive的相关配置文件,动的只有hadoop 里的配置。
想起之前用hadoop编译Java 文件测试,修改过hadoop/conf/ 下的 hadoop-env.sh ,增加了以下内容:
export HADOOP_CLASSPATH=/home/suh/hadoop-1.2.1/myclass
确实问题就是由这个引发的,hive连接到hadoop集群需要找到类,这个类包的路径就是通过HADOOP_CLASSPATH 环境变量来指定的,我将其指向了个空目录,启动hive的时候当然就包各种类无法找到的问题。
解决方案:
修改配置文件hadoop/conf/ hadoop-env.sh,将HADOOP_CLASSPATH原来的值改为如下,重启hadoop集群,然后启动hive,启动成功。
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/ql/CommandNeedRetryException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.CommandNeedRetryException
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
分析:
这类问题很可能是由环境配置导致导致的问题,回想最近都没有改动Hive的相关配置文件,动的只有hadoop 里的配置。
想起之前用hadoop编译Java 文件测试,修改过hadoop/conf/ 下的 hadoop-env.sh ,增加了以下内容:
export HADOOP_CLASSPATH=/home/suh/hadoop-1.2.1/myclass
确实问题就是由这个引发的,hive连接到hadoop集群需要找到类,这个类包的路径就是通过HADOOP_CLASSPATH 环境变量来指定的,我将其指向了个空目录,启动hive的时候当然就包各种类无法找到的问题。
解决方案:
修改配置文件hadoop/conf/ hadoop-env.sh,将HADOOP_CLASSPATH原来的值改为如下,重启hadoop集群,然后启动hive,启动成功。
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
相关文章推荐
- JavaWeb项目中WEB-INF目录下class文件自动生成以及显示
- ACM之java 输入输出优化
- struts2学习笔记(十二)多文件上传
- Java 中使用内存映射文件需要考虑的 10 个问题
- Java基础 笔记(2)
- Java基础 笔记(1)
- java.lang.AbstractMethodError: gnu.xml.dom.DomDocument.getXmlStandalone()Z
- 循序渐进学java 13种核心技术
- java中的异常机制(编译时异常)
- Java 实现的内容搜索工具
- [java] Add Digits 数字相加
- 二叉查找树 Java
- [Java][activiti]Activiti这个过程委托功能[getAssignee()与getOwner()差异]
- Servlet文件上传
- #笔记#圣思园 JavaWeb 第78讲——JSON库,异步调用
- JAVA 设计模式 - 原型模式
- JAVA 设计模式 - 建造者模式
- MAC JAVA_HOME配置
- 懒得笔记6 spring hibernate template
- Spring Web Flow 学习笔记(1)