0

我在Riak上运行 Erlang Map/Reduce 作业。

过去当我使用 Javascript M/R 作业时,我必须正确调整 JS VM 设置。当时我发现这个对话非常有用:到http://riak-users.197444.n3.nabble.com/Follow-up-Riak-Map-Reduce-error-preflist-exhausted-td4024330.html

现在,因为我不是 Erlang 开发人员,所以我想知道在 Riak 上运行并发 M/R 作业时的主要含义是什么,以及是否需要设置任何 VM 设置(就像我过去对 JS M/R 所做的那样)。

谢谢

4

2 回答 2

1

目前我们发现了这个 riak mapred 陷阱:

  • worker_limit_reached。当您有大量数据到达映射作业且作业队列已满时,就会发生这种情况
  • 读取 r=1。使用 r=1 读取 mapreduce 中的所有数据
  • 没有读修复。Mapreduce 读取不会触发读取修复
  • 你可能会得到已经删除的数据。在mapred里面检查object的特殊头,表示object已经被删除

ps这是关于riak 1.2.1的。Basho 的人很快解决了许多问题,所以它可能会在不久的将来改变。

于 2012-12-14T07:41:44.333 回答
0

基本上这里发生的是 map/reduce 查询的所有阶段都是由 ErlangVM 执行的,而不是由 Erlang+JS 执行的。由于作业在 ErlangVM 中被隔离在不同的进程中,因此操作不受影响。就主机而言,您具有相同的计算能力,因此也可以。关于 ErlangVM 参数,其中许多参数经过调整以改进 Riak 操作,您的查询很好。

于 2012-12-14T03:38:51.747 回答