为什么我们在hadoop中使用分布式缓存?

为什么我们在hadoop中使用分布式缓存?,hadoop,mapreduce,hdfs,reduce,distributed-cache,Hadoop,Mapreduce,Hdfs,Reduce,Distributed Cache,无论如何,map reduce框架中有很多跨节点的文件传输。 那么,分布式缓存的使用如何提高性能。分布式缓存是Map Reduce框架提供的一种工具,用于缓存应用程序所需的文件。一旦为作业缓存了一个文件,hadoop框架将使它在运行map/reduce任务的每个数据节点(在文件系统中,而不是在内存中)上都可用。这些文件通常通过HDFS通过网络传输。它不会对网络造成比对任何非数据本地任务使用HDFS更大的压力。DistributedCache是Map Reduce框架提供的一种工具,用于缓存应用程

无论如何,map reduce框架中有很多跨节点的文件传输。
那么,分布式缓存的使用如何提高性能。

分布式缓存是Map Reduce框架提供的一种工具,用于缓存应用程序所需的文件。一旦为作业缓存了一个文件,hadoop框架将使它在运行map/reduce任务的每个数据节点(在文件系统中,而不是在内存中)上都可用。这些文件通常通过HDFS通过网络传输。它不会对网络造成比对任何非数据本地任务使用HDFS更大的压力。

DistributedCache是Map Reduce框架提供的一种工具,用于缓存应用程序所需的文件。一旦为作业缓存了一个文件,hadoop框架将使它在运行map/reduce任务的每个数据节点(在文件系统中,而不是在内存中)上都可用。这些文件通常通过HDFS通过网络传输。它不会对网络造成比对任何非数据本地任务使用HDFS更大的压力

  • 当程序运行时,没有大量的文件传输。想法是尽量减少网络数据传输。这就是计算被移到接近数据的原因
  • 分布式缓存是所有map或reduce任务所需的数据,与普通数据不同,普通数据只需要部分数据(任务拆分)。这就是为什么它会分布到运行任务的所有节点
  • 当程序运行时,没有大量的文件传输。想法是尽量减少网络数据传输。这就是计算被移到接近数据的原因
  • 分布式缓存是所有map或reduce任务所需的数据,与普通数据不同,普通数据只需要部分数据(任务拆分)。这就是为什么它会分布到运行任务的所有节点

  • 谢谢,所以你是说,通过网络传输数据已经是一项开销。但是访问远程或非本地的数据对性能的影响更大?说明:请注意,数据是先从本地磁盘传输到hdfs的。它不计入性能,因为程序未启动。之后,map reduce程序启动,并在数据所在的位置运行(或尝试运行),但不会将数据带到程序中。但map任务的输出确实会被传输到reducer,而combiner可以用来减少这一数量。谢谢,所以你们是说,通过网络传输数据已经是一种开销了。但是访问远程或非本地的数据对性能的影响更大?说明:请注意,数据是先从本地磁盘传输到hdfs的。它不计入性能,因为程序未启动。之后,map reduce程序启动,并在数据所在的位置运行(或尝试运行),但不会将数据带到程序中。但map任务的输出确实会被传输到减速机,组合器可以用来减少减速机的数量。