大數據學習踩坑之 HADOOP_HOME and hadoop.home.dir are 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM