sqoop简介
sqoop是一个款开源工具,主要用于hadoop(hive)与传统的数据库(mysql,orcle,postgresql…)之间进行数据传递。
sqoop项目开始于2009年,最早是作为hadoop的一个第三方模块存在,后来为了让使用者方便,也为了让开发人员能够更快捷的迭代开发,sqoop独立成立一个apache的子项目。
sqoop原理
将导入或者导出的命令翻译成mapreduce程序来实现。
在翻译的mapreduce中主要是对inputformat和outputformat进行定制的。
什么是Sqoop?
Sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
核心功能
1、导入、迁入
2、导出、迁出
导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。
Sqoop:
工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序
hive
工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序
工作机制:
将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制。
Sqoop1和Sqoop2区别:
Sqoop1.x中,仅仅使用了一个Sqoop客户端,它是单用户的、架构部署简单。客户端发送命令到Sqoop,Sqoop转换为MapReduce作业运行在Hadoop集群环境上,从而实现RDBMS和Hadoop之间相互导入导出。Sqoop1.x只一个mapreduce作业,只有map没有reduce。
Sqoop2.x 中,引入了sqoop server集中化管理Connector,支持多种交互方式:命令行、Web UI、Rest API,所有的链接安装在sqoop server上,完善了权限管理机制(可配置管理员、使用者等角色),Connector规范化( 不再包含数据传输,格式转换、与Hive、Hbase交互等功能仅负责数据读写)。Sqoop2.x中的MapReduce作业既有Map也有Reduce。