我正在经历Hadoop。我对Rack Awareness有疑问:
答案 0 :(得分:2)
机架在Hadoop Rack意识中是合乎逻辑的。
关于副本放置政策:
机架感知副本放置策略的目的是提高数据可靠性,可用性和网络带宽利用率 不同机架中两个节点之间的通信必须通过交换机。在大多数情况下,机器之间的网络带宽 相同的机架大于机器之间的网络带宽 不同的架子。
当复制因子为3时,HDFS的放置策略是将一个副本放在本地机架中的一个节点上,另一个放在另一个(远程)机架中的节点上,而最后一个放在同一个远程机架中的另一个节点上
此策略会削减机架间写入流量,从而提高写入性能。
机架故障的可能性远小于节点故障的可能性;此策略不会影响数据可靠性和可用性保证。但是,它确实减少了读取数据时使用的聚合网络带宽,因为块只放在两个唯一的机架而不是三个 三分之一的副本位于一个节点上,三分之二的副本位于一个机架上,另外三个副本均匀分布在剩余的机架上。此策略可提高写入性能,而不会影响数据可靠性或读取性能。
答案 1 :(得分:1)
逻辑。您将为Hadoop提供一个外部脚本,用于转换数据节点'主机名到机架名称。
机架间带宽是一种昂贵的资源(比同一机架内的带宽贵)。因此,这是可靠性和资源使用之间的权衡。
答案 2 :(得分:1)
是逻辑还是物理机架?
逻辑
为什么对于每个数据块,一个机架中将存在两个副本,另一个机架中存在另一个副本?
例如,如果我有三个机架并且副本因子= 3,为什么它不会在每个机架中放置每个块副本?
如果网络交换机出现故障或群集内的分区,则可以提供数据可用性。
至少有一个副本存储在不同的RAC上。如果一个RAC不可访问,Hadoop仍然可以从其他RAC获取数据块。
由于在两个不同RAC上的三个不同节点上复制数据块,Hadoop读取操作可提供数据块的高可用性。
有关详细信息,请参阅HdfsUserGuide的Apache文档