您的位置:首页 > 运维架构

Hadoop常见错误之HDFS

2017-11-06 13:29 246 查看
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节点中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: