在MongoDB下写了一个map/reduce程序,想针对海量数据按特征归类,因此设计中,reduce后的数据结构是下面这样的:
- {
- _id: "特征",
- value: { data: ["内容1", "内容2", "内容3", ......] }
- }
在数据量不大的时候一切正常,当逐渐提高数据量时,比如到了5000万的量级时,出现了下面的13070错误:
- Web Dec 19 10:23:11 uncaught exception: map reduce failed: {
- "errmsg" : "exception: value too large to reduce",
- "code" : 13070,
- "ok" : 0
- }
出现这个错误是由于reduce时的value太大了,我的reduce程序中,最终return的是一个数组,当reduce后这个数组过大(据说是超过8MB),就会导致reduce失败,查了查没有什么好的解决方案。目前暂时在reduce时发现数组过长就截断丢弃后面的数据,这样就不再报错了。
本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/1094026,如需转载请自行联系原作者