Impossible de détecter un valide hadoop répertoire home
J'ai mis en place Hadoop 2.2.0 nœud unique et a commencé à monter. Je suis en mesure de parcourir le système de fichiers sur http://localhost:50070/
Ensuite, j'ai essayé d'écrire un fichier fictif en utilisant le code suivant.
public class Test {
public void write(File file) throws IOException{
FileSystem fs = FileSystem.get(new Configuration());
Path outFile = new Path("test.jpg");
FSDataOutputStream out = fs.create(outFile);
}
- Je obtenir de l'exception suivante
INFO: DEBUG - field org.apache.hadoop.metrics2.lib.MutableRate org.apache.hadoop.security.UserGroupInformation$UgiMetrics.loginSuccess with annotation @org.apache.hadoop.metrics2.annotation.Metric(valueName=Time, value=[Rate of successful kerberos logins and latency (milliseconds)], about=, type=DEFAULT, always=false, sampleName=Ops)
INFO: DEBUG - field org.apache.hadoop.metrics2.lib.MutableRate org.apache.hadoop.security.UserGroupInformation$UgiMetrics.loginFailure with annotation @org.apache.hadoop.metrics2.annotation.Metric(valueName=Time, value=[Rate of failed kerberos logins and latency (milliseconds)], about=, type=DEFAULT, always=false, sampleName=Ops)
INFO: DEBUG - UgiMetrics, User and group related metrics
INFO: DEBUG - Creating new Groups object
INFO: DEBUG - Trying to load the custom-built native-hadoop library...
INFO: DEBUG - Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: no hadoop in java.library.path
INFO: DEBUG - java.library.path=/usr/lib/jvm/jdk1.7.0/jre/lib/amd64:/usr/lib/jvm/jdk1.7.0/jre/lib/i386::/usr/java/packages/lib/i386:/lib:/usr/lib
INFO: WARN - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
INFO: DEBUG - Falling back to shell based
INFO: DEBUG - Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping
INFO: DEBUG - Group mapping impl=org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback; cacheTimeout=300000
INFO: DEBUG - hadoop login
INFO: DEBUG - hadoop login commit
INFO: DEBUG - using local user:UnixPrincipal: qualebs
INFO: DEBUG - UGI loginUser:qualebs (auth:SIMPLE)
INFO: DEBUG - Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.
at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:225)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:250)
at
org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:639)
at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:468)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:456)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:905)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:886)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:783)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:772)
at com.qualebs.managers.HadoopDFS.writer(HadoopDFS.java:41)
Où puis-je régler l'HADOOP_HOME ou hadoop.la maison.dir?
Système d'exploitation Ubuntu 11.10
Les seuls fichiers de configuration j'ai configurer sont les suivants avec les propriétés ajoutées
- core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- mapred-site.xml.modèle
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
Avec impatience vos réponses.
Pourriez-vous svp m'indiquer la trace complète??
désolé pour la réponse tardive, mon problème est maintenant corrigé à partir de la lecture de votre réponse à cette question www.stackoverflow.com/questions/16000840 apparemment j'ai été appeler
Pas de problème. Content que tu ai eu de travail 🙂
si possible, pourriez-vous svp m'indiquer un bon tutoriel sur comment je peux télécharger un fichier à partir d'une page web comme une image ou une vidéo dans le système de fichiers hadoop et comment faire pour afficher ce fichier sur un site web avant la fin de page JSP.
désolé pour la réponse tardive, mon problème est maintenant corrigé à partir de la lecture de votre réponse à cette question www.stackoverflow.com/questions/16000840 apparemment j'ai été appeler
FileSystem.get(new Configuration())
avant l'ajout de ressources à la configuration.Pas de problème. Content que tu ai eu de travail 🙂
si possible, pourriez-vous svp m'indiquer un bon tutoriel sur comment je peux télécharger un fichier à partir d'une page web comme une image ou une vidéo dans le système de fichiers hadoop et comment faire pour afficher ce fichier sur un site web avant la fin de page JSP.
OriginalL'auteur qualebs | 2013-11-07
Vous devez vous connecter pour publier un commentaire.
J'ai trouver ma solution ici en faisant ceci:
System.setProperty("hadoop.home.dir", "/");
Cette exception est levée par checkHadoopHome() dans
org.apache.hadoop.util.Shell
Espère que cela aide!
Désolé pour la peine, j'ai mis à jour la solution. J'ai oublier une autre solution que j'ai utilisée 🙁
OriginalL'auteur Yongfeng
l'ajouter à la borne fichier bash si vous n'utilisez pas d'utilisateur dédié pour hadoop.
pouvez-vous veuillez éditer le post avec le numéro actuel??
Rien n'a changé, la question reste comme c'est. Est hadoop maison répertoire le répertoire de base dans le système de fichiers hadoop ou le répertoire contenant le non compressé hadoop fichier tar? quand je
echo $HADOOP_HOME
la sortie est/usr/local/hadoop
.Vous êtes à obtenir la bonne valeur. Eh bien, je ne pense pas que je sais pourquoi ça ne fonctionne pas. mais je peux vous dire un truc. Télécharger le hadoop core pot et le placer dans le classpath. puis exécutez votre application. Avez-vous essayé??
OriginalL'auteur Aditya Peshave
J'ai été faire cette même erreur exact des messages à partir de quelque chose, je ne crois pas est liée à des chemins d'accès à tous. J'ai eu mon enregistreur réglée correctement:
A été la cause de l'erreur:
Fixe:
La solution pourrait pas du tout être à changer les chemins d'accès.
OriginalL'auteur Akavall
Cette mise en place ne fonctionne pas sur Windows. Une solution de contournement consiste à créer un dossier sur votre projet (par exemple winutils/bin) et de la place de la winutils.exe (voir https://wiki.apache.org/hadoop/WindowsProblems). Puis dans le code Java ajouter
J'espère que cela aide.
OriginalL'auteur florins