我面临一个奇怪的困难。我有一个mapreduce工作,它根据键按递减顺序对先前作业的输出进行排序。
当我在IDE中运行作业进行测试时,它可以正常工作,并根据需要对数据进行逐步排序。但是,当我尝试在群集上运行相同时,它根本无法对数据进行排序。
它也没有显示任何错误。 以下是我的代码。
sorting_job.setInputFormatClass(TextInputFormat.class);
sorting_job.setOutputFormatClass(TextOutputFormat.class);
sorting_job.setMapperClass(Mapper_sort.class);
sorting_job.setReducerClass(Reduce_sort.class);
sorting_job.setOutputKeyClass(DoubleWritable.class);
sorting_job.setOutputValueClass(Text.class);
sorting_job.setSortComparatorClass(LongWritable.DecreasingComparator.class);
一些额外信息:
1)reducer的输入和mapper的输出都是相同的格式。 钥匙 - 双重打印, 值 - 文字
2)mapper的输入是一个文本行。
3)我试图在mapper中完成所有工作,因为mapper的输出对我想要的密钥进行排序。所以我的减速器只是一个识别功能。
4)。每个键只有一个值而不是列表。
谢谢。