目录
简介
环境
Mysql上传到HDFS实例
HDFS上数据上传到Mysql实例
简介
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
环境
Sqoop-1.4.7
mysql-5.7.22
hadoop-2.7.6
Ubuntu16.04
Mysql上传到HDFS实例
小文是使用的是文本文档首先我们得先把文本文档上传到Mysql中
第一步:上传本地文本文档到Mysql中
在Mysql中创建一个表用来存放本地文档,输入命令
create table test1(
ip varchar(100) not null,
time varchar(100) not null,
url varchar(100) not null);
将本地的test.txt文件上传到Mysql中,输入命令
load data infile “~/Downloads/test.txt” into table test1(ip,time,url);
上传完成后,查看Mysql表中的前10条数据,如图所示:
样本地文档就上传到Mysql中成功
第二步:将Mysql中的数据上传到HDFS中,输入命令
sqoop import -connect jdbc:mysql://localhost:3306/test --username root --password 123456 -table test1 -m 1
执行完之后我们可以在HDFS上查看导出数据,输入命令
hadoop dfs -test /user/hadoop/test1/part-m-00000
显示结果如图所示:
这样就完成了运用sqoop把Mysql中的数据导出到HDFS上
HDFS上数据上传到Mysql实例
在导出前需要先创建导出表的结构,如果导出的表在数据表中不存在则报错;如果重复导出数据多次,表中的数据则会重复。
第一步:准备导出表
在Mysql 数据库中创建要导出表,我们直接根据test1表创建导出表的结构即可,命令如下:
create table test2 as select * from test1 where 1=2;
第二步:运用sqoop将HDFS上数据导入到Mysql中,命令如下:
sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table test2 --export-dir /user/hadoop/test1/part-m-00000 -m 1
第三步:在Mysql中查询被导出的数据,如图所示:
这样就完成了运用sqoop把HDFS上数据导入到Mysql中。