热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【大数据技术】Sqoop

1.Sqoop是什么Sqoop:SQL-to-Hadoop,传统数据库与Hadoop间数据同步工具。(MySQL、Oracle<>HDFS、HBase、Hive)
 1.Sqoop是什么

Sqoop:SQL-to-Hadoop,传统数据库与Hadoop间数据同步工具。(MySQL、Oracle <==> HDFS、HBase、Hive)

Sqoop 的核心设计思想是利用 MapReduce 分布式批处理,加快了数据传输速度,保证了容错性。也就是说 Sqoop 的导入和导出功能是通过 MapReduce 作业实现的。

2.Sqoop1和Sqoop2两个版本
这两个版本是完全不兼容的,其具体的版本号区别为1.4.x为sqoop1(最高版本1.4.6),1.99x为sqoop2。sqoop1和sqoop2在架构和用法上已经完全不同。

(1)sqoop2优势:

在架构上,sqoop2引入了sqoop server(具体服务器为tomcat),对connector实现了集中的管理。访问方式也变得多样化了,其可以通过REST API、JAVA API、WEB UI以及CLI控制台方式进行访问。

 安全性能方面也有一定的改善,sqoop1需要显示指定数据库的用户名和密码。sqoop2中,如果是通过CLI方式访问的话,会有一个交互过程界面,你输入的密码信息不被看到。
(2) sqoop2缺点:

 sqoop2的部署相比于sqoop1复杂的多。

sqoop2不兼容sqoop1,sqoop1中的import和export脚本实现的功能用JAVA API去重新编写。

 
3.Sqoop原理

(1)sqoop import原理:
        从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的Mapreduce作业,在mapreduce中有很多map,每个map读一片数据,进而并行的完成数据的拷贝。

  • 在导入前,Sqoop使用JDBC来检查将要导入的数据表。
  • Sqoop检索出表中所有的列以及列的SQL数据类型。
  • 把这些SQL类型的映射到java数据类型,例如(VARCHAR、INTEGER)———>(String,Integer)。
  • 在MapReduce应用中将使用这些对应的java类型来保存字段的值。
  • Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。

(2)sqoop export原理:
        获取导出表的schema、meta信息,和Hadoop中的字段match;多个map only作业同时运行,完成hdfs中数据导出到关系型数据库中。

  • 在导出前,sqoop会根据数据库连接字符串来选择一个导出方法 ————>对于大部分系统来说,sqoop会选择JDBC。
  • Sqoop会根据目标表的定义生成一个java类。
  • 这个生成的类能够从文本中解析出记录,并能够向表中插入类型合适的值(除了能够读取ResultSet中的列)。
  • 然后启动一个MapReduce作业,从HDFS中读取源数据文件。
  • 使用生成的类解析出记录,并且执行选定的导出方法。
 
参考文档:
sqoop框架原理及基本操作
sqoop简介以及架构介绍
sqoop2基本架构、部署和个人使用感受
Sqoop1和Sqoop2的刨析对比
sqoop1官方手册
sqoop2官方手册

推荐阅读
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
author-avatar
柯洁豪雅伯育瑋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有