Introduction
根据几个文档1,2,3. HDFS的位置感知是关于了解节点的物理位置和复制不同机架上的数据,以减少由于诸如电源和/或开关问题而引起的机架问题的影响。
问题
HDFS如何知道节点和机架的物理位置,然后决定将数据复制到其他机架上的节点?
发布于 2014-06-10 19:09:15
机架感知是在集群设置时配置的。这可以为每个节点手动完成,也可以通过脚本完成。
给每个DataNode一个简单的字符串网络位置,就像文件系统路径一样。
示例:
datacenter-1/rack-1/node1
datacenter-1/rack-1/node2
datacenter-1/rack-2/node3然后,NameNode使用每个DataNode的网络位置构建一个网络拓扑(基本上是一个树结构)。然后使用此拓扑来确定块副本的放置位置。
发布于 2014-06-10 18:34:49
有人需要知道数据节点在网络拓扑中的位置,并使用这些信息对集群中数据副本的位置做出智能决策。那个“某人”就是Node这个名字。
Name节点存储此信息,是命名空间。
NameNode是HDFS文件系统的核心。它保存文件系统中所有文件的目录树,并跟踪整个集群中保存文件数据的位置。它本身不存储这些文件的数据。
当客户端应用程序希望找到文件时,或者想要添加/复制/移动/删除文件时,它们都会与NameNode对话。NameNode通过返回数据所在的相关DataNode服务器列表来响应成功的请求。
https://stackoverflow.com/questions/24148351
复制相似问题