“找不到winutils二进制文件”,但我的pyspark仍然有效

时间:2019-04-20 17:26:55

标签: python windows hadoop pyspark

在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_HOME:C:\ hadoop
  • SPARK_HOME:C:\ Spark \ spark-2.3.3-bin-hadoop2.7
  • 在路径中输入:C:\ Spark \ spark-2.3.3-bin-hadoop2.7和C:\ hadoop \ bin。

我为系统变量(除了用户变量)放置了相同的变量。

Hadoop也可以正常运行并启动(除了显示50070 UI,而显示8080 UI,尽管这可能是一个单独的问题)。

这仅仅是一个不会消失的缓存错误吗?有什么建议可以摆脱它吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题!该错误不再显示。我只是对这些文件进行了以下更改:“ conf \ spark-env.sh> set HADOOP_HOME = C:\ hadoop;在conf \ spark-defaults.conf> spark.driver.extraJavaOptions -Djava.library.path = C: / hadoop / bin”

该用户在其评论中建议:

Could not locate executable C:\hadoop\bin\winutils.exe in the hadoop binaries

因此,除了在/ bin中具有适当的winutils.exe之外,还要按照我上面的描述进行设置,您的环境变量也必须在我上面指定的文件中进行添加。那么在Windows上本地运行pyspark时应该没有任何问题或错误!