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

Sqoop与hadoop的集成,用于oracle数据导入,hadoop,sqoop,Hadoop,Sqoop,我一直在尝试使用scoop和oraoop将数据从oracle Express edition 11g R2导入hadoop 我安装了cdhsqoop,并尝试集成已经运行的apachehadoop 我发现oraoop的使用是正确的,但在导入时我面临以下问题。我还尝试了ApacheSqoop和ApacheHadoop,但仍然面临以下问题。 web搜索建议也使用CDH hadoop而不是apache hadoop ** 线程“main”java.lang.CompatibleClassChangeEr

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

我安装了cdhsqoop,并尝试集成已经运行的apachehadoop

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

**

线程“main”java.lang.CompatibleClassChangeError中出现异常: 找到类org.apache.hadoop.mapreduce.JobContext,但接口无效 预期 在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)的巨大代码重构。一个副作用是针对Hadoop1.0(CDH3)编译的代码与Hadoop2.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]

贾切克

链接:

1:


2:

我已经用oraoop和CDH4 hadoop尝试了CDH4 sqoop。它很好用。至少一个示例表导入工作正常。在ApacheSqoop和ApacheHadoop集成上,我是否只需要使用Hadoop1.0.0?我已经有了hadoop-1.1.1,但找不到该版本的sqoop发行版,也就是说,我找不到sqoop-1.4.2.bin_uHadoop-1.1.1.tar.gz.sqoop发行版,名称中带有“1.0.0”的版本也应该适用于hadoop版本“1.1.1”。它不仅与“1.0.0”相关,更与主分支相关——例如,在本例中为1.x。