我想澄清一下我对hadoop分布式缓存的理解。我知道,当我们将文件添加到分布式缓存时,文件会加载到集群中每个节点的磁盘上。那么文件的数据是如何传输到集群中的所有节点的呢。是通过网络吗?如果是这样,会不会给网络造成压力?我有以下想法,对吗?如果文件很大,会不会出现网络拥塞?如果节点数量大,即使文件大小是中或小,文件的复制和传输到所有节点,会不会造成网络拥塞和内存限制?请帮助我理解这些概念。谢谢!!!
dbf7pr2w1#
是的,文件通过网络传输,通常通过hdfs。它不会对网络造成比使用hdfs处理任何非数据本地任务更大的压力。如果文件很大,就有可能出现网络拥塞,但是您已经将jar推到了所有这些任务跟踪器上,因此只要您的文件不比jar大太多,您的开销应该不会太大。文件的复制与最终将拉取此文件的任务跟踪器的数量完全不同。复制也将从一个节点链接到另一个节点,并且无论发生什么,都将是拥有容错分布式文件系统的成本。同样,如果分布式缓存中的文件的大小与jar的大小相等,那么网络拥塞与将jar推到所有任务跟踪器上的问题一样。总的来说,分布式缓存的开销是很小的,只要它是按预期使用的,作为一种方法,它可以将相当小的缓存数据推送到执行计算的任务跟踪器的本地。编辑:这是0.20的distributedcache文档。请注意,这些文件是通过URL指定的。通常您会在本地hdfs://设置中使用一些东西。
xqnpmsa82#
我认为您对分布式缓存的理解是正确的。因为我也这么认为:)也许增加分布式缓存的复制可以减少网络传输
2条答案
按热度按时间dbf7pr2w1#
是的,文件通过网络传输,通常通过hdfs。它不会对网络造成比使用hdfs处理任何非数据本地任务更大的压力。
如果文件很大,就有可能出现网络拥塞,但是您已经将jar推到了所有这些任务跟踪器上,因此只要您的文件不比jar大太多,您的开销应该不会太大。
文件的复制与最终将拉取此文件的任务跟踪器的数量完全不同。复制也将从一个节点链接到另一个节点,并且无论发生什么,都将是拥有容错分布式文件系统的成本。同样,如果分布式缓存中的文件的大小与jar的大小相等,那么网络拥塞与将jar推到所有任务跟踪器上的问题一样。
总的来说,分布式缓存的开销是很小的,只要它是按预期使用的,作为一种方法,它可以将相当小的缓存数据推送到执行计算的任务跟踪器的本地。
编辑:这是0.20的distributedcache文档。请注意,这些文件是通过URL指定的。通常您会在本地hdfs://设置中使用一些东西。
xqnpmsa82#
我认为您对分布式缓存的理解是正确的。因为我也这么认为:)也许增加分布式缓存的复制可以减少网络传输