我的问题是专门针对Hadoop的分布式缓存的概念,以及它是否应该被称为分布式缓存。分布式缓存的一个传统定义是“--分布式缓存跨越多个服务器,以便它可以在大小和事务容量方面增加”。
在hadoop中不是这样,因为分布式缓存被分发到所有运行任务的节点,即驱动程序代码中提到的相同文件。
这不应该被称为复制缓存。如果按照传统的分布式缓存定义,那么所有节点上的缓存交集应该为空(或接近它)。但是对于hadoop,交集的结果是相同的文件,该文件存在于所有节点中。
我的理解是正确的还是我遗漏了什么?请指点。
谢谢
发布于 2015-12-08 04:35:16
任何Cache
的一般理解和概念是使数据在内存中可用,并避免在读取数据时碰到磁盘。因为从磁盘读取数据比从内存读取数据要花费更多。
现在,让我们对Hadoop
生态系统进行同样的类比。在这里,磁盘是您的HDFS
,memory
是本地文件系统,其中运行的是实际任务。在应用程序的生命周期中,可能有多个任务在同一个节点上运行。因此,当第一个任务在节点中启动时,它将从HDFS
中获取数据并将其放在本地系统中。现在,同一节点上的后续任务将不再获取相同的数据。这样,它将节省从HDFS
获取数据的成本,而从本地文件系统获取数据的成本。Distributed Cache
是MapReduce
框架中的概念。
数据的大小通常足够小,可以加载到Mapper
内存中,通常是在很少的MBs中。
https://stackoverflow.com/questions/34147876
复制相似问题