初识sqoop(一)

sqoop概念

  • 开源的数据传输工具,开源;
  • 它是hadoop生态圈中的一个第三方模块;
  • 它是apache项目,持续不断的更新;
  • 快速实现hadoop与传统数据库上的数据传输;
核心技术
  • 生成mapreduce任务
  • 数据映射
  • 作业创建
  • 并行控制

hadoop cdh环境sqoop安装

可以直接在管理界面安装sqoop(因为我用的是公司的cdh集群)

常用命令

  • sqoop命令说明
sqoop help
  • 列出database下的表
sqoop list-tables --connect jdbc:mysql://172.16.0.63/chenyanqiu --username root --password root

数据导入

mysql到hdfs尝试
数据准备
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190109155612117.png

全表导入

–connect :指定Sqoop 连接数据库的 JDBC 驱动,并从 S Q O O P H O M E / l i b 目 录 中 加 载 相 应 的 包 , 其 中 SQOOP_HOME/lib目录中加载相应的包,其中 SQOOPHOME/libSQOOP_HOME 为 Sqoop 安装的绝对路径;
–username和–password选项用于验证用户访问 MySQL 实例的权限;
–target-dir 选项指定导出数据的存放路径;
-m 1 选项指定 map 的数量;
使用的sqoop import命令最终翻译成 MR 任务执行

sqoop import --connect jdbc:mysql://localhost:3306/logs --username root --password 123456 --table weblogs --target-dir /data/weblogs/import -m 1

如果不指定–target-dir参数,将会在hdfs目录/user/root下生成一个以表名命名的文件夹下存放导入的数据,结果:
在这里插入图片描述

使用 Sqoop 导入数据还有很多有用的参数可以配置:

  • –as-avrodatafile和–as-sequencefile将数据导入为Avro文件和序列化的文件;
  • -z或者–compress参数可以在导入的过程中对数据进行压缩。默认的压缩方式为GZIP压缩;
  • –compression-codec 参数使用 Hadoop 支持的任何压缩编码;
  • –direct,该参数指示Sqoop直接使用数据库支持的本地导入导出工具。
部分数据导入
方式一:指定列
sqoop import --connect jdbc:mysql://172.16.0.63/chenyanqiu --username root --password root --table person --columns "id,name" --where "id>1"
方式️二:自由sql导入
sqoop import --connect jdbc:mysql://172.16.0.63/chenyanqiu --username root --password root --query "select id,name from person where id>1 and \$CONDITIONS" --target-dir /user/root/person_s -m 1

结果:
在这里插入图片描述

增量导入

持续将源数据导入到目标存储位置

核心参数
  • -check-clumn:指定增量字段(int类型或者时间类型);
  • -last-value:指定上一次的增量字段的值;
  • -incremental:指定追加方式(append模式和);
    append模式:对数据进行附加,不支持更新数据。比如日志数据收集。
    lastmodified模式:在源表中数据更新的时候使用。记录变动需记录时间。
sqoop import --connect jdbc:mysql://172.16.0.63:3306/chenyanqiu --username root --password root --target-dir /user/root/cc --table person -m 1 --check-column id --last-value 3 --incremental append

sqoop导出

sqoop export

sqoop增量导入作业

意图:保存任务执行参数,确保任务可以被重复执行
语法:sqoop job <通用控制参数> <作业控制参数>

创建job
sqoop job --create myjob1 -- import --connect jdbc:mysql://172.16.0.63:3306/chenyanqiu --username root --password root --target-dir /user/root/cc1 --table person -m 1 --check-column id --last-value 1 --incremental append --verbose
查看已创建的job
sqoop job list
查看job详情
sqoop job --show myjob
执行job
sqoop job --exec myjob

定时调度作业调度sqoop作业

定时作业实现方式
  • 使用Oozie,定时调度sqoop
  • 编写定时程序,定时程序定时调度sqoop作业
  • 使用centos自带的调度器crontab实现sqoop任务定时调度
    在这里插入图片描述

常见问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值