在编写客户端程序时,直接用hive的diver class连接hive,出现异常:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets at org.apache.hadoop.security.Credentials.(Credentials.java:222) at org.apache.hadoop.mapred.JobConf.(JobConf.java:334) at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:3256) at org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:3219) at Test.main(Test.java:13) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.Charsets 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
对于这种异常,稍微有点经验的程序猿,都会兴奋无比,因为so easy。着眼一看就是缺包,缺commons-io包。
但是你可能会发现,一瞬间你也没顺利解决,那是因为commons-io包在2.1版本以前都没有org.apache.commons.io.Charsets方法,版本不对仍然会报此错。
具体从哪个版本开始有的,就懒得去浪费这种时间了解了,解决问题为上。
我这里下载的是2.5版本:http://mvnrepository.com/artifact/commons-io/commons-io/2.5
分享:
上一篇hadoop集群上hive安装,配置mysql数据库存储metadata
下一篇java.lang.ClassNotFoundException: org.apache.hadoop.mapred.JobConf
崇尚极简,热爱技术,喜欢唱歌,热衷旅行,爱好电子产品的一介码农。
联系QQ:58742094
联系电话:
工作邮箱:
当你的才华还撑不起你的野心的时候,你就应该静下心来学习,永不止步!
人生之旅历途甚长,所争决不在一年半月,万不可因此着急失望,招精神之萎葸。
Copyright 2015- 芒果酷(mangocool.com) All rights reserved. 湘ICP备14019394号
免责声明:本网站部分文章转载其他媒体,意在为公众提供免费服务。如有信息侵犯了您的权益,可与本网站联系,本网站将尽快予以撤除。