我使用的是hadoop 1.0和sqoop 1.4,彼此兼容。 当我尝试将表从MySQL导入到hdfs时。
sqoop import --connect jdbc:mysql://localhost/mydemo --table wordcount -m 1 --username root --password root123
我收到以下错误
线程中的异常" main" java.lang.IncompatibleClassChangeError: 找到接口org.apache.hadoop.mapreduce.JobContext,但是类是 预期?
我尝试使用hadoop 1.0和2.0运行sqoop 1.4仍然得到相同的错误。 我已经尝试过带有hadoop 2.0的sqoop 1.99。因此,除了兼容性之外,请提出一些不同的建议。
答案 0 :(得分:1)
Sqoop和Sqoop2的binary distributions根据Hadoop版本而有所不同。如果使用错误版本的Hadoop编译或者系统上有错误的hadoop库,则可以在Sqoop2中看到此类错误。试图解决这个问题:
find / -name 'hadoop*.jar'
应该有用。<server configuration directory>/catalina.properties
中的tomcat属性显式设置类路径。罐子可以明确添加到common.loader
。答案 1 :(得分:0)
在版本2中安装了hadoop版本1的sqoop tar文件时,通常会发生此错误。尝试下载hadoop版本2的sqoop tar文件并安装它。问题肯定会得到解决。 hadoop版本2的sqoop文件如下所示
sqoop-1.4.6.bin __ ** Hadoop的2.0.4 - ** alpha.tar.gz