我在組合的NodeJS應用程序的工作與了Riak /了Riak-JS和遇到以下問題:Riak在MapReduce查詢失敗。使用哪種配置?
運行這個請求
db.mapreduce
.add('logs')
.run();
corretly返回存儲與剷鬥日誌中的所有155,000物品的編號:
[ 'logs', '1GXtBX2LvXpcPeeR89IuipRUFmB' ],
[ 'logs', '63vL86NZ96JptsHifW8JDgRjiCv' ],
[ 'logs', 'NfseTamulBjwVOenbeWoMSNRZnr' ],
[ 'logs', 'VzNouzHc7B7bSzvNeI1xoQ5ih8J' ],
[ 'logs', 'UBM1IDcbZkMW4iRWdvo4W7zp6dc' ],
[ 'logs', 'FtNhPxaay4XI9qfh4Cf9LFO1Oai' ],
....
如果我指定地圖的Funktion並使用只有少數的項目在桶登錄
db.mapreduce
.add([['logs', 'SUgJ2fhfgyR2WE87n7IVHyBi4C9'], ['logs', 'EMtywD1UFnsq9rNRuINLzDsHdh2'], ['logs', 'ZXPh5ws8mOdASQFEtLDk8CBRn8t']])
.map(function(v) {return ["asd"]; })
.run();
一切工作正常,並返回以下,預期輸出:
[ 'asd', 'asd', 'asd' ]
如果我現在想了Riak映射在鬥「日誌」的所有項目(約155,000小JSON文檔)
db.mapreduce
.add('logs')
.map(function(v) {return ["asd"]; })
.run();
我只收到錯誤:
{ [Error: [object Object]] message: '[object Object]', statusCode: 500 }
是什麼發生在這裏?在錯誤對象中沒有任何用處。
更新: 的了Riak控制檯說以下多次:
[notice] JS call failed: All VMs are busy.
在riaks遞增map_js_vm_count後的app.config到36,消息變爲:
[error] Pipe worker startup failed:fitting was gone before startup
鏈接: 從basho.com Basho Labs Riak Driver riak-js
喜布賴恩,感謝您的出色答卷,它幫助了很多的了Riak有較深造詣。你是對的,我正在使用默認的單節點開發集羣。正如你所提到的,將環的大小減少到8之後,一切正常。 –