栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Sqoop的一些基本操作

Sqoop的一些基本操作

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一般不会称为性能的瓶颈,在磁盘读写和宽带都不是瓶颈的前提下,数据的导入导出效率往往取决于DB的性能。上面的框架中Sqoop和数据库之间使用的是JDBC,所以逻辑上讲,所有支持JDBC操作的数据库都支持使用Sqoop将数据导入到HDFS中,当然各个数据库之间会存在差异,目前在不改造Sqoop的前提下,Sqoop支持的数据库有:MySQL,Oracle,SqlServer, postgreSQL,DB2等,基本涵盖了所有主流的数据库。

数据导入Hive流程
        如果命令指定要新建HIVE Table,Sqoop会先生成HIVE table的定义语句,Hive table的column和数据库的column建立一一映射的关系,然后Sqoop会生成一个rawData语句,rawdata语句会在Hive MateStore中注册元数据,并进行数迁移。上面的Hive的建表语句和rawdata语句都会被写入到一个script脚本中,最后会sqoop启动.hive命令执行刚刚生成的script脚本,提交Hive任务,完成Hive导出。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号