2012-03-31 4 views
1

Ich habe ein sehr seltsames Problem. Ich benutze dfs-datastores Pail-Abstraktion, um Daten in HDFS in Java zu schreiben. Ich denke nicht, dass das Pail Stück für das Problem wichtig ist.Hadoop FileSystem.getFS() pausiert für ca. 2 Minuten

Wenn es ruft org.apache.hadoop.fs.FileSystem getFS (java.lang.String Pfad) mit einem Pfad auf meinem lokalen Dateisystem pausiert es für etwa 2 Minuten scheinbar nichts tut und dann zurück. Das ist auf meinem Laptop.

Das Seltsame ist, dass es wirklich schnell funktionierte, als ich heute in meinem Büro im Netzwerk war, aber jetzt, wo ich zuhause bin, mache ich es wieder. Ich benutze Ubuntu 10.10 64-Bit mit Java 1.7.

Wer hat irgendwelche Ideen, was es macht? Was kann anders sein, wenn man bei der Arbeit ist und zu Hause ist?

UPDATE: Ich habe Code mit dem Debugger schrittweise durchlaufen und es scheint Probleme in Configuration.loadResource() zu haben. Es ruft mehrmals an und es dauert 5-10 Sekunden, um von dieser Funktion zurückzukehren.

UPDATE2: Ich habe das ein wenig weiter eingegrenzt. Das größte Auflegen scheint zu sein, wenn es KerberosName.setConfiguration() aufruft. Das würde erklären, warum es bei der Arbeit schnell läuft, da das Active Directory als Kerberos-Server fungiert. Ich habe keinen hier zu Hause, also kann ich keinen finden. Jetzt stellen sie in Frage, warum auf der Welt versucht wird, Java Kerberos zu laden.

+0

Alles interessante in den NamenNode-Protokollen? –

+0

Ich glaube nicht, dass es irgendwelche NameNode-Protokolle gibt. Es schreibt in das lokale Dateisystem und der Ort, an dem es hängt, ist nur einen Ordner zu erstellen. –

+0

Hat Ihr Ubuntu einen NTFS-Mount? –

Antwort

1

Ich fand eine Lösung (oder zumindest eine Arbeit). Ich habe das krb5-kdc-Paket installiert und nun läuft mein kleines Programm schnell und ohne unerklärliche Pausen. Danach habe ich krb5-kdc entfernt, getestet und es lief noch schnell. Ich habe /etc/krb5.conf entfernt und die Pause erneut gestartet. Es sieht so aus, als ob die Verwendung der Hadoop-Bibliothek auf Ubuntu (mindestens) eine /etc/krb5.conf-Datei benötigt.

Vielleicht wird dies jemand anderem helfen.

+0

Ich stieß auf das gleiche Problem auf Ubuntu 12.04.2 LTS; Mit 'sudo apt-get install krb5-config' wurde die Datei /etc/krb5.conf erstellt, die Dinge für mich reparierte. –