2013-11-28 3 views
-1

я хочу использовать Hadoop для вычисления расстояния bewteen точек и сортировать их результат порядка по ключу, при запуске hadoop jar knn.jar input output, я получаю ошибки следующим образом:Когда я сортировки данных с помощью Hadoop, я получаю ошибку

13/11/28 15:35:38 INFO mapred.JobClient: Task Id : attempt_2013 
10221205_0036_m_000000_0, Status : FAILED 
java.io.IOException: Type mismatch in key from map: expected or 
g.apache.hadoop.io.Text, recieved org.apache.hadoop.io.DoubleWr 
itable 
     at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.col 
lect(MapTask.java:1019) 
     at org.apache.hadoop.mapred.MapTask$NewOutputCollector. 
write(MapTask.java:690) 
     at org.apache.hadoop.mapreduce.TaskInputOutputContext.w 
rite(TaskInputOutputContext.java:80) 
     at xautjzd.knn.hadoop.apache.KNN$KNNMapper.map(KNN.java 
:35) 
     at xautjzd.knn.hadoop.apache.KNN$KNNMapper.map(KNN.java 
:1) 
     at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:1 
45) 
     at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTas 
k.java:764) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:36 
4) 
     at org.apache.hadoop.mapred.Child$4.run(Child.java:255) 
     at java.security.AccessController.doPrivileged(Native M 
ethod) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs 
(UserGroupInformation.java:1190) 
     at org.apache.hadoop.mapred.Child.main(Child.java:249) 

Мой код:

enter image description here

+2

Как сказать ошибка s есть несоответствие типов. Можете ли вы показать свой класс драйверов, чтобы увидеть типы данных, которые вы установили для ввода карты? В основном в зависимости от выбранного вами формата ввода, картографу будет задан ключ. Так что подтвердите это или напишите свой код драйвера – abhinav

ответ

2

похоже, что вы установили conf.setOutputKeyClass(Text.class) где, как это должно быть conf.setOutputKeyClass(DoubleWrtable.class)

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