Dieser Artikel untersucht hauptsächlich die Zugangsmethode der Java -API von HDFS. Der spezifische Code ist unten angezeigt und hat detaillierte Kommentare.
Das Tempo war in letzter Zeit etwas schnell. Wenn Sie Zeit haben, können Sie dies abschließen
importieren java.io.ioxception; import Java.net.uri; import Java.net.urisyntaxexception; import org.apache.hadoop.conf.configuration org.apache.hadoop.fs.blockLocation; import.hadoop.fs.Filestatus; org.apache.hadoop.fs.Filesystem; import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.pat; import org.apache.hadoop.hdfs.distributedFilesystem; import org.
/** * HDFS -Dateisystem erhalten * @return * @throws ioException * @throws urisyntaxexception */public static Dateisystem getFilesystem () löst IOException aus, urisyntaxException {// Konfigurationsfileconfiguration lesen. System // Dateisystem fs = Dateisystem.get (conf); // angegebene Dateisystemadresse URI URI = New URI ("HDFS: // hy: 9000"); // Rückgabe des angegebenen Dateisystems // Wenn Sie local testen, müssen Sie diese Methode verwenden. Ausnahme */public static void mkdir () löst Ausnahme aus {// Dateisystem -System -System -System abrufen. rmdir () löst Ausnahme aus {// Dateisystemdateisystem fs = get filesystem (); // Datei- oder Dateiverzeichnis fs.delete (neuer Pfad ("Hdfs: // hy: 9000/hy/wibo"), true); // Ressourcenressource fs.Close (). löst Ausnahme {// Dateisystem -Dateisystem abrufen fs = get filesystem (); // Listen Sie den Verzeichnis Inhalt filestatus [] status = fs.ListStatus auf (neuer Pfad ("HDFS: // hy: 9000/")); // alle Dateipfade im Verzeichnis paths [] listedpaths = Datei -Datei -Datei -Paths: Paths -Paths: Paths -Paths: PATHS: PATHS: STATEDPATHS: STATEDDEM: STATATORDS (STATUSPATHS); ListedPaths) {System.out.println (Path);} // Lade die Ressource fs.close ();}/** * die Datei in HDFS hochladen * @Throws Exception */public static void CopyToHdfs () Throws Exception {// Get File -Dateistem -System -System. Path ("/home/hadoop/temp.jar"); // Wenn Sie in Windows testen müssen, müssen Sie ihn unter Windows in den Pfad ändern, z. B. e: //temp.jarpath srcpat = new path ("e: //temp.jar"); // Ziel Path Path path = new patha ("HDFS -Dateien: // hy: 9000/hy/hy/hy/hy/iiBo". fs.copyfromLocalFile (srcPath, dstpath); // Die Ressource fs.close ();}/*** Die Datei von HDFS herunterladen* @Throws Exception*/public static void getFile () Ausnahme {// Datei -Datei -System -System -System -Datei -System -System -System -NewSystem. Path ("hdfs: // hy: 9000/hy/wibo/temp.jar"); // Standardpfad, Standard ist Linux // Wenn Sie unter Windows getestet werden, müssen Sie unter Windows auf den Pfad wechseln, wie z. Ressource fs.close ();}/*** Informationen zu HDFS -Cluster -Punkten* @Throws Exception*/public static void gethdfsnodes () Ausläuft Ausnahme {// Dateisystem -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System -System aus. datanodestats = hdfs.getDatanodestats (); // Loop Traversal für (int i = 0; i <datanodestats.length; i ++) {System.out.println ("datanote_" + i + "_name:" + datanodestats [i] .Gethostname (); Der Speicherort einer Datei im HDFS -Cluster * @throws Exception */public static void getFilelocal () löst Ausnahme aus {// Dateisystem -System -System abrufen fs = getFilesystem (); // Dateipfad path = new path ("hdfs: // hy: 9000/wiheiBo/temp.jar"). fs.getFilestatus (Pfad); // Erhalten Sie die Listenliste der Dateiblock -Listen BlockLocation [] blocklocations = fs.getFileBleBlockLocations (Filestatus, 0, filestatus.getlen ()); // Loop Ausgabeblockinformationen für (int i = 0; i <blocklocations.length; Blocklocations [i] .Gethosts (); System.out.println ("block_" + i + "_location:" + hosts [0]);} // Die Ressource fs.close ();}Das obige ist der gesamte Inhalt dieses Artikels über die Zugriffsmethode der HDFS -Java -API. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!