已知事实是hadoop与MapReduce概念一起使用。但是,将数据库拆分为数据块在逻辑上是不可能的。为此,我们有Apache sqoop,它将数据库表的内容导入HDFS。
我的问题是 - 将sqoop与Hadoop一起使用真的有用吗?如果是,那么任何人都可以用一个实时例子来解释我已经实现了hadoop以便在数据库上使用MapReduce吗?
如果我了解MapReduce如何在数据库相关处理中实现,那将是非常好的。
提前致谢。
答案 0 :(得分:3)
Sqoop在Hadoop和MySQL之间的导入和导出数据方面带来了很多简化。 但是,如果我们看一下它支持多个map任务的并行性,我会说它比每个数据库支持的传统导入消耗的时间要多得多。 (前 - mysqldump)。
因为如果我们将地图数量配置为10乘-m 10,那么Sqoop分两个阶段完成这项工作。
对表格应用查询以查找--split-by列的MIN和MAX值。 (主键,如果没有配置)
计算MIN和MAX值后,根据映射的数量,它会将查询拆分为与每个映射任务对应的特定小范围,然后再次转到数据库以获取数据并将其填充到HDFS中
所以我会说它消耗了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很棒并且被广泛采用。示例:Manufacturing,Healthcare。