HDFS基本原理
1、NameNode概述
-
NameNode是HDFS的核心。
-
NameNode也称为Master。
-
NameNode仅存储HDFS的元数据:文件系统中的所有文件的目录树, 并跟踪整个集群中的文件。
-
NameNode不存储实际数据或数据集。数据本身实际存储在DataNode中。
-
NameNode知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNOde知道如何从块中构建文件。
-
NameNode并不持久化存储每个文件中各个块所在的DataNode的位置信息,这些信息会在系统启动时从数据节点重建。
-
NameNode对HDFS至关重要, 当NameNode关闭时, HDFS/Hadoop集群无法访问。
-
NameNode是Hadoop集群中的单点故障。
-
NameNode是所有机器通常会配置有大量内存(RAM)。
2、DataNode概述
-
DataNode复制将实际数据存储在HDFS中。
-
DataNode也称为Slave。
-
NameNode和DataNode会不断通信。
-
DataNode启动时, 它将自己发布到NameNode并汇报自己负责持有的块列表。
-
当某个DataNode关闭时, 它不会影响数据或集群的可用性,NameNode将安排由其它DataNode管理的块进行副本复制。
-
DataNode所在机器通常配置有大量的磁盘空间, 因为实际数据存储在DataNode中。
-
DataNode会定期(dfs.heartbeat,interval 配置项配置,默认是3秒 )向NameNode发送心跳, 如果NameNode长时间没有接受DataNode发送的心跳, NameNode就认为该DataNode失效。
-
block汇报时间间隔参数dfs.blockreport.intervalMsec,参数未配置的话默认6小时。
参考文献
【1】腾讯课堂-大数据hadoop入门