Hadoop sous Windows – “Erreur JAVA_HOME n’est pas définie correctement.”

J’essaie de faire fonctionner Hadoop sur “Local Mode” sur mon ordinateur Windows. Je l’ai utilisé pour me guider: http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html

Lorsque j’exécute la commande: bin / hadoop, le message d’erreur suivant s’affiche: “Erreur: JAVA_HOME n’est pas configuré correctement. Veuillez mettre à jour C: … \ hadoop-2.7.1 \ conf \ hadoop-env.cmd”

A l’intérieur de ‘hadoop-env.cmd’, j’ai la ligne: set JAVA_HOME =% JAVA_HOME%

Notez que lorsque je tape echo% JAVA_HOME% sur la ligne de commande, j’obtiens: C: \ Java \ jdk1.0.8_51.

Même si je change la ligne dans ‘hadoop-env.cmd’ pour: définir JAVA_HOME = C: \ Java \ jdk1.0.8_51 j’obtiens la même erreur …

Comment se peut-il que mon JAVA_HOME ne soit pas correctement défini?

Si votre chemin JAVA_HOME contient des espaces, vous devez utiliser le chemin d’access Windows 8.3

Utilisez “% JAVA_HOME%” dans conf \ hadoop-env.cmd

si votre chemin d’environnement Java contient de l’espace, tel que “C: \ Program Files \ java \ xxxxx”, le mot “Program Files” contient un espace, CMD ne peut donc pas être identifié

c’est la bonne réponse

À l’instar des autres réponses, votre chemin d’environnement Java ne doit pas contenir d’espace. La solution est la suivante:

  1. Dans la ligne de commande, chargez le répertoire contenant le fichier jdk (dans mon cas, C: \ Program Files \ Java \ jdk1.8.0_73).
  2. exécutez la ligne suivante “for% I in (.) do echo% ~ sI” pour afficher le nom abrégé de votre jdk installé (dans mon cas C: \ PROGRA ~ 1 \ Java \ JDK18 ~ 1.0_7)
  3. dans le fichier “hadoop-env.cmd”, modifiez la ligne “JAVA_HOME =% JAVA_HOME%” avec “JAVA_HOME = C: \ PROGRA ~ 1 \ Java \ JDK18 ~ 1.0_7”.
  4. relancez le fichier “hadoop-env.cmd” et il fonctionnera correctement.

dans hadoop-config.xml, la logique est

s’il n’existe pas% JAVA_HOME% \ bin \ java.exe (erreur echo: JAVA_HOME n’est pas configuré correctement. echo Veuillez mettre à jour% HADOOP_HOME% \ conf \ hadoop-env.cmd goto: eof)

si votre chemin d’environnement Java contient de l’ espace , tel que “C: \ Program Files \ java \ xxxxx”, le mot “Program Files” contient un espace , CMD ne peut donc pas être identifié

Donc, vous pouvez changer le chemin à la place.