2016-10-08 2 views
0

Я получаю ошибку в обработкеОшибка в классе Driver в Java Mapreducer

job.setInputFormatClass(TextInputFormat.class); 
job.setOutputFormatClass(TextOutputFormat.class); 

Как справиться с этим? Кто-нибудь может мне помочь, пожалуйста...!

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.mapred.TextInputFormat; 
import org.apache.hadoop.mapred.TextOutputFormat; 
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.output.FileOutputFormat; 
import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat; 

Свыше импортированные файлы. И ошибка происходит в нижних строках кода.

job.setInputFormatClass(TextInputFormat.class); 
job.setOutputFormatClass(TextOutputFormat.class); 

Как устранить эту проблему? Я новичок в MapReduce.

+0

MapReduce v2 совместим с MapReduce v1, но упаковка классов отличается от V2 и V1. Введите 'hadoop version' и сообщите здесь, что вы получаете. – ozw1z5rd

ответ

0

Классы TextInputFormat и TextOutputFormat из разных версий hadoop по сравнению с другими классами. Исправьте импорт для TextInputFormat и TextOutputFormat.

1

Вы используете несколько пакетов из обновленной версии Hadoop [mapreduce], но некоторые из них (TextInputFormat & TextOutputFormat) представляют собой старую версию [mapred package].

Всегда полезно использовать пакеты с уменьшением карты, поэтому вам нужно сделать ниже, указав изменение.

import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; 
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; 

Смотрите так:https://github.com/ragnar-lothbrok/hadoop-demo

Я добавил некоторые рабочий пример.

Смежные вопросы