Sqoop是一款“Hadoop和关系数据库服务器之间传送数据”的工具,即可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
本文主要介绍如何使用Sqoop工具从HDFS导出数据到关系数据库(MySQL 中。
本系统的软件开发及运行环境具体如下:
Hadoop 3.1.1
JDK1.8.0_191
MySQL 8.0.14
Sqoop 1.4.7
Hive 3.1.1
Sqoop导出用到的命令为export,下面通过一个例子来讲解如何使用Sqoop将Hadoop数据导出到MySQL,步骤如下。
(1 创建stu文件,分隔符为逗号,内容如图1所示。
图1 stu文件内容
(2 将stu文件复制到HDFS上的/exportdata目录下。
hadoop fs -mkdir expotdata hadoop fs -put home/mingri/stu exportdata/stu hadoop fs -cat exportdata/stu |
执行结果如图2所示。
图2 将stu文件复制到HDFS上的/expotdata目录下
(3 将stu文件中的数据导出到MySQL数据库中的student表中。
bin/sqoop export --connect jdbc:mysql://localhost:3306/testDB -username root -password 123456 -table student -export-dir exportdata --input-fields-terminated-by ',' |
与import导入命令相比,export导出命令与之类似,其中“--input-fields-terminated-by ','”用于指定数据文件中的分隔符。需要注意,数据文件中的分隔符必须和要导出的数据表中的分隔符一致,才能正确的导出数据。
执行结果如图3所示。
图3 将stu文件中的数据导出到MySQL数据库中的student表中
(4 在MySQL数据库中,查看student表中数据。
use testDB; select * from student; |
执行结果如图4所示。
图4 查看student表中数据
从图4中可以看出,已经成功的将stu文件中的数据导出到MySQL数据库的student表中了。
Powered by 小羊羔外链网 8.3.12
©2015 - 2024 小羊羔外链网
您的IP:18.223.171.12,2024-04-27 08:10:49,Processed in 0.0444 second(s).