Hadoop常见错误之HDFS


Hadoop常见错误之HDFS
1,Datanode启动失败错误 
现象 
在启动Datanode时, /var/log/hadoop-hdfs/hadoop-cmf-hdfs-DATANODE-hadoopserver06.log.out日志文件中有如下错误:




Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to hadoopserver02/192.168.22.150:8022. Exiting. 
ExitCodeException exitCode=1: du: 无法访问"/data/dfs/dn/current/BP-15450043-192.168.22.158-1464844718994/current/finalized/subdir75/subdir189/blk_1078705451_5004348.meta": 输入/输出错误
du: 无法访问"/data/dfs/dn/current/BP-15450043-192.168.22.158-1464844718994/current/finalized/subdir75/subdir189/blk_1078705451": 输入/输出错误
du: 无法访问"/data/dfs/dn/current/BP-15450043-192.168.22.158-1464844718994/current/finalized/subdir75/subdir69/blk_1078674719": 输入/输出错误


at org.apache.hadoop.util.Shell.runCommand(Shell.java:543)
at org.apache.hadoop.util.Shell.run(Shell.java:460)
at org.apache.hadoop.fs.DU.run(DU.java:190)
at org.apache.hadoop.fs.DU.<init>(DU.java:70)
at org.apache.hadoop.fs.DU.<init>(DU.java:95)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.BlockPoolSlice.<init>(BlockPoolSlice.java:135)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsVolumeImpl.addBlockPool(FsVolumeImpl.java:818)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsVolumeList$2.run(FsVolumeList.java:405)



分析过程 
用root用户登录Datanode节点,进入“/data/dfs/dn/current/BP-15450043-192.168.22.158-1464844718994/current/finalized/subdir15/subdir1”目录,


是文件系统损坏了。 
解决方法 
猜测可能是因为文件系统损坏了,而导致有些数据块不能正常访问。需要执行fsck命令修复文件系统。 由于执行fsck之前,需要先umount对应的挂载点,
而我这个Datanode节点损坏文件夹挂在根目录下,所以我这里先reboot Datanode节点。 
在reboot后,有如下提示信息: 


1直接卸载
 [root@localhost /]# umount /data1/img
 
2 提示被占用,使用强制卸载
 [root@localhost /]# umount -f /data1/img


3、使用umount -f,问题依旧。使用fuser命令,先确认有那些进程在占用该目录
  [root@localhost /]# fuser -cu /data1/img






按照提示,输入root用户密码,并执行如下命令:


fsck -y /dev/mapper/vg_cdhnode12_lv_root 
 
执行完之后,重新reboot机器,问题解决。但是/data/dfs/dn/current/BP-15450043-192.168.22.158-1464844718994/current/finalized/subdir15/subdir1
目录下的blk_1074725217和blk_1074725217_985023.meta文件被删除了,不知这个文件删除是否会影响数据的完整性。如果按照Datanode的复制原则,
我设置了3个复制因子,应该这个block的数据存储在另外两个Datanode节点中。







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值