我正在虚拟机上运行hadoopclouderachd4.5。从manhout的第9-10章开始,我尝试创建一个定制的lucene分析器。我的分析器是在它自己的类中定义的。当我创建jar时,类就出现了。当我通过命令行执行时,我不断得到java.lang.illegalstateexception:java.lang.classnotfoundexception:my.org.myanalyzer。
hadoop\u classpath可以将丢失的类传递给客户机,但我的问题是myanalyzer类似乎没有传递给map/reduce jvm。我没有创建自己的map/reduce类,也没有从主类运行作业。我正在使用现有的mahout类来实现我的目标。在我的代码中,如果我使用whitespaceanalyzer而不是我的分析器,我没有问题。
这是我的分析课
public final class MyAnalyzer extends Analyzer {
public final StandardAnalyzer stdAnalyzer = new StandardAnalyzer(Version.LUCENE_36);
@Override
public TokenStream tokenStream(String fieldName, Reader reader) {
return stdAnalyzer.tokenStream(fieldName, reader);
}
}
有什么想法吗?
我试过maven,结果也一样。但是,我可能在pom.xml文件中没有正确的依赖关系。
-libjars不工作,因为我的代码中没有使用genericoptionsparser方法。
1条答案
按热度按时间4szc88ey1#
它现在正在工作。我在pom.xml中使用了maven汇编插件,并创建了相应的job.xml汇编作业。
pom.xml文件
程序集作业.xml