报错内容 java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
第一次运行hadoop程序时,报了以上错误(java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems)
此错误是由于HADOOP_HOME和hadoop.home.dir未设置造成的。在Windows环境中运行HDFS或MapReudce代码时,Hadoop依赖winutils.exe来设置本地文件权限,因此需要在Windows中配置Hadoop的运行环境并确保路径下包含winutils.exe文件。在Windows运行程序时,使运行的程序可以检测到Hadoop相关的依赖,否则可能会出现程序运行失败的情况。接下来,将演示如何在Windows配置Hadoop运行环境。
目录
以下是解决方案:
1)下载winutils.exe文件
下载适合本机的Hadoop版本的winutils.exe文件。我使用的是hadoop-3.3.0的版本,所以我下载的也是hadoop-3.3.0版本。
Winutils.exe下载:GitHub - steveloughran/winutils: Windows binaries for Hadoop versions (built from the git commit ID used for the ASF relase)
其中winutils.exe和winutils.pdb文件用于运行HDFS和MapReduce程序时防止出现NativeIO异常;hadoop.dll 文件用于运行HDFS和MapReduce程序时防止出现空指针异常。
2)打开Windows的运行窗口
按组合键“Win+R”打开Windows的运行窗口。
3)设置HADOOP_HOME环境变量
右键点击此电脑选择属性,选择高级设置,再选择环境设置。
在用户变量的Path变量中新建HADOOP_HOME变量,值为你刚才下载的hadoop的路径,我的是:C:\hadoop-3.3.0,确认无误后点击确定。
在系统环境变量的Path环境变量中添加 %HADOOP_HOME%\bin。
添加完成后,点击各提示框的确定按钮,使环境变量生效。
注意:添加完成之后,重启计算机使添加的文件生效,切记先将Hadoop集群和虚拟机Hadoop1、Hadoop2和Hadoop3挂起后,再执行计算机重启操作。
4)重启IDE并重新运行程序
重启计算机后,就可以打开Hadoop集群和IDE并重新运行代码。