HDFS是Hadoop应用的主要分布式存储。一个HDFS集群由一个管理文件系统元数据的NameNode,和存储实际数据的一些Datanode组成。HDFS的架构在这里有详细描述。这个用户指南主要提供给需要跟HDFS集群打交道的用户或者管理员。HDFS架构文章中的图描绘了Namenode、Datanode和客户端们之间的基本交互。本质上,客户端与Namenode通讯获取或者修改文件的元数据,与 Datanode进行实际的IO操作。
下面的列表应该是大多数用户关心的HDFS突出特点。斜体字的术语将在后面详细描述。
1)Hadoop,包括HDFS,非常适合廉价机器上的分布式存储和分布式处理。它是容错的、可伸缩的,并且非常易于扩展。并且,以简单性和适用性著称的Map-Reduce是Hadoop不可或缺的组成部分。
2)HDFS的默认配置适合于大多数安装的应用。通常情况下,只有在一个非常大规模的集群上才需要修改默认配置。
3)HDFS是用java编写的,支持大多数平台。
4)支持shell命令行风格的HDFS目录交互。
5)Namenode和Datanode都内建了web服务器,可以方便地查看集群的状态
6)HDFS经常性地实现新的特性和改进,下面是HDFS中的一些有用特性的子集:
文件许可和授权
Rack awareness :当调度任务和分配存储的时候将节点的物理位置考虑进去。
Safemode(安全模式) :用于维护的一个管理状态
fsck : 诊断文件系统的一个工具,用来查找丢失的文件或者block
Rebalancer :当数据在Datanode间没有均匀分布的时候,用于重新平衡集群的工具
升级和回滚 :当Hadoop软件升级,在升级遇到不可预期的问题的时候,可以回滚到HDFS升级前的状态
二级Namenode :帮助Namenode维持包含了HDFS修改的日志的文件(edits日志文件,下文谈到)大小在限制范围内。