Hadoop系列 (九):Sqoop详细介绍

Hadoop系列文章

Hadoop系列 (一):在CentOS中搭建hadoop环境(伪分布式)

Hadoop系列 (二):完全分布式搭建(腾讯云服务器+阿里云服务器)

Hadoop系列 (三):HDFS详细介绍

Hadoop系列 (四):Yarn详细介绍

Hadoop系列 (五):MapReduce详细介绍

Hadoop系列 (六):Spark搭建

Hadoop系列 (七):ZooKeeper详细介绍

Hadoop系列 (八):Hbase搭建

Hadoop系列 (九):Sqoop详细介绍

Hadoop系列 (十):Flume详细介绍

Sqoop简介

Sqoop全称是 Apache Sqoop,是一个开源工具,能够将数据从数据存储空间(数据仓库,系统文档存储空间,关系型数据库)导入 Hadoop 的 HDFS列式数据库HBase,供 MapReduce 分析数据使用。

​ 数据传输的过程大部分是通过 MapReduce 过程来实现,只需要依赖数据库的Schema信息。Sqoop所执行的操作是并行的,数据传输性能高,具备较好的容错性,并且能够自动转换数据类型。

Sqoop是一个为高效传输海量数据而设计的工具,一般用在从关系型数据库同步数据到非关系型数据库中

Sqoop专门是为大数据集设计的。Sqoop支持增量更新,将新记录添加到最近一次的导出的数据源上,或者指定上次修改的时间戳。

Sqoop架构

Sqoop架构主要有三部分组成:Sqoop客户端,数据存储与挖掘、数据存储空间。

其中数据存储与挖掘主要为HDFS、Hbase、Hive等工具。

在这里插入图片描述

从图中可以看出:

  1. Sqoop通过Hadoop中的Map任务将数据从数据存储空间中导入HDFS供数据分析使用
  2. Sqoopzhi负责数据传输,不负责数据分析,只涉及Map任务,不涉及Reduce任务。
  3. Sqoop本质是运行一个mapreduce程序,所以要运行sqoop,先启动Hadoop。

Sqoop数据导入

sqoop数据导入大致流程如下:

在这里插入图片描述

  1. Sqoop通过JDBC读取数据元数据信息,例如表列名,数据类型等。
  2. Sqoop获取元数据信息,并生成以一个与表名相同的容器类。
  3. Sqoop生成的容器类完成数据的序列化和反序列化,保存表的每一行数据。
  4. Sqoop生成的记录容器类向Hadoop的Map作业提供序列化和反序列化的功能,然后sqoop启动Map作业。
  5. 在Sqoop启动Map作业过程中,Map利用Sqoop生成的记录容器类提供的反序列化功能,通过JDBC读取数据库中的内容。
  6. Map作业将读取的数据写入HDFS,此时Sqoop生成的记录容器类提供序列化功能。

Sqoop数据导出

Sqoop数据导出过程:将通过MapReduce或Hive分析后得出的数据结果导出到关系型数据库,供其他业务查看或生成报表使用

Sqoop export 是将一组文件从HDFS导出回RDBMS的工具。 前提条件是,在数据库中,目标表必须已经存在。 根据用户指定的分隔符将输入文件读取并解析为一组记录。

在这里插入图片描述

此过程与Sqoop数据导入类似,只是在导出数据之前,需要在RDBMS中建立目标表,Sqoop读取该表的元数据信息,为Map作业读取HDFS数据提供序列化及反序列化的功能,最后通过一批INSERT语句写入目标数据库中。

Sqoop安装部署

版本介绍

官网地址:https://sqoop.apache.org/

sqoop和sqoop2,但是后sqoop2还不稳定,不稳定,所以不要用于生产,二者之间主要有以下异同:

  1. 两个不同的版本,完全不兼容
  2. 版本号划分区别,Apache版本:1.4.x(Sqoop1); 1.99.x(Sqoop2) CDH版本 : Sqoop-1.4.3-cdh4(Sqoop1) ; Sqoop2-1.99.2-cdh4.5.0 (Sqoop2)。
  3. 相对于Sqoop1来说,Sqoop2引入了Sqoop server,集中化管理connector等。
  4. Sqoop2提供了多种访问方式:CLI,Web UI,REST API。
  5. Sqoop引入了基于角色的安全机制。

由于我之前的Hadoop一系列组件都是采用的Apache版本,下面会使用Apache Sqoop进行安装部署。

前提环境

  • Hadoop

  • 关系型数据库(MySQL/Oracle)

  • HBase

  • Hive

  • ZooKeeper

下载

使用Sqoop1最新版本:

[hadoop@master software]$ wget https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

安装配置

将Sqoop解压到指定目录/opt/sqoop

# 创建sqoop文件夹并修改权限
[hadoop@master software]$ cd /opt
[hadoop@master opt]$ mkdir sqoop
[hadoop@master opt]$ sudo mkdir sqoop
[hadoop@master opt]$ sudo chown -R hadoop:hadoop sqoop

#解压
[hadoop@master software]$ tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/sqoop/ --strip-components 1

安装在/opt文件夹是个人习惯,大家可以发现,我几乎所有程序都放在这个文件夹里,可以根据个人习惯进行调整。

在这里插入图片描述

linux各个文件夹大概可以理解为:

/usr:系统级的目录,可以理解为C:/Windows//usr/lib理解为C:/Windows/System32
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
/usr/src:系统级的源码目录。
/usr/local/src:用户级的源码目录。

安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面,很方便进行管理。

修改Sqoop环境变量

编辑文件.bash_profile,在文件末尾添加下面内容:

#set Sqoop env
export SQOOP_HOME=/opt/sqoop
export PATH=
  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值