JAVA操作SQOOP对象
2017-09-28 10:54
267 查看
JAVA操作SQOOP对象
Posted on 2017-06-06 16:57 J'KYO 阅读(203) 评论(0) 编辑 收藏Windows下使用Eclipse工具操作Sqoop1.4.6对象
Sqoop是用来在关系型数据库与Hadoop之间进行数据的导入导出,Windows下使用Eclipse工具操作时,需要先搭建好Hadoop的开发环境
参照Java操作HDFS对象的pom.xml配置,添加配置
<dependency> <groupId>org.apache.sqoop</groupId> <artifactId>sqoop</artifactId> <version>1.4.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency>
使用MySQL进行数据和Hadoop之间的导入导出操作,需要MySQL的驱动包。sqoop-1.4.6.jar包在maven里下载不下来,将sqoop的安装目录下$SQOOP_HOME下的sqoop-1.4.6.jar包拷贝到maven仓库对应的sqoop的目录下即可。
Windows下配置Sqoop的环境变量
Windows下操作Sqoop时需要使用到Sqoop下的包,需要配置环境变量。
将下载的sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz解压到本机目录下,配置Sqoop的环境变量:
SQOOP_HOME=F:\data\sqoop-1.4.6.bin__hadoop-2.0.4-alpha PATH=PATH;%SQOOP_HOME%\bin;
检查是否配置成功
sqoop version
警告不用管,Windows下不需配置
Java操作Sqoop对象
Windows本机下MySQL服务要先启动
4.1 将MySQL数据导入到HDFS
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 SqoopTest { private static int importDataFromMysql() throws Exception { String[] args = new String[] { "--connect","jdbc:mysql://192.168.1.97:3306/mydb", "--driver","com.mysql.jdbc.Driver", "-username","root", "-password","root", "--table","user", "-m","1", "--target-dir","java_import_user" }; String[] expandArguments = OptionsFileUtil.expandArguments(args); SqoopTool tool = SqoopTool.getTool("import"); Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://192.168.1.200:9000");//设置HDFS服务地址 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(); } }
可以在HDFS上查看生成的文件
发现在HDFS下生成了目录/user/cyyun/java_import_user,程序中
--target-dir没有指定具体路径,本机Windows的用户名是cyyun,在Windows上使用程序操作时会在/user/下生成一个Windows用户名的目录
查看结果:
hadoop fs -cat /user/cyyun/java_import_user/part-m-00000 hadoop fs -cat /user/cyyun/java_import_user/part-m-00001
将程序中
--target-dir指定为
/user/root/java_import_user,运行查看结果:
hadoop fs -cat /user/root/java_import_user/part-m-00000
本文参考:
http://blog.csdn.net/guzicheng/article/details/41519947
相关文章推荐
- Java操作Sqoop对象
- Java操作Sqoop对象
- java访问.net webservice返回对象操作
- 考虑大对象:利用 JAVA 操作 DB2 Universal Database
- java中序列化与反序列化对象的简单操作!
- Redis缓存系统-Java-Jedis操作Redis,基本操作以及 实现对象保存
- java中IO流中的对象操作流
- JAVA数组和JAVA集合类的对象操作-Java基础-Java-编程开发
- Java 如何对文件进行多个Object对象流的读写操作
- 我的java之路(一):锁定、等待和通知——要操作同一对象
- JavaScript操作Java对象
- JAVA基础知识之JVM-——使用反射生成并操作对象
- XML的操作——JAXB进行Java对象和XML之间的转换
- Java_数据库操作对象DAO浅谈;
- 使用js模仿java的实体类对类/对象进行get操作
- java操作redis: 将string、list、map、自定义的对象保存到redis中
- java基础-反射3(反射,反射创建对象,操作对象属性,调用对象方法)
- 【redis,1】java操作redis: 将string、list、map、自定义的对象保存到redis中
- JAVA数据库操作2(PreparedStatement对象)
- 学习笔记:DataTables之数据读取和操作(java对象转换为json对象)