“未能找到winutils二进制文件”,但是我的pyspark仍然可以工作

bhmjp9jg  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(395)

在windows中,当我启动pyspark shell时,出现以下错误:

2019-04-20 08:11:34 ERROR Shell:397 - 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.

但是,在这个错误之后,我的pyspark shell启动得很好,运行pyspark和在上面运行代码没有问题。但是,我每次都会遇到这个错误,我不知道如何消除它。
我已经正确设置了环境变量(就像很多人建议的那样),并且在正确的bin文件夹中有winutils.exe(我在hadoop的bin文件夹中也有winutils.exe和hadoop.dll)。我相信如果这些东西没有设置,pyspark shell甚至不会工作。
作为参考,我的环境变量设置为:
hadoop\u主页:c:\hadoop
spark\u主页:c:\spark\spark-2.3.3-bin-hadoop2.7
在我输入的路径中:c:\spark\spark-2.3.3-bin-hadoop2.7和c:\hadoop\bin。
我为系统变量(除了用户变量之外)设置了相同的变量。
hadoop也可以正常工作并启动(除了显示50070ui,而它显示8080ui,尽管这可能是一个单独的问题)。
这可能只是一个不会消失的缓存错误吗?有什么建议可以解决吗?谢谢!

jckbn6z7

jckbn6z71#

我解决了问题!错误不再显示。我只是对这些文件做了以下更改:“conf\spark-env.sh>set hadoop\u home=c:\hadoop;在conf\spark-defaults.conf>spark.driver.extrajavaoptions-djava.library.path=c:/hadoop/bin中“
正如该用户在评论中所建议的:
在hadoop二进制文件中找不到可执行文件c:\hadoop\bin\winutils.exe
因此,除了在/bin中设置正确的winutils.exe,您的环境变量也必须像我上面写的那样设置,还必须对我上面指定的文件进行添加。那么在windows上本地运行pyspark时应该没有问题或错误!

相关问题