Apache Hadoop真的需要Apache Sqoop吗?有没有其他方法可以在hadoop中使用数据库输入进行处理?

时间:2014-02-27 12:11:07

标签: apache hadoop sqoop

已知事实是hadoop与MapReduce概念一起使用。但是,将数据库拆分为数据块在逻辑上是不可能的。为此,我们有Apache sqoop,它将数据库表的内容导入HDFS。

我的问题是 - 将sqoop与Hadoop一起使用真的有用吗?如果是,那么任何人都可以用一个实时例子来解释我已经实现了hadoop以便在数据库上使用MapReduce吗?

如果我了解MapReduce如何在数据库相关处理中实现,那将是非常好的。

提前致谢。

3 个答案:

答案 0 :(得分:3)

Sqoop在Hadoop和MySQL之间的导入和导出数据方面带来了很多简化。 但是,如果我们看一下它支持多个map任务的并行性,我会说它比每个数据库支持的传统导入消耗的时间要多得多。 (前 - mysqldump)。

因为如果我们将地图数量配置为10乘-m 10,那么Sqoop分两个阶段完成这项工作。

  1. 对表格应用查询以查找--split-by列的MIN和MAX值。 (主键,如果没有配置)

  2. 计算MIN和MAX值后,根据映射的数量,它会将查询拆分为与每个映射任务对应的特定小范围,然后再次转到数据库以获取数据并将其填充到HDFS中

  3. 所以我会说它消耗了X + Y的时间量,其中x是传统查询或查询作为sqoop第一阶段结果运行所花费的时间。

    总结:Sqoop可以非常简单的方式用于在hadoop和rdbms之间导入和导出数据。但是,它将永远无助于在较短的时间内完成/完成任务。

答案 1 :(得分:0)

sqoop文档中的每一章都提供了有关如何使用它的多个示例,例如:sqoop import example invocations

一般来说,sqoop是使用MapReduce和SQL数据库在HDFS之间导入/导出数据的最简单方法。

This presentation为Sqoop的使用和内部提供了非常好的介绍。

答案 2 :(得分:0)

BigSQL结合了PostgreSQL和Hadoop。 MongoDB MapReduce是对“数据库”的纯粹MapReduce填充。

这就是你问的问题吗?

否则sqoop很棒并且被广泛采用。示例:ManufacturingHealthcare