分布式缓存和性能Hadoop

Mah*_*nan 2 java hadoop mapreduce distributed-caching

我想让我对hadoop分布式缓存有所了解.我知道当我们将文件添加到分布式缓存时,文件会被加载到集群中每个节点的磁盘上.

那么如何将文件数据传输到集群中的所有节点.是通过网络吗?如果是这样,它会不会对网络造成压力?

我有以下想法,他们是否正确?

如果文件很大,不会有网络拥塞?

如果节点数量很大,即使文件大小适中,文件的复制和传输到所有节点,都不会导致网络拥塞和内存限制?

请帮助我理解这些概念.

谢谢!!!

小智 5

  1. 是的,文件通过网络传输,通常是通过HDFS传输.与使用HDFS进行非数据本地任务相比,它不会对网络造成任何压力.

  2. 如果文件很大,可能会出现网络拥塞,但是你已经把你的jar推到了所有这些任务跟踪器上,所以只要你的文件不比你的文件大得多,你的开销就不应该是太糟糕了.

  3. 文件的复制与最终将拉动此文件的任务跟踪器的数量完全分开.复制也将从一个节点链接到另一个节点,并且无论如何都将具有容错分布式文件系统的成本.同样,网络拥塞不再是将jar推送到所有任务跟踪器的问题,假设分布式缓存中的文件与jar的大小相同.

总的来说,只要按预期使用分布式缓存的开销是微不足道的,作为将合理的小缓存数据推送到执行计算的任务跟踪器本地的一种方法.

编辑:这是0.20 的DistributedCache文档.请注意,文件是通过URL指定的.通常你会在你的本地hdfs:// setup上使用一些东西.