数据可以分为两种:元数据和数据。数据是描述一切的;元数据是关于数据的数据。什么意思呢,比如我有十个文件在十台计算机上,这些数据是关于学生信息的,什么学号啊,姓名之类的。当然每个文件有自己的文件名。数据是让人用的,要想用这些数据,首先就要知道数据在哪里是吧。描述数据在哪里的数据就是元数据,元嘛,就是开始的意思,比如开元寺,那就是那个地方最早的寺庙。一开始呢,你要想用这些数据就必须去到元数据里,找到关于数据的信息。这样,要有台电脑来存放这些元数据。你和这台电脑打交道,他告诉你数据在哪里。为了数据的安全,一个文件可能有几个备份。这样,一个文件在哪里,文件有几个备份都记录在元数据里。当然,一个文件在哪里,有可能变动,所以呢,这个数据是不稳定的。元数据就不持久化地存他了(硬盘里),而是每次启动时,自己汇报给元数据,自然是在内存里了。HDFS呢,就是这样一个文件系统,里面有个NameNode,就是管理元数据的,DataNode就是数据,当然这个NameNode十分重要,就像一个司令部,一旦被炸毁,数据就全丢掉了,所以为了安全呢,有个储备司令部,叫做SecondNameNode。当然,因为数据多了,现在不是十台电脑,怎么办,我又增加了10台,那也没关系,只要你在这个文件系统中,你也必须像司令部汇报,NameNode会感知你,把一些文件交给你,记住这些文件的信息(几个备份,在哪里)。这样就可以任意扩展了。其实,HDFS就是叫Hadoop分布式文件系统,怎么理解呢,以前都是在一个电脑上单打独斗,有道是,好虎架不住一群狼,总有资源(cpu内存和外存)耗尽的那一天。有了HDFS,就把大家的电脑连起来,当做一台电脑那样使用。有点像我党的群众路线,发动群众,从群众中来,到群众中去。人多力量大,众人拾柴火焰高。当然,这些群众不是一盘散沙乌合之众。为什么呢,因为有一个有效的指挥系统NameNode司令部。这就是Hadoop HDFS 文件系统的存储哲学。