我知道有一个非常类似的帖子(在hadoop二进制路径中找不到winutils二进制文件),但是,我尝试了建议的每一步,仍然出现同样的错误。
我正在尝试使用Windows7上的ApacheSparkVersion1.6.0来执行本页的教程http://spark.apache.org/docs/latest/streaming-programming-guide.html,具体使用以下代码:
./bin/run-example streaming.JavaNetworkWordCount localhost 9999
但是,此错误不断出现:
阅读本文后,在hadoop二进制路径中找不到winutils二进制文件
我意识到我需要winutils.exe文件,所以我下载了一个hadoop二进制2.6.0,定义了一个名为hadoop\u home的环境变量:
with value C:\Users\GERAL\Desktop\hadoop-2.6.0\bin
把它放在如下路径上:%hadoop\u home%
但是,当我尝试代码时,仍然会出现相同的错误。有人知道怎么解决这个问题吗?
6条答案
按热度按时间8fq7wneg1#
从hadoopbin下载bin文件
System.setProperty("hadoop.home.dir", "Desktop\bin");
i2byvkas2#
我在尝试从我的windows笔记本电脑上启动sparkshell时也遇到了这个问题。我解决了这个问题,它为我工作,希望能有所帮助。这是我犯的一个很小的错误-我将winutils可执行文件保存为“winutils.exe”,而不仅仅是winutils。
因此,当变量被解析时,它被解析为winutils.exe.exe,而这在hadoop二进制文件中是不存在的。我删除了“.exe”并触发了shell,它成功了。我建议你看看它被保存的名字。
qlfbtfca3#
如果您使用hadoop在windows上运行spark,那么您需要确保正确安装了windows hadoop。要运行spark,需要在hadoop主目录bin文件夹中有winutils.exe和winutils.dll。
我想请你先试试这个:
1) 您可以从下面链接中的包下载.dll和.exe文件。
https://codeload.github.com/sardetushar/hadooponwindows/zip/master
2) 将winutils.exe和winutils.dll从该文件夹复制到$hadoop\u home/bin。
3) 设置
HADOOP_HOME
在spark-env.sh中或在命令处,添加HADOOP_HOME/bin
至PATH
.然后试着跑步。
如果你需要hadoop安装帮助的帮助,有一个很好的链接,你可以试试。
http://toodey.com/2015/08/10/hadoop-installation-on-windows-without-cygwin-in-10-mints/
但是,那可以等等。你可以试试前面的几个步骤。
5n0oy7gb4#
安装jdk1.8,从apachespark下载spark二进制文件,从gitrepo下载winutils
为jdk、spark binary和winutils设置用户变量路径
JAVA_HOME
c:\程序文件\java\jdk1.8.0\U 73HADOOP_HOME
c:\hadoop程序SPARK_HOME
c:\spark-2.3.1-bin-hadoop2.7版本PATH
c:\program files\java\jdk1.8.0\U 73\bin;%hadoop\u主页%\bin;%spark\u home%\bin;打开命令提示符并运行spark shell
Spark壳
pkbketx95#
您可以尝试将hadoop\u home环境变量设置为:
而不是
xurqigkl6#
以下错误是由于运行spark应用程序时类路径中缺少winutils二进制文件造成的。winutils是hadoop生态系统的一部分,不包含在spark中。即使抛出异常,应用程序的实际功能也可以正确运行。但最好是把它放在适当的位置,以避免不必要的问题。为了避免错误,请下载
winutils.exe
并将其添加到类路径中。}
如果
winutils.exe
已复制到C:\winutil\bin\
然后设置属性如下