开发者学堂课程【Sqoop 企业级大数据迁移方案实战:软件介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/718/detail/12832
软件介绍
内容介绍:
一、Apache sqoop 介绍
二、底层工作机制展现
三、知识点总结与补充
一、Apache sqoop 介绍
Apache sqoop 在大数据的出现通常是为了满足我们在两个体系中的数据流入,流出,一个体系叫做 Hadoop 生态体系比如说:HBMS、hive 数据仓库、hfds 这样纯数据的体系。另外一个 RDBMS 体系代表着关系型数据库:比如说Mysql,在企业当中支持我们的业务纯熟的数据
当需要在两个数据集之间做导入导出时该如何完成?
首先选择可以人为的去做,但是没有有工具时操作便利。所以 Apache sqoop 的目的便是作为工具出现。
作为在大数据中满足我们在两个体系中的数据流入,流出的工具。
如下图
左侧代表关系型数据库 RDBMS 体系,另外一边为 Hadoop file 生态系统 HDFS hive,这两个体系之间涉及到数据的流转即可用 Apache sqoop 完成。
此时便涉及到一个问题导入导出是一个相对的过程,那从哪里到哪里叫做导入,从哪里到哪里叫做导出呢?
可观察上图,从左边关系型数据库 DBMS 体系到 import
此时有一个小技巧 Apache sqoop 属于 Apache 配置,而 Hadoop file 生态系统大多数软件也属于 Apache 配置,因此可以站在 Apache 官方立场来看,数据导入我方。叫做导入,反之,数据从我方出去叫做导出。
那么在这两个体系之间进行数据的导入导出,在底层则是借助的 mapredure 程序完成的,也就是说当去敲一个Hadoop 的命令,编辑好所需完成的工作,此时 Hadoop 底层会转变为 mapredure 程序,此时可以做数据的输入,在做数据的输出,此时正好符合数据导入导出的过程,只不过在进行导入导出所采用的 mapredure 程序与平时所采用的程序已经发生了改变,这是所使用的 mapredure 程序在默认情况下,使用 text。
此时当他读数据库时无论是读或者写去使用 text 则无法满足需要使用 inputfrom 和 outputfrom 进行定制来满足关系型数据库的对接。
因此可将图复制出来,进行数据的描述,
二、底层工作机制展现
首先明确数据在左边体系为关系型数据库,最重要的概念为支持事务,面向事务,而在在右边的体系为 hadoop 生态体系,不管是 HDFS 还是 HBase 最终均依赖该系统,在两体系之间,如果数据来到 Apache sqoop 当中,此过程叫做数据的导入,当他进行数据导入,底层通过 mapredure 程序完成,在左侧读取时,则进行分类,叫做DBinputformat ,从命名可看出 DB 表明可进行读取数据库中的表,在输出时,默认 text out putFprmat。此时完成了数据的导入导出,
此时数据如果呈相反的过程,数据的导出,依然底层通过 mapredure 程序完成,此时因为导出需要独自编写数据,因此需要 TextInputFormat,所以读数据时变成了文本形式,此时向外写数据时叫做 DBoutputFormat,此为 sqoop 底层工作机制
三、知识点总结与补充
因此在完成 sqoop 数据导入导出时前提是保证 mapredure 程序开发环境可以正常运行,则可保证导入导出的正常运行。
sqoop 全程为 sql 到 hadoop 和 hadoop 到 SQL
Apache sqoop 提供的一款很好的辅助软件,当涉及到在两个体系中的数据流入,流出时可借助 sqoop。