在执行hive sql时明明已经插入了数据,可是过了一会儿查询的时候数据表为空,而且报以下错误,以前也经常遇到,搞得我一直重新插入数据反反复复,今天终于找到了root cause⬇️
⚠️报错:
org.apache.hadoop.hdfs.BlockMissingException:Could not obtain block: BP-1094756810-192.168.10.102-1623427145615:blk_1073755935_15114 file=/warehouse/gmall/ads/ads_visit_stats/000000_0
原因排查:
查看yarn log,显示缺少块信息:
在命令行查找输出损坏的块及其所属的文件:
[xiaobai@hadoop102 ~]$ hdfs fsck -list-corruptfileblocks
输出文件及其对应的块信息:
[xiaobai@hadoop102 ~]$ hdfs fsck / | egrep -v '^.+$' | grep -v eplica
均显示没有问题!
于是查看了一下进程,104的datanode死掉了:
✅解决方法:
重启集群,恢复datanode,成功!
换个角度看问题 不要想得太复杂哦!



