web-dev-qa-db-fra.com

Hadoop: "ERREUR: Java_HOME n'est pas défini"

J'essaie d'installer Hadoop sur Ubuntu 11.10. Je règle la variable Java_HOME dans le fichier conf/hadoop-env.sh sur: 

# export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk

et ensuite j'exécute ces commandes (Opération autonome):

$ mkdir input 
$ cp conf/*.xml input 
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
$ cat output/*

mais j'ai l'erreur suivante lors de l'exécution de la troisième commande:

ERREUR: Java_HOME n'est pas défini

La variable Java_HOME n'est-elle pas définie correctement?

37
koukou

Assurez-vous que vous avez supprimé la balise de commentaire et modifié votre Java_HOME dans le hadoop-env.sh ainsi que les .bashrc et/ou .profile appropriés:

# export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk

devrait être

export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk

Vous pouvez définir votre Java_HOME et PATH pour tous les utilisateurs (assurez-vous de ne pas l'avoir défini précédemment sur le mauvais chemin) dans /etc/profile.

De plus, n'oubliez pas d'activer la nouvelle modification en vous déconnectant/en se connectant ou en exécutant source /etc/profile.

50
user1489515

Vous devez également définir Java_HOME dans le fichier hadoop-env.sh qui se trouve également dans le répertoire de configuration Hadoop . Par défaut, la ligne de réglage Java_HOME est commentée.

29
nantitv

Tapez echo $Java_HOME dans votre terminal pour vous assurer que votre Java_HOME est défini.

Vous pouvez également taper Java -version pour savoir quelle version de Java vous utilisez réellement.

En passant, en lisant votre description, il semble que vous écrivez réellement

export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk

dans le fichier conf/hadoop-env.sh, vous devez l'écrire dans votre terminal ou dans ~/.bashrc ou ~/.profile, puis tapez source < path to modified file >.

12
alain.janinm

Vous pouvez ajouter dans votre fichier .bashrc:

export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")

et cela changera dynamiquement lorsque vous mettrez à jour vos paquets.

6
Paulo Fidalgo

Copiez ce export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk dans le fichier hadoop-env.sh

Java_HOME est l'emplacement où les fichiers binaires Java sont présents.

1
American curl

La solution qui a fonctionné pour moi a été de placer mon Java_HOME dans /etc/environment

Bien que Java_HOME puisse être défini dans les fichiers/etc/profile, l'emplacement préféré pour Java_HOME ou toute variable système est /etc/environment.

Ouvrez/etc/environment dans n’importe quel éditeur de texte comme nano ou vim et ajoutez la ligne suivante:

Java_HOME="/usr/lib/jvm/your_Java_directory"

Chargez les variables:

source /etc/environment

Vérifiez si la variable s'est chargée correctement:

echo $Java_HOME
0
Muthukrishnan

J'ai essayé les solutions ci-dessus mais les suivantes ont fonctionné sur moi

export Java_HOME=/usr/Java/default
0
Ajak6