一、HDFS上的数据查看
[root@hadoop001 opt]# hadoop fs -text emp.txt /data/emp.txt
1250 yangyamei doctor
1251 zhangzhenxing doctor
1261 zhangjun nurse
1265 Bob doctor
2000 spark nurse
二、MySQL数据库创建接收数据的空表emp_demo
mysql> select * from emp_demo;
Empty set (0.00 sec)
//表结构
mysql> desc emp_demo;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| EMP_NO | int(11) | YES | | NULL | |
| EMP_NAME | varchar(255) | YES | | NULL | |
| Job | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
三、开始导出数据到MySQL
sqoop export \
--connect jdbc:mysql://hadoop001:3306/sqoop \
--username root \
--password 123456 \
--table emp_demo \
--export-dir /data/emp.txt \
-m 1 \
--verbose \
--fields-terminated-by '\t'
–table 指定MySQL接收数据的表
–export-dir 指定从HDFS那个路径下导出数据
–verbose 打印更多信息
–fields-terminated-by ‘\t’ 指定分隔符为\t 记住必须指定分隔符否则报错
查看数据是否已经进入
mysql> select * from emp_demo;
+--------+---------------+--------+
| EMP_NO | EMP_NAME | Job |
+--------+---------------+--------+
| 1250 | yangyamei | doctor |
| 1251 | zhangzhenxing | doctor |
| 1261 | zhangjun | nurse |
| 1265 | Bob | doctor |
| 2000 | spark | nurse |
+--------+---------------+--------+
五、弊端
当我再次执行导出语句后会发现emp_demo中的数据重复了,所以一般是用shell脚本来控制导入语句,脚本中执行导出语句时先删除emp_demo表的数据。