Sqoop学习(一) —— 简单理论总结

一、前言

最近项目中需要用到sqoop,刚开始还以为是之前完全没接触过的技术,后面用上之后才发现本科毕设那会帮实验室跑测试用过,顿时感受到遗忘的力量,不过当时也就只是搜了几个需要用到的命令执行完成任务就完事了,也没去具体的学习,最近利用时间快速的过了一下,在此进行简单的总结。

二、参考链接

三、知识点

3.1 Sqoop产生背景

在基于Hadoop生态框架的大数据技术来临之后,需要将数据导入大数据平台中,然而当时数据基本上都存储在传统的关系型数据库中,如何将数据从RDBMS转入Hadoop生态环境中(HDFS、Hive、HBase等)是个难题,Sqoop工具由此诞生。

3.2 Sqoop概念介绍

Sqoop是连接RDBMS和Hadoop的桥梁、数据ETL工具 ,主要操作涉及两个方面,即导入import和导出export。其中import是指将数据从RDBMS中传送到Hadoop(HDFS、Hive、HBase)中,export指将数据从Hadoop中传送到RDBMS中。

Sqoop支持数据的全量和增量更新,这里简单解释一下全量和增量,全量和增量是数据同步的两种方式,前者是一次性导入数据,后者支持将新数据以append方式进行同步。

3.3 Sqoop的优势

  • 可自动完成数据映射和转换,也可用户自定义映射关系
  • 支持多种数据库(RDBMS如MySQL、Oracle;Hadoop下如Hive、HBase)
  • 高效可控,可通过调整任务数来控制任务的并发度(根据后续实战此处猜测是命令中的--num-mappers 1中对于这个数值的定义来控制任务并发数)

3.4 Sqoop的版本说明

  • Sqoop1:部署简单,Sqoop工具接收到客户端的shell命令或者java api命令后,通过Sqoop中的任务翻译器(Task Translator)将命令转换为对应的MapReduce任务,而后将关系型数据库和Hadoop中的数据进行相互转移,进而完成数据拷贝

  • Sqoop2:相较于Sqoop1来讲,Sqoop2添加了Sqoop Server机制,同时支持web ui和rest api,部署较为复杂

说明:一般练习使用Sqoop1足以,对Sqoop的需求如果只是一个转换RDBMS和Hive数据的工具的话安装部署Sqoop1即可,如果对其有更高的性能等要求可选择安装部署Sqoop2

3.5 Sqoop的工作机制

从本质上讲,Sqoop就是一个数据ETL工具,具体来讲是将Sqoop的数据转换命令转为MapReduce任务(job),所以也就依赖于Hadoop基础环境,数据格式的转换主要是通过对MR程序中的InputFormat和OutputFormat进行定制实现

四、总结

此篇博客算是通过学习他人博客关于Sqoop的总结然后自己做的一个小总结,后续如果有其他方面的深入学习会继续更新~

发布了41 篇原创文章 · 获赞 9 · 访问量 9760

猜你喜欢

转载自blog.csdn.net/qq_38586378/article/details/103930152