壹、故障現象
Microsoft windows [版本 10.0.18362.239] (c) 2019 Microsoft Corporation。保留所有權利。 C:UsersChirius>hadoop version 系統找不到指定的路徑。 Error: JAVA_HOME is incorrectly set. Please update C:dhc_hlkhadoop-2.8.5etchadoophadoop-env.cmd '-Xmx512m' 不是內部或外部命令,也不是可運行的程序 或批處理文件。 C:UsersChirius>
貳、嘗試解決
首先,本人遇見上述錯的先決條件是:在安裝jdk時,使用的是jdk的默認安裝路徑 C:Program FilesJavajdk1.xxxx ,然后在Windows電腦上解壓安裝本地hadoop,正確配置hadoop的系統環境變量$HADOOP_HOME及$HADOOP_HOME/etc/hadoop/hadoop-env.cmd文件的java安裝路徑前提下,報了上圖中的這個錯
報錯分析:
在Windows中安裝jdk時,如果是安裝在C:Program FilesJavajdk1.8.0_161路徑下,如果需要在其他組件中配置java的環境時,因為C:Program Files是Windows系統的系統盤,可能在某些場合下訪問的時候,必須以Windows管理員的身份去訪問,例如:我們在Windows中解壓安裝了hadoop,那么需要在$HADOOP_HOME/etc/hadoop/hadoop-env.cmd文件中手動修改java的安裝路徑,即:set JAVA_HOME=C:Program FilesJavajdk1.8.0_161
而我們的jdk安裝在jdk的默認安裝路徑下,所以該文件路徑有可能需要管理員訪問權限才可以訪問,所以如果像上圖中這樣配置會導致hadoop安裝失敗,失敗的原因則是未檢測到jdk環境,才會報Error: JAVA_HOME is incorrectly set.
叁、解決方法
將$HADOOP_HOME/etc/hadoop/hadoop-env.cmd文件中的 set JAVA_HOME=C:Program FilesJavajdk1.8.0_161 修改為 set JAVA_HOME=C:PROGRA~1Javajdk1.8.0_161 保存,然后重新在cmd窗口輸入 hadoop version 命令,即可成功!
注意:在$HADOOP_HOME/etc/hadoop/hadoop-env.cmd文件中的這一行 set JAVA_HOME=C:PROGRA~1Javajdk1.8.0_161 中不能有空格!
Microsoft Windows [版本 10.0.18362.239] (c) 2019 Microsoft Corporation。保留所有權利。 C:UsersChirius>hadoop version Hadoop 2.7.3 Subversion https://git-wip-us.Apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff Compiled by root on 2016-08-18T01:41Z Compiled with protoc 2.5.0 From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4 This command was run using /D:/Seven/ways/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar C:UsersChirius>