为了账号安全,请及时绑定邮箱和手机立即绑定

JDBC客户端报错

老师,请问下,走近大数据之Hive入门课程中,所用的hadoop是什么版本的?我用的hadoop1.2.1,apache-hive-0.13.0-bin, 实现HIVE的JDBC客户端操作时,没有hadoop-commom-2.4.1.jar文件。 

 另外:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable。这样的是什么报错?

正在回答

3 回答

Hadoop1.2.1版本、Hive0.13.0版本需要引入的jar包:

Hadoop根目录下的:
hadoop-core-1.2.1.jar

Hadoop的lib目录下的:
commons-cli-1.2.jar
slf4j-api-1.4.3.jar
slf4j-log4j12-1.4.3.jar

hive的lib目录下的:
commons-collections-3.1.jar
commons-logging-1.1.3.jar
hive-exec-0.13.0.jar
hive-jdbc-0.13.0.jar
hive-metastore-0.13.0.jar
hive-service-0.13.0.jar
libfb303-0.9.0.jar
log4j-1.2.16.jarhttps://img1.sycdn.imooc.com//5b767e890001e8db07380524.jpg

0 回复 有任何疑惑可以回复我~

需要引入commons-cli-1.2.jar、hadoop-core-1.2.1.jar

0 回复 有任何疑惑可以回复我~

hadoop版本早就到了3.0了,你用的太老了。还有Hive也是。

我用的hadoop是2.7的,Hive是2.1.1的。这两个版本都很稳定,挺不错的。

对于你这个问题是,没有找到Writable类。关于类找不到有两种情况,一种是编译的时候,这个时候你的IDE会提示你(就是没有导包,这个太明显就不用解释了)。另外一种就是你这个NoClassDefFoundError,编译时能找到类,运行时找不到,就是没有把类编译成class字节码文件。这个问题原因比较多,可能是jar冲突。你如果是Maven项目,更新下一般都能解决。

老哥,你其实应该把代码贴出来。。。。

我怀疑你是不是MR作业的Key和Value类型用的不对,你需要用hadoop包下的(都实现了Writable接口)

,或者是Job中没有指定Reduce的Key和Value类型。。。。

你要是简单的使用Hadoop,在pom文件中导入

    <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.3</version>
        </dependency>

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
走近大数据之Hive进阶
  • 参与学习       30399    人
  • 解答问题       49    个

Hive数据操作,查询及Hive编程接口,开发Hive的自定义函数

进入课程

JDBC客户端报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信