使用 Java 调用 Sqoop 示例


1. 介绍

Sqoop主要用于在HADOOP(Hive、hdfs、hbase)与传统的数据库(mysql、postgresql、db2、oracle…)间进行数据的传递。

但为了更方便的控制数据的导入,且sqoop是apache下的JAVA开源项目,所以可以直接使用java来操作sqoop。

2. 说明

需要引入sqoop1.4.3.jar和依赖的hadoop相关的jar包

3. 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

public static void main(String[] args) {
args = new String[] { "list-tables", "--connect",
"jdbc:mysql://localhost/test", "--username", "root",
"--password", "root" };
// Expand the options
String[] expandedArgs = null;
try {
expandedArgs = OptionsFileUtil.expandArguments(args);
} catch (Exception ex) {
System.err.println(ex.getMessage());
System.err.println("Try 'sqoop help' for usage.");
}
String toolName = expandedArgs[0];
Configuration pluginConf = SqoopTool.loadPlugins(new Configuration());
com.cloudera.sqoop.tool.SqoopTool tool = (com.cloudera.sqoop.tool.SqoopTool) SqoopTool
.getTool(toolName);
if (null == tool) {
System.err.println("No such sqoop tool: " + toolName
+ ". See 'sqoop help'.");
}
Sqoop sqoop = new Sqoop(tool, pluginConf);
Sqoop.runSqoop(sqoop,
Arrays.copyOfRange(expandedArgs, 1, expandedArgs.length));
}

4. 注意事项

  • 注意hadoop版本和sqoop的版本需要对应,不然会有各种问题

  • 参数可以自定义

  • 调用代码来自于Sqoop源码中sqoop.java


文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
  目录