计数器Map输入记录和Map输出记录分别代表什么? Map输出记录和Reduce输入记录之间有什么联系? 计数器“减少”输入组代表什么? 在执行开始时的痕迹中, 查找在HDFS上读取的拆分数。 这个数字对应哪个计数器? 哪些计数器使我们能够验证Combiner是否正常工作? 哪些计数器使我们能够估算合并器的增益? 与不使用合并器获得的值进行比较以证明您的理由 《悲惨世界》中最常用的单词是什么? 结果有什么区别 现在获得和使用一个Reducer执行的结果?为什么呢 结果有什么区别 现在获得的和先前执行的获得的? 要使用组合器,中间数据的类型应该是什么? 给出语义类型(键值代表什么?)和Java类型。 法国最受欢迎的标签是什么? 在Reducer中,我们在内存中有一个结构 大小取决于不同标签的数量: 大小不是先验的,可能有很多标签。 这有问题吗?
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class Question0_0 {
public static class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
}
}
public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
@Override
protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
String input = otherArgs[0];
String output = otherArgs[1];
Job job = Job.getInstance(conf, "Question0_0");
job.setJarByClass(Question0_0.class);
job.setMapperClass(MyMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
job.setReducerClass(MyReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(input));
job.setInputFormatClass(TextInputFormat.class);
FileOutputFormat.setOutputPath(job, new Path(output));
job.setOutputFormatClass(TextOutputFormat.class);
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}