sqoop HDFS 导入 mysql

本文介绍如何从HDFS及Hive中导出数据至MySQL数据库的方法。包括在MySQL中手动创建目标表,通过Sqoop工具进行数据导出的具体步骤,并特别指出在不同场景下设置数据分隔符的重要性。

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

一、hdfs导入mysql

注意:在mysql导入hive时可以自动创建表,而hdfs导入mysql时则不能在mysql中自动创建表,因此导入前准备工作,在mysql中建议需要导入的表!

1、最简单的导入

准备工作:在mysql中建表

create table emp_import (id int,name varchar(45),age int);

hdfs中/emp_db下存在文件part-m-00000,内容如下

1,guohan,30
2,hanhan,23
3,han,15
4,hujing,10

开始导入,执行如下命令:

sqoop export \
--connect jdbc:mysql://mini1:3306/emp_db \
--password root \
--username root \
--table emp_import \
--export-dir /emp_db \
--m 1

注意:此处未指定–input-fields-terminated-by ‘,’ ,证明默认分隔符为逗号

二、 hive导mysql

原理:就是hdfs导mysql,找到hive表在hdfs上的路径,执行导入即可,注意使用–input-fields-terminated-by ’ ’
将hive中的表dw_oute_ratio_ration_cp数据导到mysql的dw_oute_ratio_ration表中,注意hive中的表字段间是用’\001’来作分隔符的
hive表数据内容如下
这里写图片描述

sqoop export \
--connect jdbc:mysql://mini1:3306/click_data \
--username root \
--password root \
--table dw_oute_ratio_ration \
--export-dir /user/hive/warehouse/shizhang.db/dw_oute_ratio_ration_cp \
--input-fields-terminated-by '\001' 

运行结束后提示Export job failed!但去mysql中查询,数据已经导入成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值