分布式缓存和性能Hadoop



我想清楚地了解Hadoop分布式缓存。我知道,当我们将文件添加到分布式缓存中时,文件会加载到群集中每个节点的磁盘上。

因此,如何将文件数据传输到群集中的所有节点。是通过网络吗?如果是这样,它不会在网络上引起压力吗?

我有以下想法,它们是正确的吗?

如果文件很大,则不会存在网络拥塞吗?

如果节点的数量很大,即使文件是中等或小规模的,则复制文件和传输到所有节点,也不会导致网络拥塞和内存约束?

请帮助我理解这些概念。

谢谢!

  1. 是的,这些文件通常是通过网络传输的,通常是通过HDFS传输。与使用HDFS对非数据本地任务的任何内容相比,这不会引起网络上的压力。

  2. 如果文件很大,则可能存在网络拥塞,但是您已经将罐子推向所有这些任务跟踪器,因此,只要您的文件不比您的jar大得多,您的开销不应该太糟糕。

  3. 文件的复制与最终将删除此文件的任务跟踪器的数量完全分开。复制也将从节点链接到节点,无论如何都将是具有容错分布式文件系统的成本。同样,假设分布式高速缓存中的文件是罐子的等效尺寸,网络拥塞比将jar推到所有任务跟踪器不再是问题。

总体而言,只要按预期使用,分布式高速缓存的开销就很小,它是一种将合理小的缓存数据推向进行计算的任务跟踪器本地的一种方式。

编辑:这是0.20的DistributedCache文档。请注意,文件是通过URL指定的。通常,您会在本地HDFS上使用一些东西://设置。

我认为您对分布式缓存的了解是正确的。因为我也这么认为:)也许增加分布式缓存的复制可以减少网络传输

最新更新