何时何地创建对象?

时间:2017-10-21 05:01:57

标签: java hadoop

我不是一名java专家,但具备基本知识。我想了解如何以及何时在下面的代码中创建对象。

org.apache.hadoop.io.IntWritable;
org.apache.hadoop.io.LongWritable;
org.apache.hadoop.io.Text;
org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;
public class WordCountMapper
{
extends Mapper<LongWritable,Text,Text,IntWritable>
@Override
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{
}
}
String line = value.toString();
for (String word : line.split(" ")){
if(word.length()>0){
context.write(new Text(word),new IntWritable(1));
}

这是主要的方法类

package com.company;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class WordCount {
public static void main(String[] args) throws Exception {
if(args.length !=2){
System.err.println("Invalid Command");
System.err.println("Usage: WordCount <input path> <output path>");
System.exit(0);
}
Configuration conf = new Configuration();
Job job = new Job(conf, "wordcount");
job.setJarByClass(WordCount.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setMapperClass(WordCountMapper.class);
job.setReducerClass(WordCountReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
}

在map方法参数中,如map(LongWritable键,Text值,Context context)已经过,每个参数都是我们在顶部代码中导入的类的实例。

这些参数保存数据,这些数据将被进一步处理到上面的代码中。我想知道我们开始运行上述代码的时刻,对象创建的时间和地点?

在Hadoop框架中编写的某个地方,每当代码运行时,它都会使用想要在该类的构造函数参数中处理的数据实例化一个对象来创建一个对象并将该对象传递给一个map方法吗?

我可以知道这种联系是如何逐步发生的吗?或者我在想错误的方式?请给我一些指导来理解这一点。

0 个答案:

没有答案