如何刷新Hadoop分布式缓存?

时间:2013-01-30 15:02:05

标签: hadoop mapreduce hdfs

我使用DistributedCache.addFileToClassPath(路径文件,配置conf)方法向分布式缓存添加了一组jar,以使依赖关系可用于整个群集中的map reduce作业。现在我想从缓存中删除所有这些罐子以开始清理并确保我有正确的jar版本。我注释掉了将文件添加到缓存中的代码,并将它们从我在hdfs中复制它们的位置删除了。问题是jar仍然出现在类路径中,因为map reduce job不会抛出ClassNotFound异常。有没有办法在不重新启动任何服务的情况下刷新此缓存?

编辑:随后我刷新了以下文件夹:/ var / lib / hadoop-hdfs / cache / mapred / mapred / local / taskTracker / distcache /。那并没有解决它。该工作仍然找到参考。

1 个答案:

答案 0 :(得分:1)

我现在明白我的问题是什么。我之前已将jar复制到/ usr / lib / hadoop / lib /文件夹中。这使得它们永久可用于地图减少工作。从那里删除它们后,该作业抛出了预期的ClassNotFoundException。另外,我注意到如果我不添加带有addFileToClassPath的jar,它们就不能用于作业。因此,无需刷新分布式缓存或删除addFileToClassPath中添加的内容,因为您放置的内容仅对指定的作业实例可见。