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导入
导入工具将单个表从 RDBMS 导入到 HDFS。表中的每一行都被视为 HDFS 中的一条记录。所有记录都以文本数据形式存储在文本文件中,或以二进制数据形式存储在 Avro 和序列文件中。
斯库普出口
导出工具将一组文件从 HDFS 导出回 RDBMS。作为 Sqoop 输入的文件包含记录,这些记录在表中称为行。这些被读取并解析为一组记录,并使用用户指定的分隔符进行分隔。