在Erlang中实现MapReduce框架

kyks70gy  于 2022-12-16  发布在  Erlang
关注(0)|答案(1)|浏览(84)

我对并行编程和Erlang语言都是新手,我有点力不从心。
我在实现mapreduce框架时遇到了困难,我生成了M个Map器(它们的任务是将幂函数Map到一个浮点数列表中)和R个reduce(它们对Map器发送的输入列表中的元素求和)。
然后我想做的是将每个Map器的中间结果发送到一个随机的还原器,我如何着手将一个Map器链接到一个还原器?我已经在互联网上查找了一些例子。我能找到的最接近我想做的事情是this word counter example,作者似乎找到了一个聪明的方法将Map器链接到一个还原器,逻辑是有意义的,然而我还不能调整它以适应我的特殊需要。也许键-值实现不适合求幂列表的和?
有没有人帮忙?

6qftjkof

6qftjkof1#

仅给予一个更新,OP中链接的算法显然存在问题。看起来同步协议存在问题,这是通过调用sleep()函数(即,它不应该在那里)来暗示的。
关于map/reduce框架的良好工作实现,请参考编程Erlang一书(第2版)中Joe Armstrong的版本。
Armstrong的版本只使用了一个reducer,但是为了消除瓶颈,可以很容易地修改为更多的reducer。我还添加了一个函数来将输入列表拆分为块。每个mapper将获得一个数据块。

相关问题