内容参考:《程序员小灰:HDFS的诞生》
学习备用,侵删
正文:
刚开始公司规模很小,两台服务器就完事了
后来数据量多了,一台不够了怎么办?
很明显,添加服务器,做服务器组
文件损坏怎么办啊?
做冗余,分割文件存储。
但是对客户端和应用程序来说这些必须是透明的,所以就得有个程序记录管理这些分配。这个程序放在一台专门的服务器上,将其命名为NameNode,其他节点都是DataNode
二者具体的工作方式如下:
用户程序就是客户,分布式文件系统客户端就是经理,NameNode就是库房总管,DataNode就是各库房主任。
用户程序访问分布式文件系统客户端,客户端就把客户的要求告诉NameNode,大概的意思是“我要一批酒,我去哪找?”,然后NameNode就把记载好的信息告诉分布式系统客户端,“……有你要的酒,你去拿“。之后分布式系统开始去制定阶段读取数据之后将数据回传给用户程序。上面说的内容都是绿线上的内容,还没说到黄线的内容。
库房总管得时刻清楚各库房的存在情况,而且这些个库房经常出现库房总管失踪的问题,联系不上,这时候就得把现在的实时情况记录在案,所以NameNode也得和和DataNode实时通信。
所以分布式文件系统就是为了将多台服务器统一起来做成一台存储服务器,然后框架会搞定底层通信交互维稳的工作。对外感觉就是一台服务器而已。