я столкнулся определенная ошибкой при настройке своей работы для пользовательского InputFormatошибки при установке job.setInputFormatClass
Ниже моего код
package com.nline_delimiter;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class NL_driver {
public static void main(String [] args) throws IOException, InterruptedException, ClassNotFoundException
{
Configuration conf=new Configuration(true);
Job job_run =new Job(conf);
job_run.setJobName("nline input format each line seperate wth delimiter");
job_run.setJarByClass(NL_driver.class);
job_run.setMapperClass(NL_mapper.class);
job_run.setReducerClass(NL_reducer.class);
job_run.setInputFormatClass(NL_inputformatter.class);;
job_run.setMapOutputKeyClass(Text.class);
job_run.setMapOutputValueClass(IntWritable.class);
job_run.setOutputKeyClass(Text.class);
job_run.setOutputValueClass(IntWritable.class);
FileInputFormat.setInputPaths(job_run,new Path("/home/hduser/input_formatter_usage.txt"));
FileOutputFormat.setOutputPath(job_run, new Path("/home/hduser/input_formatter_usage"));
job_run.waitForCompletion(true);
}
}
Линия
job_run.setInputFormatClass(NL_inputformatter.class)
показывает ошибку
NL_inputformatter - это пользовательский класс Inputformatter, который расширяет FileInputFor mat
Есть ли что-то, что мне нужно импортировать для setInputFormatClass, потому что ошибка проверки по умолчанию в Eclipse просит меня изменить setInputFormatClass на setOutFormatClass, но не запрашивает никакого импорта.
Исходный код для NL_inputformatter приведен ниже.
package com.nline_delimiter;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileSplit;
import org.apache.hadoop.mapred.InputSplit;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.RecordReader;
import org.apache.hadoop.mapred.Reporter;
public class NL_inputformatter extends FileInputFormat<Text, IntWritable>{
@Override
public RecordReader<Text, IntWritable> getRecordReader(InputSplit input,
JobConf job_run, Reporter reporter) throws IOException {
// TODO Auto-generated method stub
System.out.println("I am Inside the NL_inputformatter class");
reporter.setStatus(input.toString());
return new NL_record_reader(job_run, (FileSplit)input);
}
}
Ваша помощь будет оценена.
Показывает, какая ошибка? Пожалуйста, опубликуйте ошибку компилятора и исходный код NL_inputformatter. –
По желанию у меня есть сумматор исходного кода для NI_inputformatter .... Ну, ошибка -------- Метод setInputFormatClass (Class Extends InputFormat>) в типе Job не применим для аргументов (Класс) –
Sam