繁体   English   中英

如何刷新Hadoop分布式缓存?

[英]How to flush Hadoop Distributed Cache?

我使用DistributedCache.addFileToClassPath(Path file,Configuration conf)方法将一组jar添加到Distributed Cache,以使依赖项可用于映射,从而减少整个集群的工作。 现在,我想从缓存中删除所有这些jar,以开始清理,并确保在那里有正确的jar版本。 我注释掉了将文件添加到缓存中的代码,并从将它们复制到hdfs中的位置中删除了这些代码。 问题在于,由于映射归约作业未引发ClassNotFound异常,因此jar仍显示在类路径中。 有没有一种方法可以刷新此缓存而无需重新启动任何服务?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM