Hadoop文件系统采用分布式文件系统设计开发。它在普通硬件上运行。与其他分布式系统不同,HDFS具有很高的容错性,并且使用低成本的硬件进行设计。
HDFS存储大量数据并提供更容易的访问。为了存储如此巨大的数据,文件被存储在多台机器上。这些文件以冗余的方式存储,以便在发生故障时将系统从可能的数据损失中拯救出来。HDFS还使应用程序可用于并行处理。
HDFS的特点
- 适用于分布式存储和处理。
- Hadoop提供了一个与HDFS交互的命令接口。
- namenode和datanode的内置服务器可以方便地检查集群的状态。
- 对文件系统数据的流访问。
- HDFS提供文件权限和身份验证。
HDFS架构
下面给出Hadoop文件系统的架构。
![15167924-c00e1c6e7da21d6d.jpg](https://upload-images.jianshu.io/upload_images/15167924-c00e1c6e7da21d6d.jpg)
hdfs_architecture.jpg
HDFS遵循主从体系结构,它具有以下元素。
Namenode
namenode是包含GNU/Linux操作系统和namenode软件的商品硬件。它是一种可以在普通硬件上运行的软件。具有namenode的系统充当主服务器,它执行以下任务:
- 管理文件系统名称空间。
- 管理客户对文件的访问。
- 它还执行文件系统操作,如重命名、关闭和打开文件和目录。
Datanode
datanode是一种具有GNU/Linux操作系统和datanode软件的普通硬件。对于集群中的每个节点(商品硬件/系统),都将有一个datanode。这些节点管理其系统的数据存储。
- 数据节点根据客户端请求在文件系统上执行读写操作。
- 它们还根据namenode的指令执行块创建、删除和复制等操作。
Block
用户数据一般存储在HDFS文件中。文件系统中的文件将被分成一个或多个段和/或存储在单个数据节点中。这些文件段称为块。换句话说,HDFS可以读写的最小数据量称为块。默认块大小为64MB,但是可以根据需要在HDFS配置中进行更改而增加。
HDFS的目标
- 故障检测与恢复: 由于HDFS包含大量的商用硬件,部件故障频繁。因此,HDFS应该具有快速、自动的故障检测和恢复机制。
- 海量的数据集: HDFS每个集群应该有数百个节点,以管理拥有庞大数据集的应用程序。
- 硬件在数据上 当计算发生在数据附近时,可以有效地完成请求的任务。特别是在涉及到大量数据集的情况下,它会减少网络流量并增加吞吐量。