小白学数据仓库日记day4——sqoop

Sqoop
Sqoop是什么?
SQL+HADOOP=SQOOP
完成MySQL到HADOOP之间的数据传输
Sqoop现状
已经停止维护 分为SQOOP 1 和SQOOP 2  建议使用sqoop 1.4.7
停止维护原因分析
1.足够的成熟
2.基于MapReduce太老了,替换方案datax canel

兼容性较好的版本组合
Hadoop 2.7+ Hive 1.2.1 +HBase 1.x +sqoop 1.4.7
SQOOP主要命令
import 导入
export 导出
job 减少重复代码

Import 详解
通用参数
如下:
  Argument                Description           
  ==--connect==           指定JDBC连接字符串           
  --connection-manager    指定连接管理类               
  --driver                指定连接的驱动程序             
  -P                      从控制台读入密码(可以防止密码显示中控制台)
  ==--password==          指定访问数据库的密码            
  ==--username==          指定访问数据库的用户名      

连接数据库
[root@qianfeng01 ~]sqoop import --connect jdbc:mysql://qianfeng01:3306/sqoop --username root --password 123456
列出所有数据库
[root@qianfeng01 ~] sqoop list-databases --connect jdbc:mysql://hadoop01:3306 --username root --password 123456;
列出数据库中所有表
[root@qianfeng01 ~] sqoop list-tables --connect jdbc:mysql://hadoop01:3306/sqoop --username root --password 123456;

 Import的控制参数
Argument
Description
--append
通过追加的方式导入到HDFS
--as-avrodatafile
导入为 Avro Data 文件格式
--as-sequencefile
导入为 SequenceFiles文件格式
--as-textfile
导入为文本格式  (默认值)
--as-parquetfile
导入为 Parquet 文件格式
--columns
指定要导入的列
--delete-target-dir
如果目标文件夹存在,则删除
--fetch-size
一次从数据库读取的数量大小
-m,--num-mappers
n 用来指定map tasks的数量,用来做并行导入
-e,--query
指定要查询的SQL语句
--split-by
用来指定分片的列
--table
需要导入的表名
--target-dir
HDFS 的目标文件夹
--where
用来指定导入数据的where条件
-z,--compress
是否要压缩
--compression-codec
使用Hadoop压缩 (默认是 gzip)

案例:

数据准备
在本地mysql数据库中新建一个sqoop数据库数据如下:


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值