hadoop - 这种架构在 Hadoop MR 中可行吗?

标签 hadoop mapreduce hbase

在 Hadoop MapReduce 中是否可能存在以下架构?

使用分布式键值存储 (HBase)。因此,除了值之外,还会有一个与值关联的时间戳。 Map & Reduce 任务迭代执行。 map ,在每次迭代中应该接受在前一次迭代中添加到商店的值(也许是具有最新时间戳的值?)。 Reduce 应该接收 Map 的输出以及存储中的键与 reduce 在当前迭代中必须处理的键匹配的对。 reduce 的输出进入商店。

如果可能,应扩展哪些类(例如:InputFormat、Reduce 的 run()),以便代替常规操作进行上述操作。如果这是不可能的,是否有任何替代方法可以实现同样的目标?

最佳答案

因此您在第 n-1 次迭代中的“存储”可能是这样的:

键(时间戳 | 值)

a 1|x, b 2|x, c 3|x, d 4|x

在第 n 次迭代中,添加了这些对: ... b 5|x, d 6|x

映射器会找到这 2 条记录,因为时间戳 > 4 并将其放入中间结果

reducer 现在会发现,对于这两条记录,在 n-1 存储中还有另外两条匹配记录: b 2|x, d 4|x

因此,reduce 阶段的输出将是(无论顺序如何): b 5|x, d 6|x, b 2|x, d 4|x

这是你想要的吗?

关于hadoop - 这种架构在 Hadoop MR 中可行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261123/

相关文章:

scala - 使用Scala访问HBase的推荐方式

hadoop - 如果我在Hive中查询分区表,将运行多少mapreduce作业

vmware上的hadoop,namenode找不到从属

hadoop - Windows的Hadoop性能监控工具

apache-spark - 无法使用 pyspark 写入 hdfs

Hadoop 映射减少 : Order of records while grouping

hadoop - Hadoop reduce 函数的键输入是否完整?

mysql - 将数据从mysql导出到hbase

hadoop - Hadoop completebulkload提供RetriesExhaustedException

java - 从另一个 Java 程序运行 Hadoop 作业