主要内容:
- HDFS是什么?
- HDFS优点
- HDFS架构
- 副本机制。
1、HDFS是什么?
- 是由Hadoop实现的一个分布式的文件系统(Hadoop Distributed File System), 简称HDFS.
- 源于Google的一篇名为GFS论文。
2、HDFS优点
- 非常巨大的 分布式 文件系统。
- 运行在廉价的机器降低成本。
- 易扩展、提供性能较为不错的分布式文件系统。
3、HDFS架构
HDFS是主/从架构。HDFS集群由一个NameNode组成(master)。负责管理文件系统的命名空间,调节客户端对文件的访问。此外,还有许多datanode(通常是集群中的每个节点一个datanode),它们管理连接到它们运行的节点上的存储。HDFS公开一个文件系统命名空间,允许将用户数据存储在文件中。在内部,文件被分割为一个或多个块(block),这些块存储在一组datanode中。NameNode执行文件系统命名空间操作,如打开、关闭和重命名文件和目录。它还决定了块到datanode的映射。datanode负责处理来自文件系统客户端的读写请求。datanode还根据NameNode的指令执行块创建、删除和复制。
简单总结:
- NameNode主要负责客服端的请求响应以及负责原数据的管理(文件名称、副本系数、文件快存放的datanode).
- dataNode:存储用户的文件块(block)、定期向NameNode汇报自己的心跳信息和所有的block信息及健康状态。
- 生产部署的架构应该是nameNode + 多个dataNode,的架构
4、副本机制
- 文件系统命名空间
HDFS支持传统的分级文件组织。用户或应用程序可以创建目录并在这些目录中存储文件。文件系统命名空间层次结构类似于大多数现有的文件系统;可以创建和删除文件,将文件从一个目录移动到另一个目录,或重命名文件。HDFS支持用户配额和访问权限。HDFS不支持硬链接和软链接。然而,HDFS架构并不排除实现这些特性。
虽然HDFS遵循文件系统的命名约定,但是一些路径和名称
(例如/. .)Reserved和.snapshot)为保留。透明加密和快照等特性使用保留路径。
NameNode维护文件系统命名空间。对文件系统命名空间或其属性的任何更改都由NameNode记录。应用程序可以指定HDFS需要维护的文件的副本数量。一个文件的副本数量称为该文件的复制因子。该信息由NameNode存储。 - 数据复制
HDFS被设计为在一个大型集群中跨机器可靠地存储非常大的文件。它将每个文件存储为一系列块。为了容错复制文件的块。每个文件的块大小和复制因子是可配置的。
一个文件中除了最后一个块之外的所有块的大小都是相同的,而用户可以开始一个新的块,而不需要将最后一个块填充到配置的块大小后添加了append和hsync对可变长度块的支持。
应用程序可以指定文件的副本数量。复制因子可以在文件创建时指定,以后可以更改。HDFS中的文件是只写一次(附加和截断除外),并且在任何时候都严格只有一个写入器。
NameNode负责所有关于块复制的决策。它定期从集群中的每个datanode接收一个心跳报告和一个Blockreport。接收到Heartbeat表示DataNode运行正常。Blockreport包含DataNode上所有块的列表。