hadoop中的分布式缓存概念

e0bqpujr  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(380)

我的问题是关于专门针对hadoop的分布式缓存的概念,以及它是否应该被称为分布式缓存。分布式缓存的传统定义是“一个分布式缓存跨越多个服务器,这样它就可以在大小和事务容量上增长”。
这在hadoop中是不正确的,因为分布式缓存被分发给运行任务的所有节点,即驱动程序代码中提到的同一个文件。
这不应该被称为复制缓存吗。如果按照传统的分布式缓存定义,所有节点上的缓存交集应该为空(或接近它)。但是对于hadoop,交集的结果是所有节点中存在的相同文件。
我的理解是正确的还是遗漏了什么?请引导。
谢谢

yks3o0rb

yks3o0rb1#

我也同意这不是真的” Distributed cache ". 但我相信younghobbit关于io操作不命中磁盘的效率的评论。
根据apache文档,我在这个机制中看到的唯一优点是:
在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。
请注意 DistributedCache 自2.6.0版本以来已被弃用。您必须在job类中使用新的api来实现相同的功能。

5us2dqdw

5us2dqdw2#

对任何事物的一般理解和概念 Cache 使数据在内存中可用,并避免在读取数据时碰到磁盘。因为从磁盘中读取数据比从内存中读取数据成本更高。
现在让我们用同样的比喻 Hadoop 生态系统。这是你的磁盘 HDFS 以及 memory 是运行实际任务的本地文件系统。在应用程序的生命周期中,可能有多个任务在同一节点上运行。因此,当第一个任务在节点中启动时,它将从 HDFS 把它放在本地系统里。现在,同一节点上的后续任务将不再获取相同的数据。这样就可以节省从数据库获取数据的成本 HDFS 而不是从本地文件系统获取。第一个概念是 Distributed CacheMapReduce 框架。
数据的大小通常足够小,可以加载到 Mapper 内存,通常为几兆字节。

相关问题