大数据技术——数据库数据采集工具Sqoop

文章目录:

Sqoop简介

 特点

Sqoop官方下载链接

Sqoop的应用

        1.安装Sqoop

        2.Sqoop参数


Sqoop简介

Sqoop:由Apache开源的一个可以将Hadoop和关系型数据库(例如MySQL、Oracle等)中的数据相互转移的工具,一个轻量级实现关系型数据库和HDFS间数据转移的工具。

 特点

来源Apache
开发语言Java
运行模式MapReduce
分布式支持
执行效率
数据源类型仅支持关系型数据库和Hadoop相关存储系统
扩展性一般
社区活跃度活跃
资料完整度完整


Sqoop版本对比

Sqoop有两种版本,完全不兼容,1.4.X为Sqoop1 , 1.99.X为Sqoop2

1版本中Sqoop只是一个客户端工具,负责将用户的命令转换为MR任务去执行,从而实现关系型数据库和Hadoop的相互数据传递。

2版本中Sqoop中引入了服务端,对Connector实现了集中管理,支持多种交互方式:命令行、WebUI和REST API。

相对来讲,1版本更加简洁,轻量级。但2版本更加安全。

Sqoop官方下载链接

https://sqoop.apache.org/

Sqoop的应用

1.安装Sqoop
  • 使用Xftp上传Sqoop的tar包到Linux上并解压缩
  • 输入命令:

tar -zxvf sqoop-1.4.7.bin_hadoop-2.6.0.tar.gz

  • 修改配置文件的名称:

cd sqoop-1.4.7.bin_hadoop-2.6.0/conf

mv sqoop-env-template.sh sqoop-env.sh

  • 配置SQOOP_HOME环境变量。

vim /etc/profile

  • 在末尾添加

export SQOOP_HOME=/opt/sqoop-1.4.7.bin_hadoop-2.6.0

export PATH=$SQOOP_HOME/bin:$PATH

  • 添加MySQL驱动程序的Jar包
  • 由于需要使用Sqoop操作MySQL,所以需要把MySQL的驱动程序Jar包添加到Sqoop的lib目录下,并验证是否成功添加MySQL的驱动包。
  • 以MySQL 8.0.16为例,所添加的Jar包为mysql-connector-java-8.0.16.jar。

                              

2.Sqoop参数

Sqoop命令的基本语法如下:

sqoop <command> [generic-args] [command-args]

import 语法示例:

sqoop import \
--connect <JDBC连接字符串> \
--username <用户名> \
--password <密码> \
--table <表名> \
--target-dir <目标目录> \
--fields-terminated-by <字段分隔符> \
--lines-terminated-by <行分隔符> \
--columns <列名列表>

export 语法示例:

sqoop export \
--connect <JDBC连接字符串> \
--username <用户名> \
--password <密码> \
--table <表名> \
--input-null-string <输入中表示NULL值的字符串> \
--input-null-non-string <输入中表示NULL值的非字符串值> \
--export-dir <导出数据的源目录> \
--input-fields-terminated-by <输入字段的分隔符> \
--input-lines-terminated-by <输入行的分隔符> \
--columns <列名列表>

Sqoop常用的命令选项
(1) 导入数据命令选项:

--connect指定数据库连接URL
--username指定数据库用户名
--password指定数据库密码
--table指定要导入的数据库表名
--columns指定要导入的列
--target-dir指定导入数据的目标目录
--where指定导入数据的条件
--split-by指定用于拆分数据的列
--num-mappers指定并行导入的Mapper数量
--null-string指定数据库中表示NULL值的字符串
--null-non-string指定数据库中表示NULL值的非字符串值


(2) 导出数据命令选项:

--batch使用批量模式导出
--direct使用直接导出模式
--call导出数据调用的指定存储过程名
--table导出的目的表名称
--export-dir导出过程中HDFS的源路径
--update-key更新参考的列名称
--update-mode指定更新策略,包括updateonly,allowinsert
--input-null-string指定输入中表示NULL值的字符串
--input-null-non-string指定输入中表示NULL值的非字符串值
--m使用n个map任务并行导出
--clear-staging-table清除工作区中临时存放的数据


(3) 通用命令选项:

--as-avrodatafile将数据导入/导出为Avro文件
--as-parquetfile将数据导入/导出为Parquet文件
--as-textfile将数据导入/导出为文本文件
--delete-target-dir在导入之前删除目标目录
--fields-terminated-by指定字段的分隔符
--verbose显示详细的调试信息
--compress启用压缩
--lines-terminated-by指定行的分隔符
--null-string指定输出中表示NULL值的字符串
--null-non-string指定输出中表示NULL值的非字符串值
--connection-manager指定要使用的连接管理器类


 

                           

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值