Sqoop常见用法

一、简介

sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具。你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中;也可以把数据从hdfs中导出到关系型数据库中。sqoop通过Hadoop的MapReduce导入导出,因此提供了很高的并行性能以及良好的容错性。

二、常见用法

2.1 mysql导入到hdfs

1 全部导入 
sqoop import \  
--connect jdbc:mysql://192.168.56.160:3306/mydemo \
--username root \
--password okok \
--table student \  -->选择表
--target-dir '/kb13/student' \  -->上传至hdfs目录
--delete-target-dir \   --> 若存在就删除
--num-mappers 1 \  --> 设置mapper数量  若是2,最后要设置reduce数量
--fields-terminated-by ','
-m 2

2 查询导入
sqoop import \
--connect jdbc:mysql://192.168.56.160:3306/mydemo \
--username root \
--password okok \
--target-dir '/kb13/users' \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by ',' \
--query 'select * from student where score<60 and $CONDITIONS;'

2.2 hdfs导出到MySQL

sqoop export \
--connect jdbc:mysql://192.168.56.160:3306/mydemo \
--username root \
--password okok \
--table users \     --> mysql中创建新表,与导入的表结构一样
--export-dir '/kb13/student' \
--num-mappers 1 \
--input-fields-terminated-by ','

2.3 MySQL导入到hive

sqoop import \
--connect jdbc:mysql://192.168.56.160:3306/mydemo \
--username root \
--password okok \
--table student \
--num-mappers 1 \
--hive-import \   --> hive导入
--fields-terminated-by ',' \
--hive-overwrite \   -->覆盖
--delete-target-dir \  
--hive-table mydemo.users   --> hive中创建表格

2.4 hive导出到MySQL

sqoop export \
--connect jdbc:mysql://192.168.56.160:3306/mydemo \
--username root \
--password okok \
--table user1 \
--export-dir '/hive110/warehouse/mydemo.db/users' \
--input-fields-terminated-by ','

mysql导入到hive null值

①默认sqoop到import数据时,将Mysql的Null类型,转为'null'
②hive中使用\N代表NULL类型
③如果希望在import时,将Mysql的Null类型,转为自己期望的类型,
需要使用--null-string and --null-non-string 
    --null-string:  当mysql的string类型列为null时,导入到hive时,使用什么来代替!
        --null-string a:  如果mysql中,当前列是字符串类型(varchar,char),假如这列值为NULL,
                            导入到hive时,使用a来代替!
    --null-non-string: 当mysql的非string类型列为null时,导入到hive时,使用什么来代替!
        --null-non-string b: 如果mysql中,当前列不是字符串类型(varchar,char),假如这列值为NULL,
                            导入到hive时,使用b来代替!
④如果到导出时,希望将指定的参数,导出为mysql的NULL类型,需要使用
--input-null-string and --input-null-non-string 
     --input-null-string a: 在hive导出到mysql时,如果hive中string类型的列的值为a,导出到mysql中,使用NULL代替!
    --input-null-non-string b: 在hive导出到mysql时,如果hive中非string类型的列的值为b,导出到mysql中,使用NULL代替! 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值