Sqoop与hadoop集成,用于oracle数据导入



我一直在尝试从oracle Express edition 11g R2导入数据使用oraoop。

我安装了CDH sqoop,并试图集成已经运行的apache hadoop。

我发现oraoop使用正确,但我在导入时面临以下问题。我也尝试了apache sqoop与apache hadoop,但仍然面临以下问题。web搜索建议使用CDH hadoop,而不是apache hadoop。

* *

线程"main"异常java.lang.IncompatibleClassChangeError:找到类org.apache.hadoop.mapreduce。JobContext,但是interface是预期com.quest.oraoop.OraOopDataDrivenDBInputFormat.getDesiredNumberOfMappers (OraOopDataDrivenDBInputFormat.java: 201)在com.quest.oraoop.OraOopDataDrivenDBInputFormat.getSplits (OraOopDataDrivenDBInputFormat.java: 51)

* *

总结

,

CDH sqoop + Apache Hadoop -数据导入失败Apache Sqoop + Apache hadoop -数据导入失败,出现上述异常

CDH Sqoop + CDH Hadoop -这是正确的组合吗?

有什么建议吗?我不确定我走的路对不对。请帮助。

Hadoop经历了从Hadoop 1.0到Hadoop 2.0(对应于从CDH3到CDH4)的大规模代码重构。一个副作用是针对Hadoop 1.0 (CDH3)编译的代码与Hadoop 2.0 (CDH4)不兼容,反之亦然。然而,源代码是兼容的,因此只需要重新编译代码与目标Hadoop发行版。

当你在Hadoop 2.0 (CDH4)上运行为Hadoop 1.0 (CDH3)编译的代码时,异常"找到类X,但接口是预期的"是非常常见的,反之亦然。

解决方法很简单,只需同步版本即可。使用CDH3 Hadoop + CDH3 Sqoop或CDH4 Hadoop + CDH4 Sqoop是最简单的方法。如果您更喜欢使用上游Sqoop版本,那么您必须确保您使用的是为您的Hadoop发行版编译的二进制工件。Sqoop使得这很容易,因为目标hadoop发行版是在工件名称中编码的-例如Sqoop -1.4.2.bin__hadoop-1.0.0.tar.gz意味着在hadoop 1.0上使用[1]。

同样的约束也适用于连接器。您必须为正在运行的Hadoop版本下载连接器。在OraOop的情况下,CDH3和CDH4也有单独的工件[2]。

Jarcec

链接:

1: http://www.apache.org/dist/sqoop/1.4.2/

2: https://ccp.cloudera.com/display/con/Quest +数据+连接器

相关内容

  • 没有找到相关文章

最新更新