元数据的组织方式,是 Hadoop 里一个挺核心但常被忽略的点。像文件被拆成一个个数据块,比如一个 200M 的文件,就被分成block1
(128M)和block2
(72M)。每个块又有自己的副本,比如Block2-3
,用来搞容错。
块分完之后,怎么知道谁是谁?这时候就要靠元数据来打标签了。Hadoop 里主要靠Fsimage
和Edits
两个文件,一个像快照,一个像操作日志,组合起来就能还原整个文件系统状态。
哦对,元数据跟你想象中数据库里的“数据字典”不太一样,它不存用户数据,只负责“谁在哪、叫什么、有哪些副本”。你要是做大数据,或者做离线数仓搭建,这一块搞懂了,踩坑少一半。
如果你对这块感兴趣,可以看看这几篇文章:Hadoop Shell 操作与元数据查询技巧,还有异常的像HBase Fsimage 损坏指南,都挺实用的。