gpt4 book ai didi

hadoop - 在哪里可以找到损坏 block 的副本

转载 作者:行者123 更新时间:2023-12-02 20:45:58 24 4
gpt4 key购买 nike

我的 hadoop 集群中有一些损坏的 block ,我们使用的复制因子是 3 。
我的理解是,即使一个 block 损坏了,我们也会在其他节点上再拥有 2 个好的副本。
当我在一个好的文件路径中执行 fsck 时,我会得到以下详细信息以及所有副本的位置:
/location/to/goodfile1 29600 字节,1 个 block :OK
0. BP-xxxx-xx.1xx.1xx.xx-1364828076720:blk_1114138336_1099565732615 len=29600 Live_repl=3 [/default/xx.1xx.1xx.xx:50010,/default/xx.1xx.1xx.xx:50010,/默认/xx.1xx.1xx.xx:50010]

状态:健康
总尺寸:29600 B
总目录:0
文件总数:1
符号链接(symbolic link)总数:0
总 block (已验证):1(平均 block 大小 29600 B)
最少复制 block :1 (100.0 %)
过度复制的 block :0 (0.0 %)
复制不足的 block :0 (0.0 %)
错误复制的 block :0 (0.0 %)
默认复制因子:3
平均 block 复制:3.0
损坏 block :0
缺少副本:0 (0.0 %)
数据节点数:14
机架数量:1
FSCK 在 2017 年 12 月 29 日星期五 02:32:32 MST 1 毫秒内结束

但是当我做 fsck/corruptfile -blocks -locations -files 对于损坏的文件,我没有得到副本位置,我也看到平均 block 复制为 0.0:
状态:损坏
总大小:27853 B
总目录:0
文件总数:1
符号链接(symbolic link)总数:0
总 block (已验证):1(平均 block 大小 27853 B)

低于 MIN REPL'D block :1 (100.0 %)
dfs.namenode.replication.min:1
损坏的文件:1
丢失的 block :1
缺少尺寸:27853 B
损坏 block :1

最少复制 block :0 (0.0 %)
过度复制的 block :0 (0.0 %)
复制不足的 block :0 (0.0 %)
错误复制的 block :0 (0.0 %)
默认复制因子:3
平均 block 复制:0.0
腐败 block :1
缺少副本:0
数据节点数:14
机架数量:1
FSCK 在 0 毫秒内于 2017 年 12 月 29 日星期五 02:39:50 MST 结束

谁能解释一下:
1)我看到 avg replication 为 0.0 ,这是否意味着我们没有损坏 block 的副本
2)我们通常删除损坏的 block 以使集群健康,在这种情况下,这是删除 block 的正确选项。
3)为什么我看不到这个损坏 block 的副本位置。
4)任何人都可以在他们的损坏 block 上发布 FSCK 的样本。

谢谢你。

最佳答案

您可以检查 namenode:50075/blockScannerReport?listblocks 它将列出所有 block 状态(会出现很长的页面),

因此,当您检查 fsck(文件系统检查实用程序)时 -

hadoop fsck -block -location -racks fullAddressOfFileInHDFS

所以在你得到之后,你还列出了 -

 Over-replicated blocks:    0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)

实际上你的 Average block replication:必须是 1.0为了新鲜和健康,但它显示 0.0只是因为 Corrupt Blocks: 1
看到这里 block 被损坏而不是文件,所以这里有几种方法 -
  • 为什么不首先使用 hadoop fs -get 在本地获取文件?如果您在本地获得的文件是好的,那么稍后从集群中删除文件,然后再次将文件放在它使用的相同位置hadoop .
  • 其次,找到 block 的文件,或者如果你有文件,检查健康状态,显示健康,然后输入hadoop dfsadmin safemode enter做完维护,手动检查数据节点,配置好后留下safemode , hadoop dfsadmin -refreshNodes然后运行 ​​hadoop balancer命令,它将解决问题,因为对于那些其他工具连接并依赖于该文件,第 1 点有很多失败的可能性。

  • 我提到了我的想法,选择是你的,提前2018年新年快乐,谢谢。

    关于hadoop - 在哪里可以找到损坏 block 的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48021300/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com