Hadoop的分布式缓存

来源:互联网 发布:淘宝信誉评价表 编辑:程序博客网 时间:2024/06/06 06:35
一 背景

在执行MapReduce时,可能Mapper之间需要共享一些信息,如果信息量不大,可以将其从HDFS加载到内存中,这就是Hadoop分布式缓存机制。


二 分布式缓存的简单应用

例如,统计一个文本的单词在另外一个全量文本中是否存在,如果存在统计单词的数量,下面是Map阶段,将全量文本加载到分布式缓存中。


三 如何使用DistributedCathe

第1步:在main方法中加载共享文件的HDFS路径,路径可以是目录也可以是文件。可以在路径末尾追加“#”+别名,在Map阶段可以使用该别名。
编码如下:

第2步:在Mapper类或Reducer的setup方法中,用输入流获取分布式缓存中的文件。
编码如下:


四 补充

加载到内存发生在Job执行之前,每个从节点各自都缓存一份相同的共享数据。如果共享数据太大,可以将共享数据分批缓存,重复执行作业。