hdfs的位置感知

euoag5mw  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(321)

介绍
根据一些文档1、2、3,hdfs的位置感知是关于了解节点的物理位置,并在不同机架上复制数据,以减少因电源和/或交换机问题等引起的机架问题的影响。
问题
hdfs如何知道节点和机架的物理位置,并随后决定将数据复制到位于其他机架上的节点?

vlju58qv

vlju58qv1#

在设置群集时配置机架感知。这可以为每个节点手动完成,也可以通过脚本完成。
每个 DataNode 给定一个网络位置,它是一个简单的字符串,很像一个文件系统路径。
例子:

datacenter-1/rack-1/node1
datacenter-1/rack-1/node2
datacenter-1/rack-2/node3

这个 NameNode 然后使用每个节点的网络位置构建网络拓扑(基本上是树形结构) DataNode . 然后使用此拓扑来确定块副本的放置。

oo7oh9g9

oo7oh9g92#

有人需要知道数据节点在网络拓扑中的位置,并使用这些信息智能地决定数据副本应该存在于集群中的什么位置。“某人”是节点的名字。
名称节点存储此信息,并且是命名空间的名称。
namenode是hdfs文件系统的核心。它保存文件系统中所有文件的目录树,并跟踪文件数据在集群中的存放位置。它本身不存储这些文件的数据。
客户机应用程序在希望定位文件或希望添加/复制/移动/删除文件时都会与namenode通信。namenode通过返回数据所在的相关datanode服务器的列表来响应成功的请求。

相关问题