Sqoop数据导出

网友投稿 279 2022-11-21

Sqoop数据导出

数据导出

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

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

mysql表不存在是不会自动创建的

默认操作是从将文件中的数据使用INSERT语句插入到表中更新模式下,是生成UPDATE语句更新表数据

语法

以下是export命令语法

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

表示数据存放的地址

hdfs导入到mysql

数据是在HDFS 中​​/user/root/emp_conn​​目录下存在part-m-00000文件中。所述part-m-00000如下:

1201,2356742,gopal@tp.com1202,1661663,manisha@tp.com1203,8887776,khalil@ac.com1204,9988774,prasanth@ac.com1205,1231231,kranthi@tp.com

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

use userdb;CREATE TABLE emp_conn_from_hdfs( id INT, phno VARCHAR(20), email VARCHAR(20));

然后执行导出命令

sqoop export \--connect jdbc:mysql://master:3306/userdb \--username root \--password root \--table emp_conn_from_hdfs \--export-dir /user/root/emp_conn \--m 1

验证表mysql命令行

select * from emp_conn_from_hdfs;

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

hive导入到mysql

sqoop export \--connect jdbc:mysql://master:3306/userdb \--username root \--password root \--table staff \--num-mappers 1 \--export-dir /user/root/staff \--input-fields-terminated-by "\t";

​​--input-fields-terminated-by "\t"​​​表示hive中原本数据分割符是​​\t​​

编写脚本

job_hdfs2mysql.opt

export --connect jdbc:mysql://master:3306/company --username root--passwordroot--tablestaff--num-mappers1--export-dir/user/hive/warehouse/staff_hive--input-fields-terminated-by"\t"

脚本中一个命令或一个参数就成为一行,不要加​​\​​

执行脚本

sqoop --options-file job_hdfs2mysql.opt

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据挖掘浅谈
下一篇:关于拉线编码器在物流和工程车辆中的应用分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~