2012-07-12 63 views
2

我有一个集群运行最近从CDH3升级的CDH4。 Hive目前工作得很好。但是,我似乎无法让它运行简单的MR Streaming作业(版本1)。纱线已安装但未使用。 下面是一个命令行输入和输出使用MR1运行简单的MapReduce Streaming作业失败CDH4

$ /usr/lib/hadoop/bin/hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop- streaming-2.0.0-mr1-cdh4.0.0.jar grep -input /input -output /output/ 'dfs[a-z.]+' 

检查日志揭示了这一点:

packageJobJar: [/tmp/hadoop-hdfs/hadoop-unjar7491355516546899751/] [] /tmp/streamjob1375201380112960182.jar tmpDir=null 
12/07/12 07:26:29 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 
12/07/12 07:26:29 INFO util.NativeCodeLoader: Loaded the native-hadoop library 
12/07/12 07:26:29 WARN snappy.LoadSnappy: Snappy native library is available 
12/07/12 07:26:29 INFO snappy.LoadSnappy: Snappy native library loaded 
12/07/12 07:26:29 INFO mapred.FileInputFormat: Total input paths to process : 3 
12/07/12 07:26:29 INFO streaming.StreamJob: getLocalDirs(): [file:////data/hadoop-0.20/cache/mapred/mapred/local] 
12/07/12 07:26:29 INFO streaming.StreamJob: Running job: job_201207120604_0018 
12/07/12 07:26:29 INFO streaming.StreamJob: To kill this job, run: 
12/07/12 07:26:29 INFO streaming.StreamJob: UNDEF/bin/hadoop job -Dmapred.job.tracker=frost:54311 -kill job_201207120604_0018 
12/07/12 07:26:29 INFO streaming.StreamJob: Tracking URL: >http://alpha:50030/jobdetails.jsp?jobid=job_201207120604_0018 
12/07/12 07:26:30 INFO streaming.StreamJob: map 0% reduce 0% 
12/07/12 07:26:57 INFO streaming.StreamJob: map 100% reduce 100% 
12/07/12 07:26:57 INFO streaming.StreamJob: To kill this job, run: 
12/07/12 07:26:57 INFO streaming.StreamJob: UNDEF/bin/hadoop job -Dmapred.job.tracker=frost:54311 -kill job_201207120604_0018 
12/07/12 07:26:57 INFO streaming.StreamJob: Tracking URL: >http://alpha:50030/jobdetails.jsp?jobid=job_201207120604_0018 
12/07/12 07:26:57 ERROR streaming.StreamJob: Job not successful. Error: NA 
12/07/12 07:26:57 INFO streaming.StreamJob: killJob... 
Streaming Command Failed! 

日志输出了很多失误的减少任务:

2012-07-12 07:26:46,785 INFO org.apache.hadoop.mapred.TaskInProgress: Error from attempt_201207120604_0018_m_000001_2: java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org.apache.hadoop.io.LongWritable 
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:861) 
    at org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:501) 
    at org.apache.hadoop.mapred.lib.IdentityMapper.map(IdentityMapper.java:38) 
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50) 
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:393) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:327) 
    at org.apache.hadoop.mapred.Child$4.run(Child.java:270) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:416) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232) 
    at org.apache.hadoop.mapred.Child.main(Child.java:264) 

感谢好心,卡丁车。

回答

0

您可以在生成的job.xml中查看您提交的作业(通过JobTracker Web界面),并查看映射器的定义值是什么? (mapreduce.map.class财产)。

从包含的是地图的日志,它看起来像你可能已经配置了身份映射器(因此LongWritable出来作为输出的关键,而不是文本的工作定义的值):

类型不匹配从地图键:预计org.apache.hadoop.io.Text,收到org.apache.hadoop.io.LongWritable

如果是这样的话,你需要考虑的码流为2.0 .0 hadoop(我并没有立即转手),看看如何用你的参数启动hadoop-streaming-2.0.0-mr1-cdh4.0.0.jar jar会配置一个nd运行一份工作

+0

谢谢克里斯。我第一次尝试设置以下属性为mapred-site.xml中 mapred.input.format.class org.apache.hadoop.mapred.TextInputFormat 但奥斯卡最佳吨工作。但是以下两个性质化险为夷: stream.map.input typedbytes stream.reduce.input typedbytes Kart 2012-07-19 23:10:00

相关问题