HDFS官网翻译——HDFS 架构指南(二)
翻译https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html
-----------------------------------------------------------------------------------------------
NameNode 和 DataNodes
HDFS是一个主备架构。一个HDFS集群包含一个NameNode——主服务器用于管理文件系统的命名空间和管理从客户端访问文件。另外,一个HDFS集群还存在好几个DataNode,通常DataNode管理自身存储的数据。HDFS公开了一个文件系统命名空间,允许用户数据存储在文件中。从内部视角看,一个文件被分片为多个块存储到多个DataNode节点上。NameNode节点执行文件系统命名空间操作,比如打开、关闭和文件与目录的重命名。同时,NameNode也决定了DataNode的块map。DataNode主要用于相应客户端对于文件的读与写。同时,也执行NameNode发送的命令——块的创建、删除与复制。
NameNode和DataNode是一组被设计用来在廉价服务器运行的软件,一般情况下它们运行GNU/linux操作系统。HDFS是用Java语言写的;任何支持Java的机器都可以运行NameNode和DataNode软件。使用高兼容性语言Java使得HDFS可以部署到很多机器上。典型的部署情况为:用一台专用的机器只部署NameNode软件,集群上其他机器运行DataNode软件实例。这种架构不能阻止在同一台机器上运行多个DataNode实例,当然,这种情况在实际使用时极少发生。
集群中单NameNode节点极大地简化了系统架构。NameNode只负责元数据,而用户数据不通过NameNode。
文件系统命名空间
HDFS支持传统的分层文件组织。用户或应用可以创建目录并将文件存入这些目录。分层的文件系统命名空间类似其他大部分文件系统一样,可以创建、删除文件,将一个文件从一个目录移动到另一个目录。HDFS还不支持用户配额限制,不支持软硬件链接。但是HDFS架构本身并不阻碍用户配额、软硬件链接的实现。换句话说,就是这两个功能将来也可能实现。
NameNode负责文件系统命名空间。NameNode将记录任何命名空间或其属性的变更。应用可以指定文件存储副本数,这个配置保存在NameNode中。副本数叫做副本因子,存储在NameNode中。
- 点赞
- 收藏
- 关注作者
评论(0)