2026-10-31·von Sijie Wang

namenode

NameNode keeps directory tree, block lists and block locations, no file content; a role, not special hardware; one logical NameNode with or without HA.

NameNode:一个字节数据都不存的记账者

它存三样东西,别的一概不存。 NameNode 存目录树、每个文件的块列表与顺序、每块所在的 DataNode。它不存任何文件内容。类比就是图书馆前台的目录:目录告诉你每本书在哪个架子上,但书本身在架子上,目录里没有书的内容。架子就是 DataNode。

它是职位,不是特殊硬件。 NameNode 不需要什么特殊机器。生产上它通常独占一台普通服务器,独占的原因是元数据全在内存里、需要大内存,不是硬件有什么特别。测试环境里它可以和其他角色同机。拿 leader 来类比是成立的:像 Raft leader、Kafka controller 一样,它是一个由某台机器担任的职位,权威来自职位本身。

一台还是两台? 没有 HA 时,字面意义上就是一台,是单点:一死,集群的地图就没了,直到它重启(账本是持久化的,见 ledger-persistence,但它宕机期间没人提供服务)。有 HA 时是两台,但同一时间只有一个 active 写者,standby 把自己的账本副本保持同步。对外它仍然是“一个 NameNode”:客户端用一个逻辑名,不关心今天是哪台物理机在当 active。

这个形状推出什么。 账本在内存里,所以它的容量由文件个数决定,不由数据量决定,算术见 block-size-and-metadata-math。它不存数据,所以它永远不会成为数据瓶颈:读写都绕过它,见 read-path 和 write-path。而它又是单一逻辑权威,所以这个集群里的其他机制——lease、safe mode、fencing——都是为了保住同一条性质:这本账同一时间恰好只有一个写者。这些机制见 writer-lease、safe-mode、ha-and-fencing。

über diesen eintrag

Einer von sijie's Wiki-Einträgen. Die KI auf dieser Site ist im selben Corpus verankert und antwortet in sijie's Stimme mit Zitaten zurück auf Einträge wie diesen — das Beantworten kostet sijie Geld, daher wartet sie hinter einem Code: zugriffscode eingeben →