我目前正在开发一个使用 JDK1.7 编译的项目,使用 Cascading 1.2(即将升级到 2.1)创建和运行 Hadoop 作业,并使用 Hadoop 的 Cloudera 发行版(0.20.2-cdh3u3)。
我正在研究如何修改我的 Cascading/Hadoop 作业以从 MySQL db 读取和写入所有数据。看起来 SQOOP 可能能够处理这个问题。
但是,到目前为止,我所看到的关于如何在 Java 中执行此操作的信息或文档很少(我知道 SQOOP 主要应该用于从 shell 中调用的批处理作业)——我遵循的 Java 示例没有t 为我工作。我曾尝试使用 SQOOP 1.4 并将我的项目切换为使用 JDK1.6,因为我认为这是必需的,(尽管它会破坏我项目的其他部分)但我仍然无法让它工作。
有谁知道我想要实现的目标是否可能?其他人如何处理这个问题?SQOOP2 的发布会有帮助吗?
当我尝试运行 org.apache.sqoop.tool.ExportTool 以将 CSV 导出到表时,我看到的错误类型是:
由于(很可能)类加载器问题而无法初始化 javac 处理器:java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment
注意:\tmp\sqoop-my.name\compile\9031edc8e43167c10f9f895b64aa79d5\MyTableName.java 使用或覆盖已弃用的 API。
运行导出作业时遇到 IOException:java.io.IOException: 无法将 jar \tmp\sqoop-my.name\compile\9031edc8e43167c10f9f895b64aa79d5\MyTableName.jar 加载到 JVM 中。(找不到类 MyTableName。)