查看修复HDFS中丢失的块
发表于|更新于|Hadoop
|总字数:130|阅读时长:1分钟|浏览量:
检测缺失块
1 | hdfs fsck -list-corruptfileblocks |
1 | hdfs fsck / | egrep -v '^\.+$' | grep -v eplica |
查看上面某一个文件的情况
1 | hdfs fsck /path/to/corrupt/file -locations -blocks -files |
解决方法
如果文件不重要,可以直接删除此文件;或删除后重新复制一份到集群中
如果不能删除,需要从上面命令中找到发生在哪台机器上,然后到此机器上查看日志。
参考
文章作者: Charles
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农笔记!
相关推荐

2023-06-20
Kerberos认证后访问HDFS提示Not attempting to re-login错误
场景CDH6.3.4集群,开通了Kerberos认证,在客户端得机器上已经通过了Kerberos得认证并且缓存了票据。 由于是新装的系统,安装了最新的jdk-8u371。 报错执行hdfs dfs -ls / 命令频繁的打印如下错误: 1org.apache.hadoop.security.UserGroupInformation Not attempting to re-login since the last re-login was attempted less than 600 seconds before 错误原因找了很久,忽然想到了曾经遇到过这种问题,是JDK版本太低导致的,但我安装了最新的JDK1.8,那就有可能是JDK版本太高导致的。 解决办法下载了一个jdk-8u221版本,完美解决问题。CDH虽然写了支持JDK1.8,但小版本也会影响到它的正常运行,所以以后遇到类似得情况先调整下JDK版本,别太高也别太低。最好是看下官方有没有推荐的版本。

2017-07-21
解决Hadoop集群zkfc服务无法启动
新建集群以后,由于fs.defaultFS的配置与hdfs-site.xml的配置不一致,后来集群运行以后用重新修改了配置,重启集群后发现zkfc服务无法启动,导致namenode不自动切换了。 解决办法:原因是因为修改配置文件后,重启集群,会把zookeeper中的znode给删除,为什么会删除我也不清楚,反正我在zookeeper中没有发现这个目录。只需要执行如下命令即可: 1hdfs zkfc -formatZK 参考链接

2018-05-21
Hadoop Timed out waiting 20000ms
今天发现测试环境Hadoop集群开始频繁宕掉,查看namenode日志发现有如下报错信息: 1java.io.IOException: Timed out waiting 20000ms for a quorum of nodes to respond. 原因是因为namenode与journalnode通信时,超过20000ms,触发了默认设置的超时时长,解决办法:在hdfs-site.xml中加入如下配置 123456789101112<property> <name>dfs.qjournal.start-segment.timeout.ms</name> <value>90000</value></property><property> <name>dfs.qjournal.select-input-streams.timeout.ms</name> <value>90000</value></property&...

2023-06-20
macOS使用brew安装Hadoop
前言通常我一直在虚拟机中安装Hadoop、Hive、Hbase等大数据相关的组件,但随着我的笔记本使用年限越爱越长,性能也下降的很快,已经达到开虚拟机就会开的地步,于是我就考虑直接将Hadoop安装到macOS上,避免了虚拟机对资源的消耗,为了更好的管理,我选择使用brew来安装。 安装Hadoop使用brew安装Hadoop非常方便,执行如下命令即可: 1brew install hadoop 安装前建议提前安装好JDK,并且配置JAVA_HOME。 为了方便使用,我还配置了hosts 123sudo vim /etc/hosts127.0.0.1 hadoop 配置Hadoop配置免密登录macOS默认是关闭了远程登入的功能,所以需要先打开它。打开系统偏好设置 -> 共享,左边勾选远程登录,右边选择仅这些用户,并且把当前用户添加进去。 然后生成秘钥和公钥 123456789# 生成公钥和私钥ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 将公钥追加到authorized_keys,实现免密登...

2017-07-21
Hadoop命令-fsck
在HDFS中,提供了fsck命令,用于检查HDFS上文件和目录的健康状态、获取文件的block块信息和位置信息等。 具体命令介绍: -move: 移动损坏的文件到/lost+found目录下-delete: 删除损坏的文件-openforwrite: 输出检测中的正在被写的文件-list-corruptfileblocks: 输出损坏的块及其所属的文件-files: 输出正在被检测的文件-blocks: 输出block的详细报告 (需要和-files参数一起使用)-locations: 输出block的位置信息 (需要和-files参数一起使用)-racks: 输出文件块位置所在的机架信息(需要和-files参数一起使用) 例如要查看HDFS中某个文件的block块的具体分布,可以这样写:hadoop fsck /your_file_path -files -blocks -locations -racks示例: 1234567891011121314151617181920212223242526#hdfs fsck /tmp/test/input...

2023-06-14
macOS安装Hadoop提示operation not permitted
背景最近重新复习下大数据相关的知识,于是就决定在mbp上安装一套大数据服务(Hadoop、Hive、Spark),使用brew比较简单,很容易就安装好了,按时启动的时候出现了如下错误: 12345678910111213141516171819202023-06-14 23:24:03,271 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /Users/liyang/Documents/hadoop/tmp/dfs/name/in_use.lock acquired by nodename 26147@liyangdeMacBook-Pro.local2023-06-14 23:24:03,275 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimagejava.io.FileNotFoundException: /Users/liyang/Documents/hadoop...
评论
公告
开始忙了,长草期。





