common.abstractjob:处理作业特定选项时出现意外的-libjars

eyh26e7m  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(261)

全部!当我在项目中使用recommenderjob时,遇到了一个意外错误。传递给作业的参数是一个字符串数组,其值如下所示:

[-libjars, /path/to/xxx.jar,/path/to/yyy.jar, 
--input, hdfs://localhost:9000/tmp/x, 
--output, hdfs://localhost:9000/tmp/y, 
--similarityClassname, 
org.apache.mahout.math.hadoop.similarity.cooccurrence.measures.TanimotoCoefficientSimilarity, 
--numRecommendations, 6, 
--tempDir, hdfs://localhost:9000/tmp/z]

通过以下代码运行作业之后:

job.run(args);

打印错误如下:

ERROR common.AbstractJob: Unexpected -libjars while processing Job-Specific Options:
usage: <command> [Generic Options] [Job-Specific Options]
Generic Options:
 -archives <paths>             comma separated archives to be unarchived
                               on the compute machines.
 -conf <configuration file>    specify an application configuration file
 -D <property=value>           use value for given property
 -files <paths>                comma separated files to be copied to the
                               map reduce cluster
 -fs <local|namenode:port>     specify a namenode
 -jt <local|jobtracker:port>   specify a job tracker
 -libjars <paths>              comma separated jar files to include in the
                               classpath.
Unexpected -libjars while processing Job-Specific Options:                      
Usage:
...

有人知道怎么解决吗。提前谢谢!

gijlo24d

gijlo24d1#

最后,我自己找到了解决办法。我们不应该使用

job.run(args);

运行作业,它只处理特定于作业的选项。正确的做法是使用toolrunner来运行作业,该作业处理通用选项,然后处理作业特定选项,从而解决问题。

ToolRunner.run(conf, job, args);

相关问题