sqoop操作

介绍

sqoop是隶属于Apache旗下的, 最早是属于cloudera公司的,是一个用户进行数据的导入导出的工具, 主要是将关系型的数据库(MySQL, oracle...)导入到hadoop生态圈(HDFS,HIVE,Hbase...) , 以及将hadoop生态圈数据导出到关系型数据库中

操作

将数据从mysql中导入到HDFS中

1.全量导入

sqoop import \
--connect jdbc:mysql://192.168.52.150:3306/test \
--username root \
--password 123456 \
--table emp \
--fields-terminated-by '\001' \
--delete-target-dir \
--target-dir '/sqoop_works/emp_1' \
--split-by id \
-m 2 

相关参数:

  • --connect:连接关系型数据库的URL
  • --username:连接数据库的用户名
  • --password:连接数据库的密码
  • --table:指定使用该数据库的表
  • --fields-terminated-by:设置分隔符

  • --delete-target-dir:删除目标地址中的文件夹
  • --target-dir:导入在HDFS中的地址

(选用)需要两个一起使用,即在/sqoop_works/emp_1目录下导入数据,如果这个目录之前有数据了,则删除原来的数据再导入。


  • --split-by:按照属性切割数据
  • -m:设置map数量

(选用)需两个一起使用,即按照id对数据进行切割,结果分为两份。

结果:

2.条件导入

基于全量导入,在语句中写上--where(条件)或--query(SQL语句)

例如:

--where 'id > 1205'

或者:

--query 'select deg from emp where 1=1 AND $CONDITIONS'

CONDITIONS是一个占位符,通常用来动态添加条件。在实际使用中,CONDITIONS会被替换为具体的条件语句,比如WHERE子句中的具体条件,以实现更灵活的查询功能。

将数据从mysql中导入到Hive中

1.全量导入

sqoop import \
--connect jdbc:mysql://192.168.52.150:3306/test \
--username root \
--password 123456 \
--table emp_add \
--hcatalog-database hivesqoop \
--hcatalog-table emp_add_hive \

与导入到HDSF类似,只是导入到的地方不同

  • --hcatalog-database:指定数据库名称
  • --hcatalog-table:指定表名

上述代码功能为:把msql中的test数据库emp_add表的数据导入到Hive中hivesqoop数据库中的emp_add_hive表

2.条件导入

同样的也是加--where(条件)或--query(SQL语句)

将数据从Hive导出到msql中

语句如下:

sqoop export \
--connect jdbc:mysql://192.168.52.150:3306/test \
--username root \
--password 123456 \
--table emp_add_mysql \
--hcatalog-database hivesqoop \
--hcatalog-table emp_add_hive \

和导入类似,只是把sqoop import换成了sqoop export

导出数据的时候,必须先在mysql中创建表才可以将数据导入到这个表里面

相关推荐
筒栗子9 小时前
复习打卡大数据篇——Hadoop MapReduce
大数据·hadoop·mapreduce
金州饿霸9 小时前
Hadoop集群(HDFS集群、YARN集群、MapReduce计算框架)
大数据·hadoop·hdfs
lucky_syq10 小时前
Hive SQL和Spark SQL的区别?
hive·sql·spark
NiNg_1_23410 小时前
Hadoop中MapReduce过程中Shuffle过程实现自定义排序
大数据·hadoop·mapreduce
lucky_syq11 小时前
Spark和Hadoop之间的区别
大数据·hadoop·spark
武子康1 天前
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
java·大数据·数据仓库·hive·hadoop·后端
莹雨潇潇1 天前
Hadoop完全分布式环境部署
大数据·hadoop·分布式
学计算机的睿智大学生1 天前
Hadoop集群搭建
大数据·hadoop·分布式