我正面临一个奇怪的困难。我有一个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) Map器的输入是文本行。
3) 我已经尝试在mapper中完成所有的工作,因为mapper的输出对我想要的键进行排序。所以我的减速机只是一个恒等函数。
4). 每个键只有一个值,而不是列表。
谢谢您。
暂无答案!
目前还没有任何答案,快来回答吧!