简介
根据多个文档1,2,3 HDFS'位置感知是关于了解节点的物理位置以及在不同机架上复制数据以减少机架问题的影响例如,电源和/或开关问题。
问题
HDFS如何知道节点和机架的物理位置,然后决定将数据复制到位于其他机架上的节点?
答案 0 :(得分:2)
在设置群集时配置机架感知。这可以手动为每个节点或通过脚本完成。
每个DataNode
都有一个简单的字符串网络位置,就像文件系统路径一样。
示例:强>
datacenter-1/rack-1/node1
datacenter-1/rack-1/node2
datacenter-1/rack-2/node3
NameNode
然后使用每个DataNode
的网络位置构建网络拓扑(基本上是树结构)。然后,此拓扑用于确定块副本放置。
答案 1 :(得分:1)
有人需要知道数据节点在网络拓扑中的位置,并使用该信息来明智地决定数据副本在群集中应该存在的位置。那个“某人”就是名字节点。
Name节点存储此信息,并且是命名空间。
NameNode是HDFS文件系统的核心。它保留文件系统中所有文件的目录树,并跟踪整个集群中文件数据的保存位置。它不会存储这些文件本身的数据。
客户端应用程序只要希望找到文件,或者想要添加/复制/移动/删除文件,就可以与NameNode通信。 NameNode通过返回数据所在的相关DataNode服务器列表来响应成功的请求。