解决hadoop伪分布式下hdfs存储空间不足的问题

运行环境:虚拟机下Ubuntu15.0
问题的产生:在运行hadoop fs -put的指令时把一个大型文件从本地复制到hdfs时,运行到一半突然复制中断,报“name node is in safe mode ”的错误提示。
解决问题的思路:“name node is in safe mode”的提示意味着此时hdfs处于安全模式,只能对hdfs文件进行读操作,不能进行写操作,所以我想是否可以退出安全模式以解决问题呢?所以我输入hadoop dfsadmin -safemode leave强制退出安全模式,然而在我输入hadoop dfsadmin -safemode get查看安全模式状态时发现还是safemode is ON。这是什么原因呢?为什么不能退出安全模式呢?
所以我打开http://10.108.246.198:50070/ hadoop web页面查看,发现提示:系统处于安全模式,请添加磁盘空间或释放空间以退出安全模式。如果没有添加磁盘空间,在退出安全模式之后,会立即返回安全模式。然后再翻到下面查看dfs磁盘空间使用情况,发现dfs remaining(/dev/sda1)只有35MB了。输入df -h 查看磁盘使用情况:
这里写图片描述
这下我们豁然清楚解决问题的方法是什么了:hdfs磁盘空间不足了,导致强制进入了安全模式,需要给虚拟机增加存储空间以退出安全模式。
解决步骤
1. 增加虚拟机内存
打开VMware——编辑虚拟机设置——硬件——硬盘(SCSI)——扩展——调整磁盘空间大小(要比以前大)。
这里写图片描述
2.对Ubuntu系统硬盘进行分区
此时你虽然给虚拟机添加了硬盘空间,但是实际上的Ubuntu系统的磁盘空间并没有增加,所以要对磁盘进行从新分区才能真正增加hdfs磁盘空间(不要害怕此过程不会删除系统上的原有数据)。我试了几种分区的方法,发现使用gparted这个图形化工具进行分区最方便和有效了。按下面步骤:
2.1 安装并运行gparted
sudo apt-get install gparted
gparted
2.2删除Ubuntu下原本的extend分区及linux swap空间
Ubuntu的Swap空间阻断了分区扩容,在磁盘起始点和终点上不连续。
所以先右键File System为extend和linux swap的分区,删除之。
2.3对原有磁盘空间进行扩容
删除extend的空间之后,便可以对原有的/dev/sda1进行扩容.
此时右键/dev/sda1选择resize,在保证预留出大小相当于分配给虚拟机的内存的空间的情况下,分的越多越好。
点击apply生效!
2.4新建extend分区,建立linux swap空间
最后,重新建立linux swap空间.
对着还未分配的空间,新增一个file system为extended的扩展分区,apply之。
然后在该分区下新建一个linux-swap空间。
gparted界面
再次输入df -h查看磁盘使用情况:
这里写图片描述
发现此时/dev/sda1已经扩容。
打开http://10.108.246.198:50070/ web页面发现hdfs已经退出了安全模式。 好了!我们的问题已经解决了!!!

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值