Sqoop的数据导出

将数据从HDFS导出到RDBMS数据库

导出前,目标表必须存在于目标数据库中。

◆ 默认操作是从将文件中的数据使用INSERT语句插入到表中

◆ 更新模式下,是生成UPDATE语句更新表数据

语法

以下是export命令语法。

$ sqoop export (generic-args) (export-args) 

示例

数据是在HDFS 中“EMP/”目录的emp_data文件中。所述emp_data如下:

1201, gopal,     manager, 50000, TP

1202, manisha,   preader, 50000, TP

1203, kalil,     php dev, 30000, AC

1204, prasanth,  php dev, 30000, AC

1205, kranthi,   admin,   20000, TP

1206, satish p,  grp des, 20000, GR

首先需要手动创建mysql中的目标表

create database userdb;

grant all privileges on userdb.* to 'sqoop'@'%' identified by 'sqoop';

grant all privileges on userdb.* to 'sqoop'@'localhost' identified by 'sqoop';

grant all privileges on userdb.* to 'sqoop'@'hq555' identified by 'sqoop';

flush privileges;

$ mysql

mysql> USE db;


// 创建表
mysql> CREATE TABLE employee ( 

  id INT NOT NULL PRIMARY KEY, 

  name VARCHAR(20), 

  deg VARCHAR(20),

  salary INT,

  dept VARCHAR(10));

然后执行导出命令

bin/sqoop export --connect jdbc:mysql://hq666:3306/sqoop_data --username hive --password hive --table employee --export-dir /input/ --input-fields-terminated-by ',' 

验证表mysql命令行。

mysql>select * from employee;

如果给定的数据存储成功,那么可以找到数据在如下的employee表。

+------+--------------+-------------+-------------------+--------+

| Id | Name | Designation | Salary | Dept |

+------+--------------+-------------+-------------------+--------+

| 1201 | gopal | manager | 50000 | TP |

| 1202 | manisha | preader | 50000 | TP |

| 1203 | kalil | php dev | 30000 | AC |

| 1204 | prasanth | php dev | 30000 | AC |

| 1205 | kranthi | admin | 20000 | TP |

| 1206 | satish p | grp des | 20000 | GR |

+------+--------------+-------------+-------------------+--------+

猜你喜欢

转载自blog.csdn.net/weixin_34418883/article/details/87137438