Das Hochladen und Herunterladen von Dateien auf HDFS ist ein grundlegender Betrieb des Clusters. Nach langer Zeit der Suche und des Debuggens habe ich zusammengefasst, wie die Methoden zur Verwendung des Clusters konfiguriert werden, und die verfügbaren Programme zu testen, die auf den Dateien auf dem Cluster arbeiten. Zunächst müssen die entsprechenden Umgebungsvariablen konfiguriert werden:
Die Codekopie lautet wie folgt:
Hadoop_home = "/home/work/tools/java/hadoop-client/hadoop"
für f $ hadoop_home/hadoop-*. jar;
Hadoop_classPath = $ {Hadoop_ClassPath}: $ f
Erledigt
für f $ hadoop_home/lib/*. jar;
Hadoop_classPath = $ {Hadoop_ClassPath}: $ f
Erledigt
hadoopvfs_home = "/home/work/tools/java/hadoop-client/hadoop-vfs"
für f $ hadoopvfs_home/lib/*. jar;
Hadoop_classPath = $ {Hadoop_ClassPath}: $ f
Erledigt
exportieren ld_library_path = $ ld_library_path:/home/work/tools/java/hadoop-client/hadoop/lib/nativ/linux-amd64-64/
Unter ihnen ist LD_LIBRARY_PATH der Weg der Bibliothek, die beim Anruf verwendet werden muss, und Hadoop_ClassPath sind die verschiedenen JAR -Pakete in unserem Hadoop -Client. Variable, die von einem System verwendet wird.
Die Codekopie lautet wie folgt:
Javac -ClassPath $ ClassPath: $ hadoop_classpath hdfsutil.java
Wie man rennt:
Die Codekopie lautet wie folgt:
Java -ClassPath $ ClassPath: $ hadoop_classpath hdfsutil
In der tatsächlichen Verwendung werden jedoch Fehler wie keine Erlaubnis gemeldet, oder wenn Sie sicherstellen können, dass es kein Problem mit dem Code gibt, werden einige seltsame Fehler beim Laufen gemeldet.
Antwort: Dies liegt daran, dass die Konfigurationsdatei keine Konfigurationsdatei gibt.
Die Codekopie lautet wie folgt:
this.conf = neue Konfiguration (false);
conf.adDresource ("./ Hadoop-Site.xml");
conf.addresource ("./ Hadoop-default.xml");
conf.set ("fs.hdfs.impl", org.apache.hadoop.hdfs.distributedFilesystem.class.getname ()); .class.getName ());
Warum passiert das? Das Buch ist einfach sehr einfach:
this.conf = new configuration ();
Dies liegt daran, dass Ihr Cluster lokal ist. Während des tatsächlichen Gebrauchsprozesses müssen Sie jedoch nicht konfigurieren. Der Prozess, wir alle verwenden Hadoop -Clients und wir haben bereits einen Cluster eingerichtet, daher müssen wir lokale Konfigurationen vornehmen.
Die Dateien hadoop-site.xml und hadoop-default.xml befinden sich im Conf-Verzeichnis des verwendeten Clients und geben Sie das Verzeichnis einfach an, wenn Sie addiert.
Erst nachdem alle oben genannten Konfigurationen konfiguriert sind, kann dieses Programm wirklich ausgeführt werden, sodass die Konfiguration ein sehr wichtiger Teil ist.
Das Folgende ist der Code des entsprechenden Tools.
Importieren Sie Java.io.BufferedInputStream; Import Java.io.FileInputStream; Import Java.io.FilenotFoundException; import Java.io.FileOutputStream; Import Java.io.ioxception; importieren java.inputstream; import Java.ious.outputStream; java.net.uri; import java.net.url; import java.io. .Filesystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.ioutils; = ""; {return this.hdfs_node; String GetFilePath () {return this.file_path; hadoop_default; = "") {return -1; .hdfs.impl ", org.apache.hadoop.hdfs.distributedFilesystem.class.getname ()); conf.set (" fs.file.impl ", org.apache.hadoop.fs.LocalFilesystem.class.getname () ); null; (RemOteName), New Progressable () {public void progress () {System.out.print ('.'); 0; = Dateisystem.get (uri.create (this.hdfs_node), this.conf); .); -1; = null; (this.hdfs_node + remoteName)); InputStreamReader (Instrenkung, "UTF-8"); }} catch (ioException e) {Neue IOException ("konnte nicht schreiben", e); Instrenkung.CLOSE ()} return 0; Länge == 4) {hdfsnode = args [0]; -nanling-hdfs.dmop.baidu.com:54310 "; /dhc/base/ftp/papapa "; Linien = 5;} hdfsutil hdfsutil = new hdfsutil (hdfsnode); ); }}Wenn Sie über das Herunterladen von Dateien auf FTP wissen möchten, finden Sie in diesem Artikel:
FTP -Download -Tool
Wenn Sie FTP- und HDFS -Dateien anschließen möchten, um sich gegenseitig weiterzugeben, erstellen Sie einfach eine Klasse und rufen Sie die Schnittstelle der Tools in diesen beiden Artikeln an, um den von Ihnen geschriebenen Code zu vervollständigen.
Das oben genannte dreht sich alles um diesen Artikel.
Bitte nehmen Sie sich etwas Zeit, um den Artikel mit Ihren Freunden zu teilen oder einen Kommentar zu hinterlassen. Wir werden uns aufrichtig für Ihre Unterstützung bedanken!