我的问题是关于专门针对hadoop的分布式缓存的概念,以及它是否应该被称为分布式缓存。分布式缓存的传统定义是“一个分布式缓存跨越多个服务器,这样它就可以在大小和事务容量上增长”。这在hadoop中是不正确的,因为分布式缓存被分发给运行任务的所有节点,即驱动程序代码中提到的同一个文件。这不应该被称为复制缓存吗。如果按照传统的分布式缓存定义,所有节点上的缓存交集应该为空(或接近它)。但是对于hadoop,交集的结果是所有节点中存在的相同文件。我的理解是正确的还是遗漏了什么?请引导。谢谢
yks3o0rb1#
我也同意这不是真的” Distributed cache ". 但我相信younghobbit关于io操作不命中磁盘的效率的评论。根据apache文档,我在这个机制中看到的唯一优点是:在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。请注意 DistributedCache 自2.6.0版本以来已被弃用。您必须在job类中使用新的api来实现相同的功能。
Distributed cache
DistributedCache
5us2dqdw2#
对任何事物的一般理解和概念 Cache 使数据在内存中可用,并避免在读取数据时碰到磁盘。因为从磁盘中读取数据比从内存中读取数据成本更高。现在让我们用同样的比喻 Hadoop 生态系统。这是你的磁盘 HDFS 以及 memory 是运行实际任务的本地文件系统。在应用程序的生命周期中,可能有多个任务在同一节点上运行。因此,当第一个任务在节点中启动时,它将从 HDFS 把它放在本地系统里。现在,同一节点上的后续任务将不再获取相同的数据。这样就可以节省从数据库获取数据的成本 HDFS 而不是从本地文件系统获取。第一个概念是 Distributed Cache 在 MapReduce 框架。数据的大小通常足够小,可以加载到 Mapper 内存,通常为几兆字节。
Cache
Hadoop
HDFS
memory
Distributed Cache
MapReduce
Mapper
2条答案
按热度按时间yks3o0rb1#
我也同意这不是真的”
Distributed cache
". 但我相信younghobbit关于io操作不命中磁盘的效率的评论。根据apache文档,我在这个机制中看到的唯一优点是:
在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。
请注意
DistributedCache
自2.6.0版本以来已被弃用。您必须在job类中使用新的api来实现相同的功能。5us2dqdw2#
对任何事物的一般理解和概念
Cache
使数据在内存中可用,并避免在读取数据时碰到磁盘。因为从磁盘中读取数据比从内存中读取数据成本更高。现在让我们用同样的比喻
Hadoop
生态系统。这是你的磁盘HDFS
以及memory
是运行实际任务的本地文件系统。在应用程序的生命周期中,可能有多个任务在同一节点上运行。因此,当第一个任务在节点中启动时,它将从HDFS
把它放在本地系统里。现在,同一节点上的后续任务将不再获取相同的数据。这样就可以节省从数据库获取数据的成本HDFS
而不是从本地文件系统获取。第一个概念是Distributed Cache
在MapReduce
框架。数据的大小通常足够小,可以加载到
Mapper
内存,通常为几兆字节。