解决Hadoop报错:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
程序报错
菜鸟记录学习Spark过程中的诸多坑,开始学习Spark时,按照教程运行Spark项目Local模式时IDEA出现Hadoop报错:Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 上csdn一查觉得是个非常入门的问题,按照参考方法下载hadoop-bin,然后添加环境变量,重启测试没有用,一时语塞,小白就是这么好欺负。
解决办法一
直接在Scala类中添加语句设置hadoop.home.dir
:
// Did not find winutils.exe: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
System.setProperty("hadoop.home.dir", "D:\\Application\\Java\\winutils\\hadoop-3.0.0")
注意不要习惯在绝对地址上加bin,直接是目录地址就行,调用hadoop时程序会自动去该地址下的bin中去找winutils.exe。
解决办法二
在IDEA中配置RunConfiguration,添加HADOOP_HOME变量:
参考
[1].Stackoverflow关于此项报错的解答参考
[2].CSDN关于此项报错的解答参考
[3].hadoop-x.x.x/bin各个版本的github下载地址