通过Cygwin在Windows上出现Hadoop错误:无法找到null\bin\winutils.exe

 viper-zhu_890_552 发布于 2022-12-18 16:55

当我设置HADOOP_HOME =/cygdrive/c/ecosystem/hadoop-2.5.1然后尝试从Cygwin 运行bin/hadoop fsbin/hadoop hadoop-streaming.jar时,我收到以下错误:

    ERROR [main] util.Shell (Shell.java:getWinUtilsPath(373)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
        at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:355)
        at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:370)
        at org.apache.hadoop.util.Shell.(Shell.java:363)
        at org.apache.hadoop.util.GenericOptionsParser.preProcessForWindows(GenericOptionsParser.java:432)
        at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:478)
        at org.apache.hadoop.util.GenericOptionsParser.(GenericOptionsParser.java:170)
        at org.apache.hadoop.util.GenericOptionsParser.(GenericOptionsParser.java:153)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:64)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
Exception in thread "main" java.lang.RuntimeException: core-site.xml not found
        at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2269)
        at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2195)
        at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2112)
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:989)
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:961)
        at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1299)
        at org.apache.hadoop.util.GenericOptionsParser.processGeneralOptions(GenericOptionsParser.java:319)
        at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:479)
        at org.apache.hadoop.util.GenericOptionsParser.(GenericOptionsParser.java:170)
        at org.apache.hadoop.util.GenericOptionsParser.(GenericOptionsParser.java:153)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:64)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)

我可以访问bin/hadoop版本以及classpath和大多数其他命令.我想也许我需要一个Windows样式路径,以便它可以符合\ bin\winutils样式.所以,我设置了HADOOP_HOME = c:\ ecosystem\hadoop-2.5.1,这个错误就消失了.但是,现在我在Cygwin中运行时收到链接错误.我通过Windows Command 使用HADOOP_HOME = c:\ ecosystem\hadoop-2.5.1测试了hadoop ,我可以毫无问题地运行MapReduce作业.

我想在Cygwin中成功运行hadoop,我不想处理链接错误.如果我保留HADOOP_HOME =/cygdrive/c/ecosystem/hadoop-2.5.1,有什么方法可以设置hadoop-config或其他文件来查找Windows样式路径,如果Cygwin路径失败或为空?在hadoop-config中可能是这样的:

if ["$HADOOP_HOME" = ""]; then
  HADOOP_HOME=$(cygpath -w "$HADOOP_HOME")
fi

显然这个特殊的代码在hadoop-config中不起作用,但我想你会得到一般的想法.任何帮助,将不胜感激.

1 个回答
  • 当我尝试通过Eclipse设置环境变量HADOOP_HOME来尝试在Windows中本地执行Hadoop MR程序时,我解决了与Eclipse类似的错误:运行 - >运行配置 - >环境.

    2022-12-18 16:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有