Java操作Sqoop对象
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对象的更多相关文章
- 危险代码:如何使用Unsafe操作内存中的Java类和对象
危险代码:如何使用Unsafe操作内存中的Java类和对象—Part1 危险代码:如何使用Unsafe操作内存中的Java类和对象—Part2 危险代码:如何使用Unsafe操作内存中的Java类和对 ...
- java操作文件常用的 IO流对象
1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序 ...
- java中对对象进行判空的操作--简洁编码
java中对对象进行判空的操作 首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.ut ...
- Java多线程操作同一个对象,线程不安全
Java多线程操作同一个对象 发现问题:多个线程操作同一资源的情况下,线程不安全,数据紊乱 代码: package multithreading; // Java多线程操作同一个对象 // 买火车票的 ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- Java提高篇——对象克隆(复制)
假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- Java的常用对象①②
Java的常用对象① Java的常用对象有很多,这里只对lang包中常用的Object,Date(Calendar,DateFormat,Math),System,Runtime进行介绍.㈠Objec ...
- Java操作Oracle
public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...
随机推荐
- linux比较两个文件的差异
1. vimdiff $ vimdiff in.txt out.txt 垂直打开: vimdiff point.c point-a.c 水平打开: vimdiff -o point ...
- Windows7系统中nginx与IIS服务器搭建集群实现负载均衡
10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑 ...
- Linux Shell查看物理CPU个数、核数、逻辑CPU个数
Linux Shell常用命令: ====================================== # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理C ...
- 虚拟机CentOS的NAT模式联网和SecureCRT远程登录管理工具
Cenos7 发生了很大的变化,不过也是直接配置网络,从启网卡,从启机器,crt链接 https://blog.csdn.net/gebitan505/article/details/54584213 ...
- Tensorflow & Python3 做神经网络(视频教程)
Tensorflow 简介 1.1 科普: 人工神经网络 VS 生物神经网络 1.2 什么是神经网络 (Neural Network) 1.3 神经网络 梯度下降 1.4 科普: 神经网络的黑盒不黑 ...
- cmd下查看当前登陆用户
cmd下查看当前登陆用户 终端下,自然可以用quser这个命令了.但是在其它如专业版2k下如何查看在线用户呢? C:\Documents and Settings\Administrator>n ...
- pthread中errors.h的代码
#ifndef __errors_h #define __errors_h #include <unistd.h> #include <errno.h> #include &l ...
- ResourceBundle介绍
介绍: ResourceBundle类主要作用是读取属性文件,读取属性文件时可以直接指定属性文件的名称(指定名称时不需要文件的后缀),也可以根据Locale所指定的区域码来选取指定的资源文件: Res ...
- tomcat源码阅读之载入器(Loader)
一.Java类的载入器: 双亲委派模型: 1.JVM提供了三种类型的类加载器:引导类载入器(bootstrap class loader).扩展类载入器(extension class loader) ...
- Json之语法
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同. 由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 Ja ...