机架感知和名称节点之间的区别

k2arahey  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(302)

我正在使用hadoop,我怀疑机架感知和名称节点之间是否有区别。机架感知和名称节点将保持在同一个框中

1szpjjfi

1szpjjfi1#

正如aviral正确地说的,这个问题一直很模糊。但为了你的理解,
namenode:namenode是hdfs文件系统的核心。它保存文件系统中所有文件的目录树,并跟踪文件数据在集群中的存放位置。它本身不存储这些文件的数据。客户机应用程序在希望定位文件或希望添加/复制/移动/删除文件时都会与namenode通信。namenode通过返回数据所在的相关datanode服务器的列表来响应成功的请求。你可以在这里详细阅读这个概念。
机架感知:简单地说,机架感知是namenode根据机架信息选择最近数据节点的策略。你可以在这里阅读细节
更进一步,我想推荐这个博客


图片来源:布拉德·赫德隆德

mf98qq94

mf98qq942#

来自apache hdfs用户指南
hdfs是hadoop应用程序使用的主要分布式存储。
hdfs集群主要由 NameNode 管理文件系统元数据和 DataNodes 存储实际数据的
通常大型hadoop集群被安排在机架中,同一机架中不同节点之间的网络流量比机架之间的网络流量更理想。此外,namenode尝试将块的副本放置在多个机架上,以提高容错性。
来自rackawareness教程:
hadoop组件是机架感知的。例如,hdfs块放置将通过在不同的机架上放置一个块副本来使用机架感知进行容错。这在集群内的网络交换机故障或分区发生时提供了数据可用性。
让我们看看hadoop编写是如何实现的。
如果writer位于datanode上,则第一个副本将放置在本地计算机上,否则为随机datanode。
第二个复制副本放置在不同机架上的数据节点上。
第三个复制副本放置在datanode上,datanode与第二个复制副本位于机架的不同节点上。
由于在两个不同的rac上复制三个不同节点上的数据块,hadoop读取操作提供了数据块的高可用性。
至少有一个复制副本存储在不同的rac上。如果一个rac不可访问,hadoop仍然可以从其他rac获取数据块。

相关问题