【问题标题】:Implementing a MapReduce skeleton in Erlang在 Erlang 中实现 MapReduce 框架
【发布时间】:2022-01-22 02:18:59
【问题描述】:

我对并行编程和 Erlang 语言都很陌生,而且我有点挣扎。

我很难实现 mapreduce 框架。我生成了 M 个映射器(它们的任务是将幂函数映射到浮点数列表中)和 R 个化简器(它们对映射器发送的输入列表的元素求和)。

然后我想要做的是将每个映射器的中间结果发送到一个随机减速器,我该如何将一个映射器链接到一个减速器? 我已经在互联网上查看了示例。我能找到的最接近我想做的事情是this word counter example,作者似乎找到了一种将映射器链接到reducer的聪明方法,并且逻辑是有道理的,但是我无法对其进行调整为了满足我的特殊需要。也许键值实现不适合求幂列表的总和?

有什么帮助吗?

【问题讨论】:

    标签: multiprocessing mapreduce erlang spawn skeleton-code


    【解决方案1】:

    好的,我已经设法更改单词计数器示例的代码来计算幂列表的总和。

    其实很简单。 (还有一些我之前尝试过的东西,但一开始并没有用。也许有一个我没有注意到的错误,但是哦。)

    问题确实存在于用户定义的映射函数以及它生成键值对的方式中:对于每一对,键总是应该是同一个原子,而值只是应用到的正弦函数当前号码。

    这是我必须对上面链接的代码进行的唯一修改:

    M_func = fun(List) ->
                     lists:map( fun(X) -> 
                      {atom, X*X}
                   end, List)
               end,
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      相关资源
      最近更新 更多