所以呢 , 如果Active NameNode挂了 , 是不是可以立马切换成Standby NameNode对外提供服务?
这不就是所谓的NameNode主备高可用故障转移机制么!
接下来大家再想想 , HDFS客户端在NameNode内存里的文件目录树 , 新加了一个文件 。
但是这个时候 , 人家要把数据上传到多台DataNode机器上去啊 , 这可是一个1TB的大文件!咋传呢?
很简单 , 把1TB的大文件拆成N个block , 每个block是128MB 。1TB = 1024GB = 1048576MB , 一个block是128MB , 那么就是对应着8192个block 。
这些block会分布在不同的机器上管理着 , 比如说一共有100台机器组成的集群 , 那么每台机器上放80个左右的block就ok了 。
但是问题又来了 , 那如果这个时候1台机器宕机了 , 不就导致80个block丢失了?
也就是说上传上去的1TB的大文件 , 会丢失一小部分数据啊 。没关系!HDFS都考虑好了!
它会默认给每个block搞3个副本 , 一模一样的副本 , 分放在不同的机器上 , 如果一台机器宕机了 , 同一个block还有另外两个副本在其他机器上呢!
大伙儿看看下面这张图 。每个block都在不同的机器上有3个副本 , 任何一台机器宕机都没事!还可以从其他的机器上拿到那个block 。
这下子 , 你往HDFS上传一个1TB的大文件 , 可以高枕无忧了吧!

文章插图
OK , 上面就是大白话加上一系列手绘图 , 给大家先聊聊小白都能听懂的Hadoop的基本架构原理 。
【HDFS架构详解!会了这个,hadoop还难理解吗?】
推荐阅读
- 滴滴后端架构实战
- 帮你梳理LAMP架构
- Java中String类的常用方法详解
- CSS 权重详解
- 一文带你看透数据库架构的演变过程
- PHP中$_SERVER详解参数&说明
- 精读《从零开始做架构》
- __FILE__ php dirname 详解
- 详解阿里云数据中台
- 磁盘分区对齐详解与配置
