ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
随着数据量越来越大,在一个操作系统磁盘空间肯定存不下了,那么就需要分配到更多的操作系统管理的磁盘中,也就是常说的分布式存储-集群多机器存储。但是涉及多个机器存储,就不方便管理和维护。 <br/> HDFS 就是一个很好的分布式文件管理系统。它使用多台机器(一般是Linux)机器上的特定磁盘空间作为文件系统的存储空间,相当于整合了多台机器的存储空间为自己所用。扩大了存储空间。 <br/> 对于文件来说,HDFS也作出了一些特有的设计方式。它将每一个文件切分成多个块进行存储,将切分后的块分散存储到多台机器上,<mark>Hadoop2.x 版本中默认块大小是 128MB</mark>。比如一个文件大小 300MB,那么在 HDFS 中,会被切分成三个数据块(128MB,128MB,44MB),三个块都是独立的,它们会被存储在不同的机器上。这样做的好处就是不会有超大文件的影响,最大的块只有128MB,对机器性能要求不高,可以部署在廉价的机器上。 <br/> 从上面的设计中,可以看出 HDFS 至少要提供以下几项功能: (1)要将文件进行切分; (2)一个文件被切分后,被分成多少块,每个块存储在哪些机器上,这些都是需要记录的,不然,文件存进去了,不能查出来; (3)数据丢失的问题,HDFS 可以部署在廉价的机器上,那就会存在某个机器损坏,导致数据丢失,也就是说 HDFS 还得提供容错功能。HDFS 采用的是<mark>副本机制</mark>,对切分后的文件块进行备份。 <br/> **副本机制:** 副本作用:避免数据丢失; 副本数:副本数默认为 3,我们搭建伪分布式集群,所以副本数改为 1。副本的数量可以由下面的参数控制 *`{hadoop_home}/etc/hadoop/core-site.xml/hdfs-site.xml`* ```xml <configuration> <!-- 指定HDFS副本的数量为1,默认为3 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 存放机制(3 个副本的情况下): ➢ 一个在本地机架节点 ➢ 一个在同一个机架不同节点 ➢ 一个在不同机架的节点 ![](https://img.kancloud.cn/13/7c/137cd48415d5c841129761ed1657e68c_772x474.png)