Ich habe eine Jar-Datei aus Eclipse exportiert (Runnable JAR >> Kopieren Sie erforderliche Bibliotheken in einen Unterordner).Wie führe ich eine Klasse aus Java-Jar-Datei auf Hadoop?
in Java, wenn Sie die Hauptklasse in der manifest.xml festlegen können Sie ausführen:
java -jar MyTest.jar arguments
wenn Sie eine andere Hauptklasse in der JAR-Datei ausführen möchten oder wenn Sie nicht eine Hauptklasse festgelegt haben im manifest.xml können Sie laufen:
java -cp MyTest.jar MyOtherMainClass arguments
in Hadoop wenn Hauptklasse in manifest.xml gesetzt ist, können Sie ausführen:
hadoop jar MyTest.jar arguments
Wenn Sie Folgendes eingeben:
hadoop jar MyTest.jar MyOtherMainClass arguments
Es MyOtherMainClass als Argument prüfen wird (nicht als eine Klasse zu laufen) in dem „args“ Array der ursprünglichen Hauptklasse von Glas.
Nun, wenn Sie eine andere Hauptklasse in der JAR-Datei ausführen möchten, was Sie schreiben?
Ich erwarte, dass etwas Ähnliches wie:
hadoop java -cp MyTest.jar MyOtherMainClass arguments
aber das gibt:
Error: Could not find or load main class java
Hinweis: wenn ich "Hadoop" von "hadoop java -cp MyOtherMainClass Argumente MyTest.jar" abnehmen wird in der Regel starten
Hallo, ich habe eine sehr dummes Problem, das ich in Lager bekam. Ich habe eine einfache (nur Hallo Welt drucken) .class-Datei lokal, die ich es in .jar konvertieren und lokal ohne Probleme ausführen kann. Aber wenn ich es in meinen Hadoop-Cluster stecke, sehe ich mich mit einem dummen Bug konfrontiert: JAR existiert nicht oder ist keine normale Datei: /usr/reihan/test.jar Ich sollte auch erwähnen, dass ich Hadoop-Built-In laufen lassen kann. Beispiele wie Wordcount ohne Problem, aber wenn ich mein eigenes Glas laufen lassen möchte, stelle ich mich mit diesem Problem. irgendeine Idee? –
Überprüfen Sie zunächst, ob Sie die JAR-Datei ordnungsgemäß generieren, und empfehlen Sie, sie mit eclipse zu generieren. Versuchen Sie zweitens, den vollständigen Pfad Ihrer JAR-Datei zu verwenden und versuchen Sie vorher, ob sie bereits in HDFS gespeichert ist. Versuchen Sie drittens, die Hauptklasse in Ihrer Manifestdatei festzulegen, wenn sie nicht vorhanden ist. Zuletzt, wenn es nicht funktioniert, schreibe in einen Kommentar den Befehl, den du benutzt, und einen Link zu deiner JAR-Datei, damit ich einen Blick darauf werfen kann. –