视频: 千锋大数据教程:94 Sqoop使用query导入和export导出 2024
准备好用Sqoop来导入数据?首先看一下这个图,它说明了从RDBMS或数据仓库系统进行典型的Sqoop导入操作的步骤。这里没有太复杂的东西 - 只是一个典型的产品数据表(典型的)是从典型的数据管理系统(DMS)导入到一个典型的Apache Hadoop集群中的虚拟公司。
<! - 1 - >在步骤1中,Sqoop使用适当的连接器从目标DMS检索产品表元数据。 (元数据用于将Products表中的数据类型映射到Java语言中的数据类型。)然后,步骤2使用这个元数据生成并编译一个Java类,这个Java类将被一个或多个map任务用来从Products表中导入实际的行。 Sqoop将生成的Java类保存到临时空间或您指定的目录,以便您可以将其用于后续处理数据记录。
<! - 2 - >
为您保存的Sqoop生成的Java代码就像是一直在奉献的礼物!使用此代码,Sqoop从DMS导入记录,并使用以下三种格式之一将它们存储到HDFS:二进制Avro数据,二进制序列文件或分隔文本文件。之后,您可以使用此代码进行后续数据处理。如果您要导入二进制数据类型,序列文件是一个自然的选择,您将需要生成的Java类来稍后对数据进行序列化和反序列化 - 可能用于MapReduce处理或导出。 Avro数据 - 基于Apache自己的序列化框架 - 在导入HDFS之后需要与其他应用程序交互时非常有用。
如果您选择以分隔文本格式存储导入的数据,则可能会在解析数据格式并对新数据执行数据格式转换时发现生成的Java代码。您将看到生成的代码还可以帮助您在Sqoop导入操作之后合并数据集,并且生成的Java代码可以帮助避免处理分隔文本数据时出现歧义。最后,在步骤3中,Sqoop将产品表中的数据记录分成许多映射任务(用户可选指定的映射器数量),并将表数据导入HDFS,Hive或HBase。