【发布时间】:2014-06-10 18:27:57
【问题描述】:
简介
根据多个文档1、2、3 HDFS 的位置感知是关于了解节点的物理位置并在不同机架上复制数据以减少机架问题的影响,例如电源和/或开关问题。
问题
HDFS 如何知道节点和机架的物理位置并随后决定将数据复制到位于其他机架上的节点?
【问题讨论】:
标签: hadoop replication hdfs location-aware
简介
根据多个文档1、2、3 HDFS 的位置感知是关于了解节点的物理位置并在不同机架上复制数据以减少机架问题的影响,例如电源和/或开关问题。
问题
HDFS 如何知道节点和机架的物理位置并随后决定将数据复制到位于其他机架上的节点?
【问题讨论】:
标签: hadoop replication hdfs location-aware
在设置集群时配置机架感知。这可以为每个节点手动完成,也可以通过脚本完成。
每个DataNode 都有一个网络位置,它是一个简单的字符串,很像文件系统路径。
示例:
datacenter-1/rack-1/node1
datacenter-1/rack-1/node2
datacenter-1/rack-2/node3
NameNode 然后使用每个DataNode 的网络位置构建网络拓扑(基本上是树结构)。然后使用此拓扑来确定块副本放置。
【讨论】:
有人需要知道数据节点在网络拓扑中的位置,并使用该信息来做出关于数据副本应该存在于集群中的什么位置的智能决策。那个“某人”就是名称节点。
Name 节点存储此信息并且是命名空间。
NameNode 是 HDFS 文件系统的核心。它保留文件系统中所有文件的目录树,并跟踪文件数据在集群中的保存位置。它不存储这些文件本身的数据。
客户端应用程序在想要定位文件或想要添加/复制/移动/删除文件时与 NameNode 通信。 NameNode 通过返回数据所在的相关 DataNode 服务器列表来响应成功的请求。
【讨论】: