Je dois modifier LD_LIBRARY_PATH JAVA_LIBRARY_PATH et CLASSPATH avant d'exécuter le travail hadoop au niveau du cluster. Dans LD_LIBRARY_PATH et JAVA_LIBRARY_PATH j'ai besoin d'ajouter l'emplacement de certains jars qui sont requis lors de l'exécution du travail, Comme ces jars sont disponibles sur mon cluster, similaire à CLASSPATH. J'ai un cluster de 3 nœuds, j'ai besoin de modifier ce LD_LIBRARY_PATH et CLASSPATH pour tous les 3 nœuds de données de telle manière que les jars disponibles sur mon nœud de cluster soient ajoutés au classpath, afin que le jar suivant soit disponible pendant l'exécution le travail car j'évite la distribution de pot pendant l'exécution du travail pour utiliser tous les jar prêts disponibles sur les nœuds de cluster. J'ai essayé le ci-dessous les optionsModifier LD_LIBRARY_PATH JAVA_LIBRARY et CLASSPATH dans le travail hadoop
1.I ont essayé de modifier hadoop-env.sh modifier CLASSPATH
export HADOOP_TASKTRACKER_OPTS="-classpath:/opt/oracle/oraloader-2.0.0-2/jlib/
mais la chose ci-dessus modifier HADOOP_CLASSPATH pas le CLASSPATH
Pour LD_LIBRARY_PATH et JAVA_LIBRARY_PATH j'ai fatigué d'ajouter la propriété ci-dessous donnée dans mapred-site.xml comme suggéré une ma place mais cela n'a pas fonctionné.
< propriété>
< name> mapred.child.env </name>
valeur <> JAVA_LIBRARY_PATH =/opt/oracle/OraLoader-2.0.0-2/lib/</valeur >
valeur <> LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: /opt/oracle/oraloader-2.0.0-2/lib/ </valeur>
< description> Variables d'environnement ajoutées par l'utilisateur pour les processus fils de la fonction de suivi des tâches. Exemple: 1) A = foo Cela va mettre la variable d'environnement A à foo 2) B = $ B: c C'est la variable d'environnement B de inherit tasktracker. </description>
</property>
J'ai redémarré tous mes 3 nœuds de données, tous tasktrakers et 2 NAMENOdes. Cependant, ces variables ne sont pas définies et mon travail hadoop n'est pas capable de trouver tous les fichiers jar requis pour exécuter le test.
LOG ERREUR ::
Error: java.lang.ClassNotFoundException: oracle.i18n.text.OraDateFormat at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
Quand je fais écho à mes HADOOP_CLASSPATH nœuds du cluster, tout le nécessaire pour l'exécution de travail de Hadoop viennent. Mais je pense que les jars suivants doivent être ajoutés dans JAVA_LIBRARY_PATH mais ça ne vient pas.
Je ne sais pas pourquoi, mais votre question précédente à ce sujet, et ma réponse a été déplacée vers superutilisateur: http://superuser.com/questions/513221/modify-ld-library-path-and-classpath-on -cluster-node-before-running-a-hadoop-job –
@ChrisWhite J'ai essayé la chose suivante, pour que ces jars soient disponibles pendant le travail. Pouvez-vous s'il vous plaît suggérer ce que je suis supposé faire pour résoudre ceci. –