【问题标题】:Why do we use distributed cache in hadoop?为什么我们在hadoop中使用分布式缓存?
【发布时间】:2015-09-15 11:50:29
【问题描述】:

无论如何,map reduce 框架中的节点之间存在大量文件传输。 那么分布式缓存的使用是如何提升性能的呢。

【问题讨论】:

    标签: hadoop mapreduce hdfs reduce distributed-cache


    【解决方案1】:
    1. 程序运行时没有大量的文件传输。想法是尽量减少网络数据传输。这就是计算靠近数据的原因。
    2. 分布式缓存是所有 map 或 reduce 任务所需的数据,不像普通数据那样只需要部分数据(任务拆分)。这就是为什么它分布到运行任务的所有节点。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,你是说,通过网络传输数据已经是一种开销。但是访问远程或非本地数据对性能的影响更大?
      • 请注意,数据是事先从本地磁盘传输到 hdfs 的。由于程序未启动,因此不计入性能。之后,您的 map reduce 程序启动,并在数据所在的位置运行(或尝试),它不会将数据带到程序中。但是 map 任务的输出确实会转移到 reducer,combiner 可以用来减少它的数量。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      相关资源
      最近更新 更多