Sqoop功能
1.将关系型数据库数据导入HDFS,解决HDFS的数据来源问题,使数据能够方便地进入HDFS。
2.支持HDFS数据导出到关系型数据库,Hadoop计算出的数据可以方便地写回到数据库中。
3.支持关系型数据库直接将数据导入到Hive。
4.Sqoop是批处理类型的任务,不是常驻服务,不需要像WEB服务一样常驻运行,在需要的时候提交任务就可以完成数据的导入导出。
5.Sqoop是使用命令行进行任务的提交,提供类似于Shell的脚本的Sqopp命令,提交方式很简便。
6.Sqoop支持各种存储类型,包括行存、列存以及各种数压缩算法。
Sqoop架构
如果是你设计一个数据库数据导入导出工具的话,会怎么实现呢?首先比较简单而且也容易想到的方式是使用JDBC,将数据从数据库中拉取出来然后写入HDFS,这种方法简单易行,但是缺点也很明显,数据量较大时,效率不高。
Sqoop是怎么做的呢,它其实是依赖MapReduce的计算框架,将数据导入并行化,采用分而治之的思想,每个Map只处理一部分数据,然后由Reduce将Map的中间结果聚合起来。其实并不需要Reduce,只是用Map就可以完成数据的并行导入导出工作了,每个Map使用JDBC将数据从数据库抽取出来,写入到HDFS,就可以完成数据的导入任务。由于使用了MapReduce并发计算的特性,Sqoop可以显著提高数据导入导出的效率。在实际使用中,Sqoop一般不会称为性能的瓶颈,在磁盘读写和宽带都不是瓶颈的