我尝试使用 sqoop 命令将数据从 oracle 导入 hive 或 HDFS。它工作得很好。
我想在 java 代码中使用 sqoop。我从stackoverflow中的不同链接尝试了一些东西。但我没有得到正确的 sqoop.jar 文件,它说 Sqoop.runTool(str); 找不到类。,请让我知道执行此操作的步骤。如何从 java 代码开始。
谢谢。
从 Java 程序运行 sqoop 命令的主要问题是您需要确保 sqoop 所需的所有库都在类路径上。如果缺少库,则会导致 ClassNotFoundException。Sqoop 需要hadoop 库,如果您正在执行 hbase 导入,则需要hbase 库;如果您在 hive 中创建表,则需要hive 库。它还使用 SQOOP_HOME/lib 文件夹中的库。
通过直接调用 sqoop API 来让 sqoop 导入工作是非常棘手的。因为您绕过了 sqoop.sh 命令,该命令在调用 sqoop API 之前设置环境(例如将所需的库添加到类路径等)。
我建议您尝试使用ProcessBuilder.exec()
从 java 程序运行 sqoop 导入。