一、问题
我在启动hadoop集群,使用hdfs 时提示无法分配内存,但是我停止集群之后从新启动就不在提示了,然后我就没有管这个问题。然后我在启动spark-shell命令的时候,还是提示无法分配内存。
这是因为服务器内存太小不能满足内存。使用free 命令查看内存使用情况,可以看到swap(交换分区)的total,used, free都为零。
二、解决过程
可以通过创建swap交换分区来解决内存分配不足问题
注:使用root用户
- 创建一个用于交换的文件
fallocate -l 2G /swapfile
- 设置权限
chmod 600 /swapfile
- 设置linux交换区
mkswap -f /swapfile
- 启动交换
swapon /swapfile
- 设置每次自动启动,在/etc/fstab 文件下添加如下内容
/swapfile swap swap defaults 0 0
- 现在分区我们就创建好了,使用free ,显示如下则说明交换分区创建成功
注:步骤1~5都要在root用户下执行噢
三、测试
输入bin/spark-shell,就能正常启动啦。
遇到问题不要怕,遇到问题那就解决问题。加油,每天积累一点点,每天进步一点点。
版权归原作者 小-枝-丫 所有, 如有侵权,请联系我们删除。