benzhou 发表于 2018-10-27 14:12:25

MongoDB的“value too large to reduce”错误

  在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时发现数组过长就截断丢弃后面的数据,这样就不再报错了。


页: [1]
查看完整版本: MongoDB的“value too large to reduce”错误