使用MongoDB的MapReduce报错

java__net 2020-02-23 05:04:14
我在使用MongoDB的过程中,使用了MapReduce的方法来做一些计算,但是系统运转了一段时间以后,随着数据量的增长开始出现问题。
系统日志报错如下:


MongoDB.Driver.MongoCommandException: Command 'mapreduce' failed: too much data for in memory map/reduce (response: { "ok" : 0.0, "errmsg" : "too much data for in memory map/reduce", "code" : 13604, "codeName" : "Location13604"


但我经过系统检测,在执行过程内连4G都没有用到。

谷歌了很久都没有找到有类似经验的内容,不知道这里是不是有朋友遇到过,还请给与意见。

谢谢
...全文
501 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
heqi_long_java 2022-12-01
  • 打赏
  • 举报
回复

怀疑是mongotemplate在未指定out集合的情况下,会在内存操作,制定out输出集合就正常了

青鬆下的坚躯 2020-02-29
  • 打赏
  • 举报
回复
这个只看系统内存不行,你还得看下MongoDB配置里的内存大小--inMemorySizeGB <number>。 默认配置的可用内存大小 = 系统内存大小-1G*50% https://docs.mongodb.com/v3.2/reference/program/mongod/#cmdoption-mongod-inmemorysizegb
内容概要:本文档详细介绍了在统信操作系统服务器版上搭建Hadoop 3.3.6大数据生态集群的全过程,涵盖虚拟环境准备、基础服务配置与核心组件安装。主要包括:通过NTP实现三台虚拟机(node1-node3)的时间同步;配置静态IP、主机名及SSH免密登录;关闭防火墙并安装JDK 1.8作为运行环境。随后部署Hadoop集群,配置HDFS、YARN、MapReduce的核心参数,并规划NameNode、DataNode、ResourceManager等角色分布。进一步安装Zookeeper 3.5.7实现协同服务,配置myid和集群通信。集成HBase 3.0.0构建分布式列式数据库,依赖HDFS和Zookeeper,并解决HMaster启动问题。安装MySQL 5.7作为元数据存储,用于Hive和Sqoop。部署Hive 3.1.3,配置其连接MySQL元数据库,并演示内部/外部表、分区表及HQL查询操作。利用Sqoop 1.4.7实现MySQL与HDFS/Hive之间的双向数据迁移,解决驱动和权限问题。最后简要介绍Spark 3.3.1的分布式安装与启动。文档还涉及MongoDB 8.0.3的安装与基本操作。; 适合人群:具备Linux操作系统、网络基础和Java开发经验,从事大数据平台搭建、运维或开发的技术人员,尤其是初学者和中级工程师。; 使用场景及目标:①学习和实践Hadoop生态系统各组件(HDFS, YARN, MapReduce, HBase, Hive, Sqoop, Spark, Zookeeper)的单机及集群部署流程;②掌握大数据平台环境配置的关键步骤,如时间同步、SSH免密、环境变量设置;③实现关系型数据库与Hadoop之间的数据导入导出,构建端到端的数据处理管道。; 阅读建议:此文档为实操性极强的安装指南,建议读者严格按照步骤在虚拟环境中进行实践。重点关注配置文件的修改(如core-site.xml, hdfs-site.xml, hive-site.xml等)和环境变量的设置。对于遇到的报错(如“找不到主类”、“权限问题”、“驱动缺失”),应仔细对照文档提供的解决方案进行排查。建议在操作前充分理解各组件的作用及其相互关系。

1,797

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧