使用单节点配置运行Hadoop

时间:2014-02-10 18:32:41

标签: java hadoop

我在单节点上使用hadoop。我是hadoop的新人,请耐心等待。 我使用了教程“http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/”和“https://sites.google.com/site/jianpengxu/tutorials/hadoop-setup”来安装hadoop。 命令jps显示hadoop节点已启动并正在运行。

当我尝试运行wordcount(例如)

"bin/hadoop jar hadoop-0.20.2-examples.jar wordcount gutenberg gutenberg-output"
i got the error message
"14/01/29 14:22:52 INFO input.FileInputFormat: Total input paths to process : 1
14/01/29 14:22:52 INFO mapred.JobClient: Running job: job_201401241441_0013
14/01/29 14:22:53 INFO mapred.JobClient:  map 0% reduce 0%
14/01/29 14:23:02 INFO mapred.JobClient: Task Id : attempt_201401241441_0013_m_000000_0, Status : FAILED
java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:323)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

14/01/29 14:23:08 INFO mapred.JobClient: Task Id : attempt_201401241441_0013_m_000000_1, Status : FAILED
java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:323)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

14/01/29 14:23:14 INFO mapred.JobClient: Task Id : attempt_201401241441_0013_m_000000_2, Status : FAILED
java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:323)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

14/01/29 14:23:23 INFO mapred.JobClient: Job complete: job_201401241441_0013
14/01/29 14:23:23 INFO mapred.JobClient: Counters: 3
14/01/29 14:23:23 INFO mapred.JobClient:   Job Counters 
14/01/29 14:23:23 INFO mapred.JobClient:     Launched map tasks=4
14/01/29 14:23:23 INFO mapred.JobClient:     Data-local map tasks=4
14/01/29 14:23:23 INFO mapred.JobClient:     Failed map tasks=1"

您能否告诉我如何解决这个问题。 我将感谢你的帮助。 的问候,

3 个答案:

答案 0 :(得分:1)

安装了什么hadoop版本?您使用的是分发附带的示例jar吗?错误表明hadoop正在使用旧的MR API,而jar正在使用新的MR API。

答案 1 :(得分:1)

在尝试附加示例时,Windows上的Hadoop 2.2.0或2.3.0也经常出现错误java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit

在这种情况下,以管理员权限运行Hadoop 。拥有创建符号链接的权利可能就足够了。使用bin\winutils.exe /?,您会收到以下提示:

  

Windows中的默认安全设置不允许非提升   管理员和所有非管理员创建符号   链接。可以在中更改符号链接的安全设置   本地安全策略管理控制台。

如果没有管理员权限,我只能使用本地mapreduce运行示例(在mapred-site.xml中,将mapreduce.framework.name设置为local)。

答案 2 :(得分:0)

我遇到了这个问题。我按照以下步骤操作:

  1. 导航至%HADOOP_HOME%/ etc / hadoop /
  2. 打开" mapred-site.xml"和#34; mapred-site.xml.template"分别
  3. 更改" mapreduce.framework.name"到"本地"