【发布时间】:2015-10-28 07:00:51
【问题描述】:
我为字数计算编写了这个 scala 程序。下面给出了主类
object aaa{
def main(args:Array[String]) : Int = {
val conf = new Configuration()
val otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs
if (otherArgs.length != 2) {
println("Usage: wordcount <in> <out>")
return 2
}
val job = new Job(conf, "word count")
job.setJarByClass(classOf[TokenizerMapper])
job.setMapperClass(classOf[TokenizerMapper])
job.setCombinerClass(classOf[IntSumReducer])
job.setReducerClass(classOf[IntSumReducer])
job.setOutputKeyClass(classOf[Text])
job.setOutputValueClass(classOf[IntWritable])
FileInputFormat.addInputPath(job, new Path(args(0)))
FileOutputFormat.setOutputPath(job, new Path((args(1))))
if (job.waitForCompletion(true)) 0 else 1
}
}
在这里我收到一个警告: "aaa 有一个参数类型为 Array[String] 的 main 方法,但 Hadoop.aaa 不会是一个可运行的程序。原因:main 方法必须具有精确的签名 (Array[String])Unit" 。
如何解决这个问题?我也无法在 RunConfiguration 中加载此类。请帮我解决这个问题。
【问题讨论】:
-
如果
main()签名必须是“(Array[String])Unit”,那么您不能从中返回任何值。删除您的返回值 [0,1 和 2] 看看会发生什么。 -
已删除并修复了警告。但无法在 RunConfiguration 中加载此类。
-
"但无法在 RunConfiguratio 中加载此类" 尝试时会发生什么?不要让我们猜测
-
在运行配置中使用搜索按钮搜索时未列出主类。如果明确指定完整路径,则“错误:无法找到或加载主类 aaa.scala”。