Sqoop - 简介

传统的应用程序管理系统,即使用 RDBMS 进行应用程序与关系数据库的交互,是生成大数据的来源之一。由 RDBMS 生成的这种大数据存储在关系数据库结构中的关系数据库服务器中。

当 Hadoop 生态系统中的 MapReduce、Hive、HBase、Cassandra、Pig 等大数据存储和分析器出现时,它们需要一个工具来与关系数据库服务器交互,以导入和导出驻留在其中的大数据。在这里,Sqoop 在 Hadoop 生态系统中占据一席之地,为关系数据库服务器和 Hadoop 的 HDFS 之间提供可行的交互。

Sqoop − "SQL 到 Hadoop 和 Hadoop 到 SQL"

Sqoop 是一种用于在 Hadoop 和关系数据库服务器之间传输数据的工具。它用于将数据从关系数据库(如 MySQL、Oracle)导入到 Hadoop HDFS,并从 Hadoop 文件系统导出到关系数据库。它由 Apache 软件基金会提供。

Sqoop 如何工作?

下图描述了 Sqoop 的工作流程。

Sqoop Work

Sqoop 导入

导入工具将单个表从 RDBMS 导入到 HDFS。表中的每一行都被视为 HDFS 中的一条记录。所有记录都作为文本数据存储在文本文件中,或作为二进制数据存储在 Avro 和序列文件中。

Sqoop 导出

导出工具将一组文件从 HDFS 导出回 RDBMS。作为 Sqoop 输入的文件包含记录,这些记录称为表中的行。这些被读取并解析成一组记录,并用用户指定的分隔符分隔。