sqoop操作mysql与hdfs之间数据传输

174次阅读
没有评论

一、mysql表中的数据导入到hdfs

1.进入mysql shell

本实验需要进入mysql,mysql的密码是:Password123$

[hadoop@master ~]$ mysql -u root -p

输入密码:Password123$,进入mysql。

2.创建数据库mysql_hdfs 

使用create database命令创建数据库。

mysql> create database mysql_hdfs;

使用 show databases 查看数据库是否存在。

mysql> show databases;

+——————–+
| Database           |
+——————–+
| information_schema |
| hive_db            |
| mysql              |
| mysql_hdfs         |
| performance_schema |
| sys                |
+——————–+
6 rows in set (0.15 sec)

3.在mysql_hdfs上创建表users

将默认的数据库指定为mysql_hdfs

mysql> use mysql_hdfs;

创建users表指定id,name,age,sex字段的类型

mysql> create table users(id varchar(11), name varchar(11), age int, sex varchar(11) );

4.在users表中插入数据

使用insert into命令插入数据,每次插入一条数据。

mysql> insert into users value(‘0001’, ‘jbw’, 23, ‘man’);

mysql>insert into users value(‘0010’, ‘jbw4’, 23, ‘man’);

5.查看表中数据是否存在

mysql> select * from users;

+——+——+——+——+
| id   | name | age  | sex  |
+——+——+——+——+
| 0001 | jbw  |   23 | man  |
| 0010 | jbw4 |   23 | man  |
+——+——+——+——+

6.退出mysql

使用exit命令退出mysql。

mysql> exit;

7.查看Sqoop版本

[hadoop@master ~]$ sqoop version

Sqoop 1.4.7

Compiled by maugli on Thu Dec 21 15:59:58 STD 2017

8.启动hadoop,查看进程

使用start-all.sh 启动hadoop进程。

[hadoop@master ~]$ start-all.sh

9.将mysql中的数据导入到hdfs

[hadoop@master ~]$ sqoop import –connect jdbc:mysql://master:3306/mysql_hdfs -username root -password Password123$ –table users –columns id,name,age,sex -m 1 –target-dir ‘/sqoop/users’

Import参数指定sqoop为导入数据,connect参数为数据库连接的地址,username为数据库的用户名,password为数据库的密码,table指定数据库表名称,columns为表中的字段,m

为启动MapReduce的数量,target-dir为数据导入到hdfs的路径

10.查看sqoop数据是否导入成功

[hadoop@master ~]$ hdfs dfs -cat /sqoop/users/*

0010,jbw4,23,man

0001,jbw,23,man

二、hdfs上的数据导出到mysql表中

1.进入mysql shell

本实验需要进入mysql,mysql的密码是:Password123$

[hadoop@master ~]$ mysql -u root -p

输入密码:Password123$,进入mysql。

2.在mysql_hdfs上创建表:users2

将默认的数据库指定为mysql_hdfs

mysql> use mysql_hdfs;

创建users2表指定id,name,age,sex字段的类型

mysql> create table users2(id varchar(11), name varchar(11), age int, sex varchar(11) );

3.查看hdfs中数据

[hadoop@master ~]$ hdfs dfs -cat /sqoop/users/*

0010,jbw4,23,man

0001,jbw,23,man

4.导出数据

[hadoop@master ~]$ sqoop export –connect jdbc:mysql://master:3306/mysql_hdfs –username root –password Password123$ –table users2 –export-dir /sqoop/users/part-m-00000 –input-fields-terminated-by ‘,’

export参数指定sqoop为导出数据,connect参数为数据库连接的地址,username为数据库的用户名,password为数据库的密码,table指定数据库表名称, export-dir为指定要导出数据的路径,input-fields-terminated-by为指定源数据的分隔符。

步骤五:查看数据库表中数据

mysql> use mysql_hdfs;

mysql> select * from users2;

+——+——+——+——+
+——+——+——+——+
| 0001 | jbw  |   23 | man  |
| 0010 | jbw4 |   23 | man  |
+——+——+——+——+

到点睡觉了
版权声明:本站原创文章,由 到点睡觉了2022-01-10发表,共计2502字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)