gpt4 book ai didi

java - 使用 hadoop mapreduce 进行矩阵计算

转载 作者:可可西里 更新时间:2023-11-01 15:38:45 26 4
gpt4 key购买 nike

我有一个大约有 10000 行的矩阵。我写了一个代码,它应该在每次迭代中取一行,做一些长矩阵计算,并为矩阵的每一行返回一个 double 。由于每一行的操作数太多,运行代码需要很长时间。我正在考虑使用 MapReduce 来实现它,但我不确定它是否可能。主要思想是将矩阵行拆分为不同的节点,独立运行作业并将输出组合在一起并返回一个数字列表。根据我的理解,只有映射器才能完成这项工作。我对吗?可能吗?或者有更好的主意吗?提前致谢。顺便说一句,代码是用 Java 编写的。

最佳答案

这似乎是可能的 - 需要考虑的几点:

您可能想要运行一个身份映射器(将每个输入记录传递给缩减器的映射器)并在缩减器中进行行计算。在映射端进行计算可能仍会导致所有计算都在单个节点上完成(您的 10000 行矩阵小于输入拆分大小是可行的)。

您需要运行大量 reducer 以确保作业在您的集群节点之间并行执行。默认分区器将处理将输入行发送到不同的缩减器(假设您的行不是固定宽度,在这种情况下您应该运行一个使用计数器作为输出键的自定义映射器,而不是输入行的默认字节偏移量) .

要将所有结果重新组合在一起,您需要使用单个 reducer 运行第二个 MR 作业

关于java - 使用 hadoop mapreduce 进行矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20687615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com