Hadoop常见错误之HDFS
2015-08-13 14:26
806 查看
下面小编整理在工作中遇到的问题,以及解决方法。
1,Datanode启动失败错误
现象
在启动Datanode时,/var/log/hadoop-hdfs/hadoop-cmf-hdfs-DATANODE-cdh-node12.grc.log.out日志文件中有如下错误:
分析过程
用root用户登录Datanode节点,进入“/data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738/current/finalized/subdir15/subdir1”目录,
猜测是文件系统损坏了。
解决方法
猜测可能是因为文件系统损坏了,而导致有些数据块不能正常访问。需要执行fsck命令修复文件系统。 由于执行fsck之前,需要先umount对应的挂载点,而我这个Datanode节点损坏文件夹挂在根目录下,所以我这里先reboot Datanode节点。
在reboot后,有如下提示信息:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/16/ad4b6a71cdcbff7ccaac02713131ada1)
按照提示,输入root用户密码,并执行如下命令:
执行完之后,重新reboot机器,问题解决。但是/data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738/current/finalized/subdir15/subdir1目录下的blk_1074725217和blk_1074725217_985023.meta文件被删除了,不知这个文件删除是否会影响数据的完整性。如果按照Datanode的复制原则,我设置了3个复制因子,应该这个block的数据存储在另外两个Datanode节点中。
1,Datanode启动失败错误
现象
在启动Datanode时,/var/log/hadoop-hdfs/hadoop-cmf-hdfs-DATANODE-cdh-node12.grc.log.out日志文件中有如下错误:
Caught exception while scanning /data/dfs/dn/current. Will throw later. ExitCodeException exitCode=1: du: cannot access `/data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738/current/finalized/subdir15/subdir1/blk_1074725217': Input/output error du: cannot access `/data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738/current/finalized/subdir15/subdir1/blk_1074725217_985023.meta': Input/output error 。。。。。。 Failed to analyze storage directories for block pool BP-2133512689-10.51.120.52-1428486453738 java.io.IOException: BlockPoolSliceStorage.recoverTransitionRead: attempt to load an used block storage: /data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738 at org.apache.hadoop.hdfs.server.datanode.BlockPoolSliceStorage.loadBpStorageDirectories(BlockPoolSliceStorage.java:210) 。。。。。。 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to cdh-node3.grc/10.51.120.53:8022. Exiting. java.io.IOException: All specified directories are failed to load.
分析过程
用root用户登录Datanode节点,进入“/data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738/current/finalized/subdir15/subdir1”目录,
[root@cdh-node12 subdir1]# ll ls: 无法访问blk_1074725217: 输入/输出错误 ls: 无法访问blk_1074725217_985023.meta: 输入/输出错误 总用量 0 -????????? ? ? ? ? ? blk_1074725217 -????????? ? ? ? ? ? blk_1074725217_985023.meta
猜测是文件系统损坏了。
解决方法
猜测可能是因为文件系统损坏了,而导致有些数据块不能正常访问。需要执行fsck命令修复文件系统。 由于执行fsck之前,需要先umount对应的挂载点,而我这个Datanode节点损坏文件夹挂在根目录下,所以我这里先reboot Datanode节点。
在reboot后,有如下提示信息:
按照提示,输入root用户密码,并执行如下命令:
fsck -y /dev/mapper/vg_cdhnode12_lv_root
执行完之后,重新reboot机器,问题解决。但是/data/dfs/dn/current/BP-2133512689-10.51.120.52-1428486453738/current/finalized/subdir15/subdir1目录下的blk_1074725217和blk_1074725217_985023.meta文件被删除了,不知这个文件删除是否会影响数据的完整性。如果按照Datanode的复制原则,我设置了3个复制因子,应该这个block的数据存储在另外两个Datanode节点中。
相关文章推荐
- Linux学习-14-学习磁盘配额(Quota)
- Linux学习-13-学习ACL的使用-2
- Linux下安装MySQL数据库相关
- 配置SELINUX
- Linux深入篇之三:配置Nginx+LAMP动静分离
- 比较知名的技术网站
- Linux入门基本指令
- linux 创建swap分区
- 2-3-RHEL6.3搭建NTP 服务器案例分析与总结(RedHat Enterprise Linux Server6.3)@树袋飘零
- K swap operation coj
- Linux下Jmeter后台分布式执行
- Copy List with Random Pointer
- Uncaught TypeError: Cannot read property 'options' of undefined 错误
- Tomcat启动45秒解决问题
- Linux chmod +755和chmod +777 各是什么意思呢?
- 在Linux上搭建XMPP服务器
- linux chmod命令参数及用法详解--文件文件夹权限
- 图文解说:Nginx+tomcat配置集群负载均衡
- 使用AWS TCO Calculator 比较运维费用
- How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 12.04