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。这样的是什么报错?
老师,请问下,走近大数据之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。这样的是什么报错?
2017-11-17
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.jar
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>
举报