【问题标题】:Running Hadoop with single node configuration使用单节点配置运行 Hadoop
【发布时间】:2014-02-10 18:32:41
【问题描述】:

我在单节点上使用 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 节点已启动并正在运行。

当我尝试运行字数统计时(例如)

"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"

你能告诉我如何解决这个问题吗? 我会感谢你的帮助。 问候,

【问题讨论】:

    标签: java hadoop


    【解决方案1】:

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

    【讨论】:

    • 我使用的是 Hadoop 0.20.2 版本。我正在使用 hadoop 文件夹中的示例 jar。您能告诉我如何更改 MR API 以使其与示例 jar 兼容吗?
    【解决方案2】:

    在尝试附加示例时,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)。

    【讨论】:

      【解决方案3】:

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

      1. 导航到 %HADOOP_HOME%/etc/hadoop/
      2. 分别打开“mapred-site.xml”和“mapred-site.xml.template”
      3. 将“mapreduce.framework.name”更改为“本地”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多