gpt4 book ai didi

hadoop - Namenode重启后如何重构全 block 信息?

转载 作者:可可西里 更新时间:2023-11-01 15:26:57 26 4
gpt4 key购买 nike

我试图理解 Namenode,我引用了在线资料并引用了 Hadoop:权威指南一书。

我知道 Namenode 有这样的概念:“编辑日志”、“fsimage”,我可以在我的 Namenode 中看到以下文件。

============================================= =========================

-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 23 22:53 edits_0000000000000000001-0000000000000000001
-rw-r--r-- 1 root root 1048576 Nov 23 23:42 edits_0000000000000000002-0000000000000000002
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 00:07 edits_0000000000000000003-0000000000000000003
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 21:03 edits_0000000000000000004-0000000000000000004
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 22:59 edits_0000000000000000005-0000000000000000005
-rw-r--r-- 1 root root 1048576 Nov 24 23:00 edits_0000000000000000006-0000000000000000006
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 25 21:15 edits_0000000000000000007-0000000000000000007
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 25 21:34 edits_0000000000000000008-0000000000000000008
-rw-r--r-- 1 root root 1048576 Nov 26 02:13 edits_inprogress_0000000000000000009
-rw-rw-r-- 1 vevaan24 vevaan24 355 Nov 25 21:15 fsimage_0000000000000000006
-rw-rw-r-- 1 vevaan24 vevaan24 62 Nov 25 21:15 fsimage_0000000000000000006.md5
-rw-r--r-- 1 root root 355 Nov 26 00:12 fsimage_0000000000000000008
-rw-r--r-- 1 root root 62 Nov 26 00:12 fsimage_0000000000000000008.md5
-rw-r--r-- 1 root root 2 Nov 26 00:12 seen_txid
-rw-rw-r-- 1 vevaan24 vevaan24 201 Nov 26 00:12 VERSION

在那本书中提到 fsimage 不在其中存储 block 位置

我有以下问题:

1) edit logs 是否也存储 block 位置? (对于新交易?)

2)当Namenode和Datanode重启后,Namenode如何获取 block 地址?我的疑惑是NN读取fsimage重建文件系统信息,但是fsimage没有 block 位置信息,那么这些信息是如何重建的?

3) fsimage 存储BLOCK ID only 是真的吗,如果是这样,BLOCK ID 在Datanodes 中是唯一的吗? BLOCK ID是否与BLOCK地址相同?

最佳答案

block 位置,即存储 block 的数据节点既不保存在 fsimage 文件中,也不保存在 edit log。 Namenode 仅在内存中保留此映射。

每个数据节点都有责任保存它正在存储的 block 列表的信息。

在重新启动期间,Namenode 将 fsimage 文件加载到内存中并应用来自 edit log 的编辑, block 位置的缺失信息是从数据节点检查时获得的在他们的阻止列表中。 Namenode 使用来自 block 列表的信息,构建 block 与其在内存中的位置的映射。

fsimage 不仅仅是 block ID。它包含文件 block 、 block 大小、复制因子、访问时间、修改时间、文件权限等信息,但不包含 block 的位置。

, block ID 是唯一的。 block 地址是指 block 所在的数据节点的地址。

关于hadoop - Namenode重启后如何重构全 block 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43408972/

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