ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java代码执行sqoop抽取动作

2021-06-04 13:33:32  阅读:194  来源: 互联网

标签:Java -- sqoop hadoop SqoopTool apache import 代码执行


执行从MySQL数据库导出数据到HDFS上。

 

执行前需准备:

在eclipse中写的代码,所以,又新加了sqoop-1.4.6-cdh5.5.2.jar放入原有的hadoop项目中,否则会有编译错误。

 

同时,在集群上,将此包加入HADOOP_HOME/share/hadoop/yarn下,否则会报缺少Jar包的错误。

错误显示:

[hadoop@fa01 ~]$ hadoop jar SqoopTest1.jar

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/sqoop/util/OptionsFileUtil

 

代码:

import org.apache.hadoop.conf.Configuration;

import org.apache.sqoop.Sqoop;

import org.apache.sqoop.tool.SqoopTool;

import org.apache.sqoop.util.OptionsFileUtil;

 

public class SqoopTest1 {

private static int importDataFromMysql() throws Exception {

String[] args = new String[] {

//参数可以继续添加

"--connect", "jdbc:mysql://192.20.1.54:3306/tbname_test",

"--driver", "com.mysql.jdbc.Driver",

"--username", "username",

"--password", "123456",

"--table", "abtest_data",

"-m", "1",

"--target-dir", "/user/hadoop/java_sqoop_test1"

};

String[] expandArguments = OptionsFileUtil.expandArguments(args);

SqoopTool tool = SqoopTool.getTool("import");

Configuration conf = new Configuration();

conf.set("fs.default.name", "hdfs://192.168.20.32:9000");

Configuration loadPlugins = SqoopTool.loadPlugins(conf);

Sqoop sqoop = new Sqoop((com.cloudera.sqoop.tool.SqoopTool) tool, loadPlugins);

return Sqoop.runSqoop(sqoop, expandArguments);

}

public static void main(String[] args) throws Exception {

importDataFromMysql();

}

}

 

参考:

http://blog.csdn.net/shantaodaoshik852/article/details/77266831

http://blog.csdn.net/guzicheng/article/details/41519947

 

 转自:https://blog.51cto.com/feature09/1966296

标签:Java,--,sqoop,hadoop,SqoopTool,apache,import,代码执行
来源: https://www.cnblogs.com/javalinux/p/14849177.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有