解决java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset

Java技术 潘老师 3年前 (2021-04-22) 6298 ℃ (0) 扫码查看

我们在使用Java API测试从Liunx上HDFS中下载文件到本地windows系统时,发现会包如下错误:

Exception in thread “main” java.lang.RuntimeException: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:736)
原因:

日志描述内容很清楚,没有设置 HADOOP_HOMEhadoop.home.dir 两项。这两项主要是干嘛的呢?是配置在本地环境变量中的 Hadoop 地址,而我们本地并没有搭建hadoop环境,因此出错。但是由于我们是远程连接Linux上的Hadoop集群,则完全不需要再下载安装Windows版本的Hadoop

解决:

本地远程连接Hadoop系统时需要在本地配置相关的Hadoop变量,主要包括hadoop.dll winutils.exe 等。
1)下载winutils:https://github.com/steveloughran/winutils

注:若无相同的版本,可选择就近的版本下载使用,我这里是下载的hadoop-3.0.0

2)将环境变量HADOOP_HOME设置为指向包含WINUTILS.EXE的bin目录上方的目录
3)将文件夹中hadoop.dll文件复制粘贴进C:\Windows\System32
然后再去执行发现问题解决。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/3041.html
喜欢 (5)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】