Tout en travaillant sur La variable est préréglée dans conf / hadoop-env.sh code> (modifié
export java_home = / usr / lib / jvm / java-6-soleil code>),
bash.bashrc code>. p>
9 Réponses :
Vérifiez si peut-être mettre bin / start-all.sh code> ne remplace pas
java_home code> p>
echo $ java_home code> à l'intérieur de ce script droit avant l'exécution de ces fichiers binaires? p>
Habituellement scripts de démarrage des démons d'incendie comme un autre utilisateur, assurez-vous donc que cet utilisateur a également une exportation appropriée dans .CASHRC.
Ou définir manuellement Java Home comme indiqué dans une autre réponse ici, mettre à bac / start-all.sh: export java_home = / usr / lib / jvm / java-6-soleil code>
La variable Java_Home Vous définissez avec Set Java_Home = code> est pertinent uniquement pour la coque actuelle. Étant donné que vous commencez une nouvelle coquille lorsque vous exécutez
bin / start-all.sh code> Vous devez "exporter" la variable environnementale pour la rendre disponible dans la portée globale:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
Vous pouvez essayer d'écrire dans votre fichier .bash_profile "java_home = / usr / lib / jvm / java-6-sun", lorsque vous vous connectez à l'aide d'une console, physiquement à la machine ou en utilisant SSH, .bash_profile est exécuté ., .bstrucc est ouvert lorsque vous exécutez / bin / bash ou un autre terminal p>
Vous pouvez également essayer de l'écrire à l'intérieur du démarrage-all.sh p>
Assurez-vous que Java_Home a le chemin correct p>
J'ai simplement ajouté à la ./conf/hadoop-env.sh Cette ligne: et cela a aidé p> p>
Il est également bon de noter que si vous avez déjà Java_Home défini pour une raison quelconque (par exemple, parce que vous utilisez Maven), cela ne peut toujours pas être ignoré. L'exportation Java_Home doit encore être définie (et non simplement avec l'exportation Java_Home = $ Java_Home mais une chaîne appropriée).
Travailler sur Hadoop 1.0.4 de Tarball téléchargé à partir d'Apache. Sur Ubuntu 12.04 Utiliser Open JDK 6 - (Ubuntu place le binaire Java en / usr / bin / java), donc dans ce fichier, je n'ai pas décompressé la variable Java_Home et l'a remplacée avec / usr et start-all.sh fonctionne sans erreur Java_Home
Merci, ça a fonctionné pour moi aussi. La version Hadoop est 2.6.0.
sh jdk-6u32-linux-i586.bin p> li>
mv / etc / alternatives / java / etc / alternatives / java_bak MV / etc / Alternatives / Javac / etc / Alternatives / Javac_Bak P> LI>
Créer un lien ln -s /pdk1.6.0_32/bin/java / etc / Alternatives / Java ln -s /pdk1.6.0_32/bin/javac / etc / Alternatives / Javac P> Li> ol>
5. Java -Version P>
------------ Vous devez voir ceci ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Java version "1.6.0_32" Java (TM) SE Runtime Environment (Build 1.6.0_32-B05) P>
Même problème sur Ubuntu Precise + CDH4 ... P>
L'histoire longue courte, CDH4 utilise Bigtop et le moyen le plus simple de définir Java_Home consiste à éditer le fichier / etc / par défaut / utils de Bigtop-Utils, tel que: P>
Export Java_Home = / USR / LIB / JVM / JDK1.6.0_43 / JRE / P>
Remarque: je n'ai pas pu trouver de fichier hadoop-env.sh après une installation correcte du CDH4. p>
Le problème est que les scripts qui initialise DFS et mapreduce Daemons n'ont pas de java_home défini dans son environnement. sinon, lorsque cela ne suffit pas, le problème peut être que la configuration L'environnement utilisé (hadoop-env.sh) n'est pas celui que nous attendions; Hadoop choisit une autre ou la valeur par défaut si jamais. La solution la plus rapide définira le répertoire Conf lorsque le script hadoop-env.sh est placé. Réglage de la variable d'environnement Hadoop_Conf_Dir sera suffisant: P>
Posiblement, lors de l'exécution de HDFS et de MapReduce, son environnement d'exécution est celui spécifié par le script $ Hadoop_home / Conf / Hadoop-env.sh. Par conséquent, il suffirait de définir Java_Home à $ hadoop_home / Conf / Hadoop-env.sh:
export HADOOP_CONF_DIR=hadoop-home-path/conf
Vous pouvez ajouter votre fichier Exporter java_home = $ (readlink -f / usr / bin / java | sed "s: bin / java ::") p>
blockQuote>
et il changera de manière dynamique lorsque vous mettrez à jour vos paquets et utilisez-vous par Hadoop. P> .bstrucc code> fichier: p>
Peut-être que vous devez vérifier $ Java_Home Configuration comme ci-dessous:
1. Pour Hadoop-1.x Code>: Hadoop-Home-Path / Conf / Hadoop-env.sh
2. Pour Hadoop-2.x Code>: Hadoop-home-path / etc / hadoop / hadoop-env.sh p>
Veuillez ajouter les lignes de
./f / hadoop-env.sh code> dans la question si le problème n'est toujours pas résolu. Ajoutez également les lignes du
~ / .bstructrc code> où le chemin d'accès à
java_home code> est défini.