📜  Hadoop 中的 SQOOP 概述

📅  最后修改于: 2021-10-27 06:30:41             🧑  作者: Mango

SQOOP :

以前在没有Hadoop或者没有大数据概念的时候,所有的数据都是用来存储在关系数据库管理系统中的。但如今大数据概念引入后,需要以更简洁有效的方式存储数据。于是 Sqoop 应运而生。

因此,所有存储在关系数据库管理系统中的数据都需要转移到 Hadoop 结构中。因此,手动传输如此大量的数据是不可能的,但在 Sqoop 的帮助下,我们可以做到。因此,Sqoop 被定义为用于执行从关系数据库管理系统到 Hadoop 服务器的数据传输操作的工具。因此,它有助于将大量数据从一个源点传输到另一个源点。

Sqoop 的一些重要特性:

  • Sqoop 还帮助我们将 SQL 查询的结果连接到 Hadoop 分布式文件系统。
  • Sqoop 帮助我们将处理后的数据直接加载到 hive 或 Hbase 中。
  • 它在 Kerberos 的帮助下执行数据的安全操作。
  • 在 Sqoop 的帮助下,我们可以对处理后的数据进行压缩。
  • Sqoop 在本质上非常强大和高效。

Sqoop 中执行了两个主要操作:

  1. 进口
  2. 出口

Sqoop 工作:

SQOOP 架构

基本上,在 Sqoop 中发生的操作通常是用户友好的。 Sqoop 使用命令行界面来处理用户的命令。 Sqoop 还可以通过使用Java API 与用户交互来使用其他方式。基本上,当它收到用户的命令时,它由 Sqoop 处理,然后对命令进行进一步处理。 Sqoop 将只能根据用户命令执行数据的导入和导出,无法形成数据聚合。

Sqoop是一种以以下方式工作的工具,它首先解析用户在命令行界面中提供的参数,然后将这些参数发送到下一个阶段,在该阶段为仅 Map 作业引入参数。一旦 Map 接收到参数,它就会根据用户在命令行界面中作为参数定义的数量给出释放多个映射器的命令。一旦这些作业用于导入命令,每个映射器任务都会根据用户在命令行界面中定义的键分配到要导入的数据的相应部分。为了提高进程的效率,Sqoop 使用并行处理技术,其中数据在所有映射器之间平均分配。此后,每个映射器然后使用Java数据库连接模型创建与数据库的单独连接,然后获取 Sqoop 分配的数据的各个部分。获取数据后,将根据命令行中提供的参数将数据写入 HDFS 或 Hbase 或Hive 。至此Sqoop导入过程完成。

Sqoop 中数据的导出过程以同样的方式执行,可用的 Sqoop 导出工具通过允许一组文件从 Hadoop 分布式系统返回到关系数据库管理系统来执行操作。在导入过程中作为输入给出的文件称为记录,之后当用户提交其作业时,它被映射到从 Hadoop 数据存储中带来数据文件的 Map Task,并将这些数据文件导出为任何结构化数据目标是关系数据库管理系统的形式,如 MySQL、SQL Server 和 Oracle 等。

现在让我们详细了解两个主要操作:

Sqoop 导入:

Sqoop 导入命令有助于执行操作。借助import命令,我们可以从Relational数据库管理系统中将一张表导入到Hadoop数据库服务器中。 Hadoop 结构中的记录存储在文本文件中,每条记录作为单独的记录导入到 Hadoop 数据库服务器中。我们也可以在导入数据的同时在Hive创建load和partition..Sqoop也支持增量导入数据,这意味着如果我们已经导入了一个数据库并且我们想要添加更多的行,那么在这些功能的帮助下我们只能添加现有数据库的新行,而不是完整的数据库。

Sqoop 导出:

Sqoop export 命令有助于操作的实施。在导出命令的帮助下,该命令用作操作的反向过程。借助 export 命令,我们可以将数据从 Hadoop 数据库文件系统传输到关系数据库管理系统。操作完成前将导出的数据处理成记录。数据的导出分两步完成,第一步是检查数据库中的元数据,第二步涉及数据迁移。

在这里,您可以了解如何借助 Sqoop 在 Hadoop 中执行导入和导出操作。

Sqoop 的优点:

  • 在 Sqoop 的帮助下,我们可以执行与 Oracle、Teradata 等各种结构化数据存储之间的数据传输操作。
  • Sqoop 帮助我们以非常快速且具有成本效益的方式执行 ETL 操作。
  • 在 Sqoop 的帮助下,我们可以对数据进行并行处理,从而加快整个过程。
  • Sqoop 使用 MapReduce 机制进行操作,该机制也支持容错。

Sqoop 的缺点:

  • 在执行操作过程中发生的故障需要一个特殊的解决方案来处理问题。
  • Sqoop使用JDBC连接与关系型数据库管理系统建立连接,是一种低效的方式。
  • Sqoop 导出操作的性能取决于硬件配置关系数据库管理系统。