我在为最新的hadoop-2.2版本启动namenode时遇到以下错误。我在hadoop bin文件夹中找不到winutils exe文件。我试过下面的命令
$ bin/hdfs namenode -format
$ sbin/yarn-daemon.sh start resourcemanager
ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - 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:278)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863)
15条答案
按热度按时间eni9jsuy1#
在windows中设置hadoop\u home变量来解决这个问题。
你可以从中找到答案
org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java
:ioexception自
hadoop\u主页\u目录
fdx2calv2#
如果您在使用spark运行一个自包含的本地应用程序时遇到这个问题(即,在向项目添加spark-assembly-x.x.x-hadoopx.x.x.jar或maven依赖项之后),一个更简单的解决方案是将winutils.exe(从这里下载)放在“c:\winutil\bin”中。然后可以通过向代码中添加以下行将winutils.exe添加到hadoop主目录:
来源:点击这里
ecbunoof3#
从这个链接下载所需版本的hadoop文件夹(假设您在windows上安装spark,那么您的spark是为其构建的hadoop版本)作为zip。
将zip解压缩到所需目录。你需要有表格的目录
hadoop\bin
(明确创建hadoop\bin
目录结构(如果需要)bin
包含中包含的所有文件bin
下载的hadoop的文件夹。除了winutil.exe之外,它还包含许多文件,如hdfs.dll、hadoop.dll等。现在创建环境变量
HADOOP_HOME
设置为<path-to-hadoop-folder>\hadoop
. 然后添加;%HADOOP_HOME%\bin;
至PATH
环境变量。打开一个“新命令提示符”并尝试重新运行命令。
xt0899hw4#
我在使用eclipse时遇到了这个问题。在我的例子中,我下载了正确的hadoop版本(hadoop-2.5.0-cdh5.3.0.tgz),我提取了内容并将其直接放在我的c驱动器中。然后我去了学校
eclipse->debug/run configurations->environment(tab)->并添加了
变量:hadoop\u home
值:c:\hadoop-2.5.0-cdh5.3.0
woobm2wo5#
如果我们直接使用ApacheHadoop2.2.0版本的二进制发行版并尝试在MicrosoftWindows上运行它,那么我们将遇到错误util.shell:在hadoop二进制路径中找不到winutils二进制文件。
apache hadoop 2.2.0版本的二进制发行版不包含某些windows本机组件(如winutils.exe、hadoop.dll等)。这些是在windows上运行hadoop所必需的(不是可选的)。
因此,您需要从hadoop源代码发行版中的“build.txt”文件后面的源代码构建hadoop的windows本机二进制发行版。你也可以按照下面的文章,一步一步的指导屏幕截图
在microsoft windows操作系统中构建、安装、配置和运行apache hadoop 2.2.0
error util.shell:在hadoop二进制路径中找不到winutils二进制文件
8tntrjer6#
我在windows上也遇到了同样的问题。我把它修好了
从link下载hadoop-common-2.2.0-bin-master。
在环境变量中创建一个用户变量hadoop\u home,并将hadoop common bin目录的路径指定为一个值。
您可以通过在cmd中运行hadoop来验证它。
重新启动ide并运行它。
nr9pn0ug7#
在pyspark中,要使用pycharm运行本地spark应用程序,请在下面的行中使用
ryevplcw8#
我也面临同样的问题。卸下
bin\
从hadoop的home路径为我解决了这个问题。hadoop\u home变量的路径应该类似于。可能需要重新启动系统。在我的例子中,重启ide就足够了。
wlzqhblo9#
hadoop需要winutils.exe才能执行与hadoop相关的命令。请下载hadoop-common-2.2.0 zip文件。winutils.exe可以在bin文件夹中找到。解压缩zip文件并将其复制到本地hadoop/bin文件夹中。
jfewjypa10#
下载[winutils.exe]
从url:
https://github.com/steveloughran/winutils/hadoop-
version
/垃圾箱在hadoop\u home/bin下通过
注:应设置环境变量:
用户变量:
变量:hadoop\u home
值:hadoop或spark dir
nzrxty8p11#
我使用了“hbase-1.3.0”和“hadoop-2.7.3”版本。设置hadoop\u home环境变量并复制hadoop\u home/bin文件夹下的“winutils.exe”文件可以解决windows操作系统上的问题。注意将hadoop\u home environment设置为hadoop的安装文件夹(这些版本不需要/bin文件夹)。另外,我更喜欢使用跨平台工具cygwin来解决linux操作系统的功能(尽可能),因为hbase团队推荐linux/unix env。
zkure5ic12#
您可以在此处下载winutils.exe:http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
然后把它复制到你的电脑上
HADOOP_HOME/bin
目录。nhn9ugyo13#
winutils.exe用于运行spark的shell命令。当您需要运行spark而不安装hadoop时,您需要这个文件。
步骤如下:
从hadoop 2.7.1的以下位置下载winutils.exehttps://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [注意:如果您使用的是单独的hadoop版本,请从github上相应的hadoop版本文件夹从上述位置下载winutils。]
现在,在c:\drive中创建一个文件夹“winutils”。现在在“winutils”文件夹中创建一个文件夹“bin”,并复制该文件夹中的winutils.exe。因此winutils.exe的位置将是c:\winutils\bin\winutils.exe
现在,打开环境变量并设置hadoop\u home=c:\winutils[注意:请不要在hadoop\u home中添加\bin,也不需要在path中设置hadoop\u home]
你的问题必须解决!!
yuvru6vn14#
语句java.io.ioexception:找不到可执行文件null\bin\winutils.exe
说明在扩展或替换环境变量时接收空值。如果您在common包中看到shell.java中的源代码,您会发现hadoop\u home变量没有设置,您将接收null来代替它,因此会出现错误。
因此,需要为此设置hadoop\u home或变量hadoop.home.dir属性。
希望这有帮助。
谢谢,卡姆莱什瓦尔。
mznpcxlj15#
简单的解决方案:从这里下载并添加到
$HADOOP_HOME/bin
(来源)重要更新:
对于hadoop-2.6.0,您可以从titus barik博客>>下载二进制文件。
我不仅需要指出
HADOOP_HOME
提取目录[path]
,还提供系统属性-Djava.library.path=[path]\bin
加载本机libs(dll)。