标签:java Hadoop HADOOP hadoop FileSystem apache org unset
问题描述:
java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
at org.apache.hadoop.util.Shell.checkHadoopHomeInner(Shell.java:448)
at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:419)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:496)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:79)
at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2972)
at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2968)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2830)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:389)
at org.apache.hadoop.fs.FileSystem$1.run(FileSystem.java:171)
at org.apache.hadoop.fs.FileSystem$1.run(FileSystem.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1844)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:168)
at com.demo.zhulong.utils.FileUtils.uploadToHdfs(FileUtils.java:209)
at com.demo.zhulong.controller.ImagesController.upload(ImagesController.java:151)
日志描述内容很清楚,没有设置 HADOOP_HOME 和 hadoop.home.dir 两项。这两项主要是干嘛的呢?是配置在本地环境变量中的 Hadoop 地址,那么需要下载Windows版本的Hadoop来设置么?如果是远程连接Linux上的Hadoop集群,则完全不需要再下载安装Windows版本的Hadoop!!!
本地远程连接Hadoop系统时需要在本地配置相关的Hadoop变量,主要包括hadoop.dll 与 winutils.exe 等。
winutils:
由于hadoop主要基于linux编写,winutil.exe主要用于模拟linux下的目录环境。当Hadoop在windows下运行或调用远程Hadoop集群的时候,需要该辅助程序才能运行。winutils是Windows中的二进制文件,适用于不同版本的Hadoop系统并构建在Windows VM上,该VM用以在Windows系统中测试Hadoop相关的应用程序。
解决方法
了解到原因之后,可以根据安装Hadoop集群的版本,下载相应的winutils。
下载地址:https://github.com/steveloughran/winutils
注:如果你安装的hadoop版本是:3.1.2或者3.2.0 就用winutils-master里面的hadoop-3.0.0配置环境变量吧!若无相同的版本,可选择就近的版本下载使用。如集群中使用的版本是2.8.5,可以下载使用2.8.3的版本文件。
解决方案详细步骤:
1.下载相应的winutils插件,并且解压在任意目录下
2.配置环境变量
新建系统变量
编辑path变量
3.重启idea或者eclipse,如果还是报错,请重启电脑试试!
参考文档1:https://blog.csdn.net/u013305864/article/details/97191344?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
参考文档2:https://blog.csdn.net/HeyShHeyou/article/details/103441110?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
标签:java,Hadoop,HADOOP,hadoop,FileSystem,apache,org,unset 来源: https://www.cnblogs.com/yuqiliu/p/14388423.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。