-Dhadoop.security.logger'无法识别为内部或外部命令

时间:2018-11-12 16:51:28

标签: java hadoop

我已按照github中的安装说明在Windows 7中安装了Hadoop 2.8.0,我正确设置了JAVA_HOME和HADOOP_HOME环境变量,并配置了 core-site.xml,mapred-site文件中所需的.xml,hdfs-site.xml,yarn-site.xml,hadoop-env.cmd 文件,我的路径是

enter image description here

但是,在完成所有这些操作之后,在运行 hdfs namenode –format 命令

后,控制台出现以下错误

系统找不到指定的路径。 错误:JAVA_HOME设置错误。        请更新C:\ Hadoop-2.8.0 \ hadoop-2.8.0 \ etc \ hadoop \ hadoop-env.cmd 无法将“ -Dhadoop.security.logger”识别为内部或外部命令,

可操作的程序或批处理文件。

4 个答案:

答案 0 :(得分:1)

可以将hadoop-env.cmd中的JAVA_HOME设置为

set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_77\

,然后重试。 顺便说一句,-Dhadoop.security.logger您不想在没有任何hadoop / hdfs命令的情况下直接执行此配置参数。

示例:

bin\hdfs namenode --format -Dhadoop.security.logger

答案 1 :(得分:0)

也可以尝试以下方式:

有时候,即使我们在hadoop-env.cmd中设置了正确的路径,仍然会返回相同的错误。

所以我们必须遵循以下步骤:

  1. 以管理员身份打开cmd(命令提示符)。
  2. 使用您的Java路径创建符号链接(例如:c:\ program \ java \ jdk1.8)
  3. 在您的cmd中:$ mklink / D \ java_home“ C:\ Program \ Java \ jdk1.8”(注意:在\ D之后请插入空格)
  4. 现在,我们可以使用符号链接来代替整个路径(c:\ program \ java \ jdk1.8)
  5. 打开hadoop-env.cmd(编辑)并设置JAVA_HOME = \ java_home
  6. 最后保存并关闭文件
  7. 现在再次尝试语法:$ hdfs namenode -format

答案 2 :(得分:0)

如果您的Jdk文件夹类似于C:/ Program Files / Java / Jdk_1.8_261 文件路径包含空格,因此您应将jdk移至文件夹名称不包含空格的文件夹

答案 3 :(得分:0)

确保您的路径在引号之间 我遇到了同样的问题,因为我忘记了关闭引号。