2014-03-26 70 views
0

我是hadoop的新手,在安裝Hadoop 2.2.0後,我試着按照示例http://www.srccodes.com/p/article/45/run-hadoop-wordcount-mapreduce-example-windows嘗試一個簡單的地圖縮減作業。在地圖上的錯誤減少Hadoop 2.2.0的示例

但是每當我試圖做圖減少工作在我創建的txt文件,我不斷收到故障與此消息

c:\hadoop>bin\yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.ja 
r wordcount /input output 
14/03/26 14:20:48 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0 
:8032 
14/03/26 14:20:50 INFO input.FileInputFormat: Total input paths to process : 1 
14/03/26 14:20:51 INFO mapreduce.JobSubmitter: number of splits:1 
14/03/26 14:20:51 INFO Configuration.deprecation: user.name is deprecated. Inste 
ad, use mapreduce.job.user.name 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.jar is deprecated. Inst 
ead, use mapreduce.job.jar 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.output.value.class is d 
eprecated. Instead, use mapreduce.job.output.value.class 
14/03/26 14:20:51 INFO Configuration.deprecation: mapreduce.combine.class is dep 
recated. Instead, use mapreduce.job.combine.class 
14/03/26 14:20:51 INFO Configuration.deprecation: mapreduce.map.class is depreca 
ted. Instead, use mapreduce.job.map.class 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.job.name is deprecated. 
Instead, use mapreduce.job.name 
14/03/26 14:20:51 INFO Configuration.deprecation: mapreduce.reduce.class is depr 
ecated. Instead, use mapreduce.job.reduce.class 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.input.dir is deprecated 
. Instead, use mapreduce.input.fileinputformat.inputdir 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.output.dir is deprecate 
d. Instead, use mapreduce.output.fileoutputformat.outputdir 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.map.tasks is deprecated 
. Instead, use mapreduce.job.maps 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.output.key.class is dep 
recated. Instead, use mapreduce.job.output.key.class 
14/03/26 14:20:51 INFO Configuration.deprecation: mapred.working.dir is deprecat 
ed. Instead, use mapreduce.job.working.dir 
14/03/26 14:20:51 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_13 
95833928952_0004 
14/03/26 14:20:52 INFO impl.YarnClientImpl: Submitted application application_13 
95833928952_0004 to ResourceManager at /0.0.0.0:8032 
14/03/26 14:20:52 INFO mapreduce.Job: The url to track the job: http://GoncaloPe 
reira:8088/proxy/application_1395833928952_0004/ 
14/03/26 14:20:52 INFO mapreduce.Job: Running job: job_1395833928952_0004 
14/03/26 14:21:08 INFO mapreduce.Job: Job job_1395833928952_0004 running in uber 
mode : false 
14/03/26 14:21:08 INFO mapreduce.Job: map 0% reduce 0% 
14/03/26 14:21:20 INFO mapreduce.Job: Task Id : attempt_1395833928952_0004_m_000 
000_0, Status : FAILED 
Error: java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileS 
plit cannot be cast to org.apache.hadoop.mapred.InputSplit 
     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:402) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
     at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma 
tion.java:1491) 
     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157) 
14/03/26 14:21:33 INFO mapreduce.Job: Task Id : attempt_1395833928952_0004_m_000 
000_1, Status : FAILED 
Error: java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileS 
plit cannot be cast to org.apache.hadoop.mapred.InputSplit 
     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:402) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
     at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma 
tion.java:1491) 
     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157) 
14/03/26 14:21:48 INFO mapreduce.Job: Task Id : attempt_1395833928952_0004_m_000 
000_2, Status : FAILED 
Error: java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileS 
plit cannot be cast to org.apache.hadoop.mapred.InputSplit 
     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:402) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
     at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma 
tion.java:1491) 
     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157) 
14/03/26 14:22:04 INFO mapreduce.Job: map 100% reduce 100% 
14/03/26 14:22:10 INFO mapreduce.Job: Job job_1395833928952_0004 failed with sta 
te FAILED due to: Task failed task_1395833928952_0004_m_000000 
Job failed as tasks failed. failedMaps:1 failedReduces:0 
14/03/26 14:22:10 INFO mapreduce.Job: Counters: 6 
     Job Counters 
       Failed map tasks=4 
       Launched map tasks=4 
       Other local map tasks=3 
       Data-local map tasks=1 
       Total time spent by all maps in occupied slots (ms)=48786 
       Total time spent by all reduces in occupied slots (ms)=0 

因爲我也跟着一切都沒有問題,一步一步,我不知道爲什麼這可能是,有人知道嗎?

編輯:嘗試採用2.3.0同樣的問題發生與給出的例子罐子,代碼波紋管我嘗試編譯,不知道是什麼問題,你提供

import java.io.IOException; 
import java.util.*; 

import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.conf.*; 
import org.apache.hadoop.io.*; 
import org.apache.hadoop.mapreduce.*; 
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; 


public class teste { 

    public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { 
     private final static IntWritable one = new IntWritable(1); 
     private Text word = new Text(); 

     public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { 
     String line = value.toString(); 
     StringTokenizer tokenizer = new StringTokenizer(line); 
     while (tokenizer.hasMoreTokens()) { 
      word.set(tokenizer.nextToken()); 
      context.write(word, one); 
     } 
     } 
    } 

    public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { 

     public void reduce(Text key, Iterable<IntWritable> values, Context context) 
     throws IOException, InterruptedException { 
     int sum = 0; 
     for (IntWritable val : values) { 
      sum += val.get(); 
     } 
     context.write(key, new IntWritable(sum)); 
     } 
    } 

    public static void main(String[] args) throws Exception { 
     Configuration conf = new Configuration(); 

     Job job = new Job(conf, "wordcount"); 

     job.setJarByClass(teste.class); 
     job.setOutputKeyClass(Text.class); 
     job.setOutputValueClass(IntWritable.class); 

     job.setMapperClass(Map.class); 
     job.setReducerClass(Reduce.class); 

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

     FileInputFormat.addInputPath(job, new Path(args[0])); 
     FileOutputFormat.setOutputPath(job, new Path(args[1])); 

     job.waitForCompletion(true); 
    } 

} 

回答

4

我有同樣的問題(java.lang.ClassCastException),並能夠通過以管理員權限運行Hadoop來解決問題。問題似乎是創建符號鏈接,默認情況下,非管理Windows用戶不可能創建這些符號鏈接。以管理員身份打開控制檯,然後按照鏈接中的示例所述繼續。

+0

非常感謝,我一直被困在這樣一個愚蠢的事情上。 – user3323032

0

環節都有輸入perameter作爲輸入NOT與此語法/input...try ...

C:\hadoop>bin\yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount input output 

如果這不起作用比看到這 - Link和修改映射類。

+0

我已經忘記提及,但我已經改變它/輸入,所以這不是問題。也有點可恥的問題,但我該如何修改映射器? – user3323032

+0

使用eclipse和看到這個教程... http://developer.yahoo.com/hadoop/tutorial/module3.html#running –

+0

嗯我肯定2.2.0沒有eclipse插件 – user3323032