通常,我会先在google上搜索一个解决方案,但这个错误似乎以前没有发生过。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/Shell
at org.apache.hadoop.hive.conf.HiveConf$ConfVars.findHadoopBinary(HiveConf.java:906)
at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:237)
at org.apache.hive.jdbc.HiveConnection.isHttpTransportMode(HiveConnection.java:221)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:138)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:123)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.merck.ghh.ingestion.HiveTableSetup.tableSetup(HiveTableSetup.java:31)
at com.merck.ghh.ingestion.HiveTableSetup.main(HiveTableSetup.java:546)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.Shell
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 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 10 more
以下代码导致此错误,特别是在连接声明行上:
try {
Class.forName(driverName);
Connection connection = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hive", "");
Statement statement = connection.createStatement();
} catch (ClassNotFoundException exception) {
exception.printStackTrace();
}
其他问题似乎指出这与依赖项中不包含hadoopcore有关,但hadoopcore似乎不存在于hadoop2.x中。我专门在hadoop2.1.0.2.0.5.0-67和hive0.12.0中工作。在这个错误之前,我遇到了一些问题,因为我的配置单元依赖关系在某个时候被破坏了,但是我把它们放回去了,接下来就发生了这个错误。我在想,这是否不是像忘记依赖关系这样简单的事情,但我没有找到我可能缺少的依赖关系。
非常感谢您的帮助。
2条答案
按热度按时间ifsvaxew1#
尝试将jdbc连接器jar复制到$hive\u home/lib/文件夹中。我也遇到了类似的问题,复制jar文件对我来说很有用。
rvpgvaaj2#
当你使用
Hadoop 2.X.
您需要下载hadoop-common-2.1.0-beta.jar或hadoop-common-2.0.0-cdh4.4.0.jar和要避免的类路径
ClassNotFoundException
.你是对的,hadoop-core-0.20.2-737.jar在使用之前就被使用了。
更多访问http://grepcode.com/