sqoop导入/导出

这篇博客介绍了如何使用sqoop工具进行数据操作,包括从不同源导入到HDFS和Hive,以及将数据导出到MySQL。详细步骤涵盖了全量导入、查询导入、指定列导入、以及使用关键字筛选导入数据到Hive,并讨论了直接导入和通过HDFS中转加载到Hive的方法,同时也强调了导出到MySQL时目标表必须存在的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入到HDFS

全部导入

sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t'

查询导入

sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--target-dir /user/test1 \
--delete-target-dir \
--m 1 \
--fields-terminated-by '\t' \
--query 'select * from students where $CONDITIONS'

注意:sql语句末尾必须加上$CONDITIONS
 

导入指定列

sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--columns id,sex 

提示:columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格

关键字筛选查询导入数据

sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--where "id=2"

导入到Hive

1. 直接导入到hive

sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--m 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table students

提示:Hive中的表要存在,不存在不会自动创建

2. 导入到HDFS然后load到Hive

     1.导入到HDFS

sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t'

     2.load 到Hive

load  data  inpath '/user/test1'  into  table  hive表名字 

导出到MySQL

 

sqoop export \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--export-dir /user/test1 \
--table students \
--input-fields-terminated-by '\t'
--m 1

提示:导出数据时MySQL表必须存在

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值