sqoop 从 MySQL 导入数据到 hdfs 中

9 篇文章 0 订阅
5 篇文章 0 订阅

MYSQL 数据导入到 HDFS

sqoop import 
--connect jdbc:mysql://192.168.66.4:3306/networkmanagement \
--username sendi \
--password 1234 \
--table people \
--columns "name,age" \
--where "age>18" \
--target-dir hdfsPeople \
--delete-target-dir \
-m 1
  • –table 是要导入HDFS中的表
  • –columns 选择要导入的列,这里选择把name与age两列导入的HDFS中。
  • –where 对数据进行过滤,只有满足条件的才保存到HDFS中。
  • –target-dri 指定存储在HDFS上的表名
  • –delete-target-dir 表示如果HDFS表存在,则把他删除。
  • -m 说明使用多少个map进行数据迁移,如果表比较大的话,建议使用多个map,默认的map为4个

从 HDFS 导出到 MYSQL

1、首先先在MySQL中创建表
2、重复的记录要删除
2、export path 指定导出的目录
4、–updata-key

#### 在 mysql 下创建表

create table customertest(id int,name varchar(20),last_mod timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
执行导出语句
sqoop import 
--connect jdbc:mysql://192.168.66.4:3306/networkmanagement?useUnicode=true&characterEncoding=utf-8" \
--username sendi \
--password 1234 \
--table people \
--columns "id,name" \
--input-fields-terminated-by ',' \
--export-dir path \
-m 1
  • columns 指定导出到 mysql 中的列
更新数据
  • –updata-key
  • –update-mode allowinsert 指定更新的模式为可插入,默认为 updateonly
分隔符
  • input-fields-terminated-by hdfs文件分隔符
当数据库中字符为空时的处理
  • –input-null-non-string ‘0’ 当不是字符串的数据为空的时候,用 0 替换
  • –input-null-string ‘string’ 当字符串为空的时候,使用string 字符替换
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值