Hadoop java运行时内存不足

8 篇文章 0 订阅
7 篇文章 0 订阅

服务器是一个云服务器,内存为1G,CPU为1核。

然后执行一个Hadoop本身自带的example报错的。报错信息如下:

There is insufficient memory for the Java Runtime Environment to continue.

Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.

执行的命令是:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar grep /input/hadoop/core-site.xml /user/test1 'dfs[a-z.]+'

  

  

发现云服务器加内存加资源太贵,所以首先准备做一个Swap,这样的话可以变相的增加我的服务器的内存。

刚申请的云服务器一开始默认貌似是没有swap空间的,如果不确定的话,可以通过下面的命令来查看自己的服务器的swap分区的情况:

free -m

  

可以看到我的服务器的swap分区为大小0

  

因为我的系统的内存是1G,所以准备做个2GSwap空间。

  

我在网上找了一些增加swap的步骤,发现阿里云的用户遇到过类似的问题,参考URLhttps://yq.aliyun.com/ziliao/5443

  

下面是我执行的步骤(我使用的是root用户,当然如果你有sudo权限的话,也可以):

  1. / 目录下建立swap 目录

  2. 使用dd命令生成一个空文件,因为我准备建立一个2Gswap空间,所以我准备把空文件设置为2G

  3. 接下来使用mkswap 命令把这个空文件格式化为swap格式

      

  4. 激活swap

  5. 再次使用free -m 命令查看swap分区信息,可以发现已经配置成功

  6. 目前虽然已经配置好了缓存分区,但是我们的服务器重启之后会失去缓存分区,需要重新挂在,所以需要设置为开机就自动挂载

    /etc/fstab 中添加下面的内容: /swap/swap.img swap swap defaults 0 0

  

经过这样处理之后,再次运行任务后就没有出现过内存不足的情况了。不过,运行速率是降下来了,毕竟不是真正的物理内存,所以其实是牺牲了速度换取了空间。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值