spark开发常见问题之一:java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop b

Posted mdlcw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark开发常见问题之一:java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop b相关的知识,希望对你有一定的参考价值。

最近在学习研究pyspark机器学习算法,执行代码出现以下异常:
19/06/29 10:08:26 ERROR Shell: 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:379)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:394)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:387)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
...........
19/06/29 10:08:26 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark‘s default log4j profile: org/apache/spark/log4j-defaults.properties
从程序运行度方面来说,这个异常并不影响spark程序的继续执行。但是作为一个程序员看到异常就如出现bug,必须让这种异常消失!
分析异常:根据提示应该是Hadoop binaries.中缺少winutils.exe这个配置。
解决方法:
1.首先检查本地window环境是否已经安装hadoop,若没有则先配置hadoop环境变量
1)下载Hadoop,我本次操作使用的是hadoop-2.7.3,当然你可以根据自己需求去官网下载
官网下载地址:
网盘分享我使用的版本:
链接: https://pan.baidu.com/s/1-ssNBynSzrC5iG5ozwqAUA 提取码: zdu5 
2)配置windows环境变量。本机是windows10系统
先添加HADOOP_HOME配置
技术图片

在配置path路径:

技术图片

3) 下载winutils.exe,hadoop.dll放到hadoop环境的bin目录,建议尽量使用版本匹配的,必然hadoop-2.6就使用2.6版本的。2.7版本就使用2.7.。理论上2.7版本可以使用在2.6版本上

这里提供hadoop-2.7.3版本的这2个文件:链接: https://pan.baidu.com/s/1r5rZWqU2O7wu2WtAhmt1KA 提取码: pxr9

 技术图片

4)重启电脑再次测试 异常提示消失

技术图片

 

提醒:这个异常提示并不一定是spark程序开发时才会出现。在做hadoop程序开发必然写mapreduce程序时 也会遇到同样情况。操作方法一致即可。

以上是关于spark开发常见问题之一:java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop b的主要内容,如果未能解决你的问题,请参考以下文章

Spark应用开发之一:Hadoop分析大数据

spark开发常见问题之一:java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop b

spark开发常见问题之一:java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop b(示

使用java的输入,输出流将一个文本文件的内容按行读出,每读一行就顺序添加行号,并写入到另一个文件

Spark算法实例:词频统计

万字详解 Spark开发调优(建议收藏)