Hadoop系列文章索引:
Hadoop是Apache的顶级子项目,用于进行大数据处理。其支持使用JavaAPI进行操作,实现大数据分析的用途。Hadoop分为HDFS、MapReduce和yarn三个部分,该篇主要介绍HDFS。HDFS(Hadoop Distributed File System)是指Hadoop对分布式文件系统的实现。
分布式文件系统指的是使用集群的方式组织文件系统。具体来说就是多台机器和多个存储设备,每个存储设备贡献一部分或全部的存储空间,来共同存储大文件的一个文件系统。这个大文件被HDFS分割成一个一个小的文件块(Block),再把这些Block分别存储在集群中的各个存储设备上,在用户需要读取这个大文件的时候,再从各个存储设备中把这些Block整合成完整的文件,供用户读取。HDFS由一台机器作为主管理节点(NameNode),另一台机器作为副管理节点(Secondary NameNode),其他机器作为存储节点(DataNode),由NameNode记录大文件被拆分后的每个Block的存储位置和偏移量(offset),方便在用户需要读取时,去各个DataNode中找到这些Block,并根据offset拼接成完整的文件。而Secondary NameNode作为NameNode的热备,当NameNode挂掉之后替补上场,代替成为新的NameNode,继续工作。等到NameNode恢复,就成为了新的Secondary NameNode,等待上岗。为了防止Block存储的DataNode挂掉而导致文件的不完整,HDFS还会在不同的DataNode中存储Block的备份,这样的话,当NameNode无法从第一个DataNode读取到这个Block的时候,就可以去Block存储的下一个DataNode中读取。这样,就弥补了因为某个节点挂掉,而导致整个HDFS出现问题的缺陷。下面画个图来做形象说明。
原理方面就介绍这么多,更多的细节可以自行百度。
感谢观看,如果您觉得文章写得还不错,不妨点个赞。如果您觉得有什么疑惑或者不对的地方,可以留下评论,看到我会及时回复的。如果您关注一下我,那么我会更高兴的,谢谢!