-
非常巨大的分布式文件系统
-
运行在普通廉价的硬件上
-
易扩展、为用户提供性能不错的文件存储服务
[](()[HDFS官方文档地址](()
[](()2 HDFS架构
======================================================================
HDFS是主/从式的架构。一个HDFS集群会有一个NameNode(简称NN),也就是命名节点,该节点作为主服务器存在(master server).
-
NameNode用于管理文件系统的命名空间以及调节客户访问文件
-
此外,还会有多个DataNode(简称DN),也就是数据节点,数据节点作为从节点存在(slave server)
-
通常每一个集群中的DataNode,都会被NameNode所管理,DataNode用于存储数据。
HDFS公开了文件系统名称空间,允许用户将数据存储在文件中,就好比我们平时使用操作系统中的文件系统一样,用户无需关心底层是如何存储数据的
而在底层,一个文件会被分成一个或多个数据块,这些数据库块会被存储在一组数据节点中。在CDH中数据块的默认大小是128M,这个大小我们可以通过配置文件进行调节
在NameNode上我们可以执行文件系统的命名空间操作,如打开,关闭,重命名文件等。这也决定了数据块到数据节点的映射。
我们可以来看看HDFS的架构图
![](https://img-blog.csdnimg.cn/img_convert 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 /c295da7e7b12e9168ec7317f0ff55c30.png)
HDFS被设计为可以运行在普通的廉价机器上,而这些机器通常运行着一个Linux操作系统。HDFS是使用Java语言编写的,任何支持Java的机器都可以运行HDFS
使用高度可移植的Java语言编写的HDFS,意味着可以部署在广泛的机器上
一个典型的HDFS集群部署会有一个专门的机器只能运行NameNode
,而其他集群中的机器各自运行一个DataNode
实例。虽然一台机器上也可以运行多个节点,但是并不建议这么做,除非是学习环境。
[](()总结
-
HDFS是主/从式的架构,一个HDFS集群会有一个NameNode以及多个DataNode</