首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >执行MapReduce报错:无法分配内存 (errno=12)

执行MapReduce报错:无法分配内存 (errno=12)

作者头像
WHYBIGDATA
发布于 2023-01-31 03:48:52
发布于 2023-01-31 03:48:52
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

执行MapReduce报错:无法分配内存 (errno=12)

  • 0. 写在前面
  • 1. 程序介绍
  • 2. 报错解决
  • 3. 参考


0. 写在前面

  • Linux: Ubuntu Kylin16.04
  • Hadoop: Hadoop2.7.2
  • IDE: 'Eclipse3.8'

1. 程序介绍

程序执行一个MapReduce,该MapReduce实现了自定义分区,总共分为4个分区,且在Driver端自定义设置reducer端num个数为4

2. 报错解决

代码的错误信息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000f5a9b000, 66166784, 0) failed; error='无法分配内存' (errno=12)

查找了资料发现是/proc/sys/vm/目录下的max_map_count初始值太小,需要将其增大,设置为1000000

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查看大小
root@node01:~$ cat /proc/sys/vm/max_map_count
65530
# 加一个配置
root@node01:~$ echo 1000000 > /proc/sys/vm/max_map_count

❝这并没有解决问题,依旧报错 ❞

尝试继续增大该值,依然无效

既然如此,那造成无法分配内存的原因应该是虚拟机分配的内存本身就不够 果不其然,我的虚拟机只分配了2G的内存,满足不了该程序的资源要求

我将虚拟机内存调整为4G,最后顺利执行成功

3. 参考

❝https://www.cnblogs.com/acm-bingzi/p/ubuntuErrno12.html ❞

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WHYBIGDATA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验