【发布时间】:2011-12-31 22:52:23
【问题描述】:
我写了一些 mapreduce 引用一些外部 jar 的作业。
所以我将它们添加到“正在运行”集群的 CLASSPATH 中以运行作业。
当我尝试运行它们时,我得到了 class not found 异常。 我用谷歌搜索了修复它的方法,我发现我需要重新启动集群才能应用 更改后的 CLASSPATH,它确实有效。
哦,糟糕! 每次将新 jar 添加到 CLASSPATH 中时,我是否真的需要重新启动集群? 我认为这没有意义。
有人知道如何在不重新启动的情况下应用更改吗?
我想我需要添加一些细节来征求您的意见。
我编写了一个自定义的hbase 过滤器类并将其打包在一个罐子中。
我写了一个mapreduce 作业,它使用自定义过滤器类并将其打包在另一个罐子中。
因为过滤器类 jar 不在我的“运行”集群的类路径中,所以我添加了它。
但是在我重新启动集群之前,我无法成功运行该作业。
当然,我知道我可以将过滤器类和作业打包在一个 jar 中。 但我不是这个意思。 我很好奇如果我需要添加新的外部 jar,我应该重新启动集群吗?
【问题讨论】: