我是初学者,学习Hadoop。来自同一文件的2个不同数据块是否可能存储在同一个数据节点中?例如:文件" file.txt"中的blk-A和blk-B;可以放在同一个数据节点(datanode 1)中。
答案 0 :(得分:1)
Here是解释块放置策略的文档。目前,HDFS复制默认为3,这意味着一个块有3个副本。它们的放置方式是:
当datanode死机,块损坏等事件时,此策略会有所帮助。
有可能吗?
除非您在源代码中进行更改,否则您无法更改任何可以在同一个datanode上放置两个块的属性。
我的观点是在同一个数据节点上放置两个块可以胜过HDFS的目的。块被复制,因此HDFS可以出于上述原因进行恢复。如果块放在同一个datanode上并且datanode已经死了,那么你将失去两个块而不是一个。
答案 1 :(得分:0)
答案取决于群集拓扑。 Hadoop尝试在数据中心和数据节点之间分发数据。但是,如果您只有一个数据中心怎么办?或者如果您只有一个节点集群(伪集群)。在这些情况下,不会发生最佳分布,并且所有块都可能在同一数据节点中结束。在生产中,建议有多个数据中心(物理上,不仅在配置中),并且至少具有与复制号相同数量的数据节点。