目录

sqoop主要用于在HADOOP(Hive、hdfs、hbase)与传统的数据库(mysql、postgresql、db2、oracle...)间进行数据的传递。
但为了更方便的控制数据的导入,且sqoop是apache下的JAVA开源项目,所以可以直接使用java来操作sqoop。

引入依赖jar包

新建java项目
需要引入sqoop1.4.3.jar和依赖的hadoop相关的jar包

java调用代码

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));
    }

注:

  • 注意hadoop版本和sqoop的版本需要对应,不然会有各种问题
  • 参数可以自定义
  • 调用代码来自于sqoop源码中sqoop.java