gpt4 book ai didi

java - 如何在 Java 程序中使用 Sqoop?

转载 作者:IT老高 更新时间:2023-10-28 20:39:53 24 4
gpt4 key购买 nike

我知道如何通过命令行使用 sqoop。但不知道如何使用 java 程序调用 sqoop 命令。谁能给出一些代码 View ?

最佳答案

您可以通过将 sqoop jar 包含在类路径中并调用 Sqoop.runTool() 方法从您的 java 代码中运行 sqoop。您必须像命令行一样以编程方式创建 sqoop 所需的参数(例如 --connect 等)。

请注意以下几点:

  • 确保 sqoop 工具名称(例如导入/导出等)是第一个参数。
  • 注意类路径排序 - 执行可能会失败,因为 sqoop 需要版本 X 的库并且您使用不同的版本。确保 sqoop 需要的库不会被您自己的依赖项所掩盖。我在使用 commons-io(sqoop 需要 v1.4)时遇到过这样的问题,并且由于我使用的是 commons-io v1.2,所以遇到了 NoSuchMethod 异常。
  • 每个参数都需要位于单独的数组元素上。例如,“--connect jdbc:mysql:...”应该作为数组中的两个单独元素传递,而不是一个。
  • sqoop 解析器知道如何接受双引号参数,因此如果需要,请使用双引号(我总是建议)。唯一的异常(exception)是 fields-delimited-by 参数,它需要一个字符,所以不要双引号。
  • 我建议将命令行参数创建逻辑和实际执行分开,这样就可以在不实际运行工具的情况下正确测试您的逻辑。
  • 最好使用 --hadoop-home 参数,以防止对环境的依赖。
  • Sqoop.runTool() 相对于 Sqoop.Main() 的优势在于 runTool() 返回错误执行代码。

希望对您有所帮助。

final int ret = Sqoop.runTool(new String[] { ... });
if (ret != 0) {
throw new RuntimeException("Sqoop failed - return code " + Integer.toString(ret));
}

强化学习

关于java - 如何在 Java 程序中使用 Sqoop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com