【问题标题】:Is Apache Sqoop really necessary for Apache Hadoop? Is there any alternate way to use database inputs for processing in hadoop?Apache Hadoop 真的需要 Apache Sqoop 吗?有没有其他方法可以使用数据库输入在 hadoop 中进行处理?
【发布时间】:2014-05-22 22:43:52
【问题描述】:

众所周知,hadoop 与 MapReduce 概念配合使用。但是从逻辑上讲,将数据库拆分为数据块是不可能的。为此,我们使用 Apache sqoop 将数据库表的内容导入 HDFS。

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

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

提前致谢。

【问题讨论】:

    标签: apache hadoop sqoop


    【解决方案1】:

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

    因为如果我们将映射数量配置为 10 x -m 10,Sqoop 分两个阶段完成这项工作。

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

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

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

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

    【讨论】:

      【解决方案2】:

      BigSQL 结合了 PostgreSQL 和 Hadoop。 MongoDB MapReduce 是“数据库”上的纯 MapReduce 实现。

      这就是你要问的吗?

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

      【讨论】:

      • 感谢您的示例。使用 Hadoop 进行数据库处理真的有效吗?我认为它只适用于处理文件。
      • 您实际上并未处理数据。 Sqoop 主要用于数据的导入和导出。从 DB 导入 HDFS -> 使用 MapReduce 处理 -> 导出回 DB。这是主要模式。
      • 所以还是用sqoop更好吧? sqoop 也会比 BigSQL 和 MongoDB 占上风,对吧?
      • 如果您要使用大数据,那么一定要使用 Sqoop。
      【解决方案3】:

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

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

      This presentation 很好地介绍了 Sqoop 的使用和内部结构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-08
        • 1970-01-01
        • 1970-01-01
        • 2019-03-27
        • 2020-03-07
        • 1970-01-01
        • 2012-05-04
        • 1970-01-01
        相关资源
        最近更新 更多