Führen Sie Java-Anwendungen in Azure Batch aus

Einführung

** Azure Batch ** ist ein praktischer Dienst, mit dem Sie beliebige Skripts und Anwendungen auf automatisch skalierbaren virtuellen Maschinen (VMs) ausführen können. Java-Anwendungen können auch ausgeführt werden, wenn auf der VM eine JVM (Java Virtual Machine) installiert ist.

Die offizielle Dokumentation bietet einen schnellen Einstieg in .NET- und Python-Anwendungen. Derzeit gibt es jedoch keine Java-Dokumentation. In diesem Artikel möchte ich den Ablauf der Ausführung einer Java-Anwendung in Azure Batch kurz zusammenfassen.

Die Gliederung entspricht dem folgenden Schnellstartartikel. Lesen Sie daher auch diesen Artikel. Azure-Schnellstart: Erster Stapeljob in Azure-Portal ausführen - Azure-Stapel | Microsoft Docs

Stapelbezogene Ressourcenerstellung

Jetzt erstellen wir nacheinander stapelbezogene Ressourcen (Konten, Pools, Jobs, Aufgaben). Eine grobe Erklärung jeder Ressource lautet wie folgt.

--Account: Die Ressource der obersten Ebene von Azure Batch. --Pool: Eine Sammlung von VMs, die als Computerressource dienen. Sie können mehrere Pools in einem Konto erstellen. --Job: Eine Reihe von Aufgaben, die die Berechnungseinheiten sind. Jobs können einem oder mehreren Pools zugeordnet werden. Die untergeordnete Aufgabengruppe verwendet den dem Job zugeordneten Pool als Rechenressource. --Aufgabe: Eine Berechnungseinheit. Definiert den Ausführungsbefehl der Anwendung.

Stapelkonterstellung

Geben Sie [Stapel] in das Suchfeld des Azure-Portals ein, und [Stapelkonto] wird als Kandidat angezeigt. Klicken Sie darauf. image.png

Geben Sie auf dem neuen Bildschirm "Stapelkonto" einen beliebigen Ressourcengruppennamen oder Kontonamen ein. Sie können Ihrem Stapelkonto ein Speicherkonto zuordnen. Klicken Sie daher auf den Link Speicherkonto auswählen. image.png

Sie können ein vorhandenes oder ein neues Speicherkonto erstellen. Erstellen Sie hier ein neues Speicherkonto. Wählen Sie den empfohlenen Speicher V2 (Allzweck-Version 2) aus, es sei denn, Sie sind besonders darüber informiert. Stellen Sie eine beliebige Replikationsstufe ein, die Ihren Anforderungen entspricht (hier wählen wir den günstigsten lokalen überlegenen Speicher aus). image.png

Die letzteren Einstellungen sind optional. Wenn es kein Problem gibt, erstellen Sie es. image.png

Pool hinzufügen

Klicken Sie im linken Menü Ihres Stapelkontos unter Pool auf Hinzufügen. image.png

Da wir hier eine VM (eine Reihe von) erstellen, gibt es ziemlich viele Einstellungselemente. Zunächst können Sie als Bild verschiedene Typen auswählen. Hier werden folgende Inhalte ausgewählt.

image.png

Die auswählbaren Bilder werden am Ende dieses Artikels in tabellarischer Form zusammengefasst. [ANHANG - Auswählbare Bildtypen](https://qiita.com/nakazax/items/47daae65708bc3188cbf#appendix ---% E9% 81% B8% E6% 8A% 9E% E5% 8F% AF% E8% 83% BD% E3% 81% AA% E3% 82% A4% E3% 83% A1% E3% 83% BC% E3% 82% B8% E3% 81% AE% E7% A8% AE% E9% A1% 9E)

In den folgenden Dokumenten finden Sie auswählbare VM-Größen. Wählen Sie eine Pool-VM-Größe aus - Azure Batch | Microsoft Docs](https://docs.microsoft.com/en-us/azure/batch/batch-pool-vm-sizes)

Hier wird die Standard-VM-Größe von [Standard A1] ausgewählt. Sie können eine feste Nummer oder eine automatische Skalierung für die Skalierung auswählen. Hier ist sie jedoch auf Fest eingestellt, damit eine VM gestartet werden kann. Sie können den Befehl definieren, der ausgeführt werden soll, wenn die VM in der Startaufgabe gestartet wird. Wählen Sie Aktiviert. image.png

(Aufgabe starten) Da die JVM nicht in dem zuvor ausgewählten Ubuntu 18.04-lts-Image installiert ist, definieren Sie den JVM-Installationsbefehl "apt install -y openjdk-11-jdk" in der Befehlszeile der Startaufgabe. Ändern Sie auch die Benutzer-ID in Pool autouser, Administrator. Die restlichen Einstellungen sind optional. Wenn Sie zufrieden sind, klicken Sie auf OK. image.png

Sie können verschiedene andere Einstellungen vornehmen, z. B. ein virtuelles Netzwerk, indem Sie einen Pool hinzufügen. Minimieren Sie ihn jedoch hier und klicken Sie auf [OK]. image.png

Damit ist die Poolerstellung abgeschlossen. Der dedizierte Knoten ist 0-> 1, was bedeutet, dass die VM startet. Wenn dies 1 wird, ist der VM-Start abgeschlossen. Ist dies nicht der Fall, konnte der Knoten nicht gestartet werden. Es besteht die Möglichkeit, dass die Startaufgabe nicht richtig eingestellt ist. Überprüfen Sie sie daher auf Fehler. image.png

Job hinzufügen

Klicken Sie im linken Menü Ihres Stapelkontos unter Jobs auf Hinzufügen. image.png

Wählen Sie eine Job-ID und einen zugehörigen Pool aus und klicken Sie auf OK. image.png

Modus & erweiterte Einstellungen

Sie können den Modus und die detaillierten Einstellungen genauer steuern, aber hier werde ich die Aufnahme nur als Referenz verwenden, ohne sie besonders festzulegen. image.png image.png

Aufgabe hinzufügen (Java-Operationsprüfung)

Führen Sie den Befehl Java-Versionsprüfung als Task aus, um zu bestätigen, dass Java problemlos installiert ist.

Klicken Sie auf den zuvor erstellten Job. image.png

Klicken Sie auf Aufgabe hinzufügen. image.png

Beliebig & Geben Sie eine eindeutige Aufgaben-ID in den Job ein, geben Sie "java --version" in die Befehlszeile ein und klicken Sie auf [Senden]. image.png

Anschließend wird die Aufgabe an die Jobwarteschlange gesendet und der Statusübergang Aktiv → Ausführen → Abgeschlossen ausgeführt. Die Aufgabenausführung sollte in kurzer Zeit abgeschlossen sein, da keine andere Aufgabe ausgeführt wird. Klicken Sie auf die Aufgabe, die Sie gesendet haben, um die Details anzuzeigen. image.png

Wenn die Aufgabe normal abgeschlossen ist, sollten Sie das Ausgabeergebnis "stderr.txt" für den Standardfehler und das Ausgabeergebnis "stdout.txt" für die Standardausgabe sehen. Klicken Sie auf stdout.txt. image.png

Es ist in Ordnung, wenn die Java-Versionsinformationen wie unten gezeigt ausgegeben werden. Die stapelbezogenen Ressourcen können jetzt Ihre Java-Anwendung ausführen. image.png

Java-Anwendung ausführen

Von hier aus starten wir die Java-Hauptanwendung. Der Ablauf besteht darin, die ausführbare JAR-Datei auf das Speicherkonto hochzuladen, die JAR-Datei in einer Stapelaufgabe herunterzuladen und auszuführen.

Vorbereiten der ausführbaren JAR-Datei

Bereiten Sie eine geeignete ausführbare JAR-Datei vor. Hier verwenden wir die ausführbare JAR-Datei, die durch Ausführen der folgenden Schritte zum Erstellen einer Beispielanwendung für Spring Boot + Sprint Batch generiert werden kann.

https://spring.io/guides/gs/batch-processing/

Laden Sie die JAR-Datei in das Speicherkonto hoch

Erstellen Sie einen geeigneten Blob-Container in dem Speicherkonto, das Ihrem Stapelkonto zugeordnet ist, und laden Sie die JAR-Datei hoch. image.png

Aufgabe hinzufügen (Java-Anwendung ausführen)

Fügen Sie Aufgaben aus Jobs in Ihrem Stapelkonto hinzu. Geben Sie in der Befehlszeile den folgenden JAR-Ausführungsbefehl ein. Klicken Sie auf Ressourcendatei für Einstellungen zum Herunterladen von JAR-Dateien.

java -jar batch-processing-0.0.1-SNAPSHOT.jar

image.png

Klicken Sie im Bildschirm mit den Einstellungen für die Ressourcendatei auf Speicher-BLOB auswählen. image.png

Aktivieren Sie [SAS einschließen], geben Sie einen beliebigen Wert für [Ablaufdatum] ein (hier ist der Standardwert 7) und klicken Sie auf [OK]. image.png

Geben Sie die hochgeladene JAR-Datei an und klicken Sie auf Auswählen. image.png

Klicken Sie auf Senden. Dadurch wird die JAR-Datei in das Arbeitsverzeichnis der VM heruntergeladen, bevor die in der Aufgabe definierte Befehlszeile ausgeführt wird. image.png

Wenn nach dem Senden und Ausführen der Aufgabe der Status wie unten gezeigt abgeschlossen ist und das Standardausgabeergebnis in stdout.txt ausgegeben wird, wird der Vorgang normal abgeschlossen. image.png image.png

Das ist alles für die Hauptgeschichte.

ANHANG - Auswählbare Bildtypen

Bildtypen ab dem 20. September 2020 - Eine Liste der auf dem Marktplatz verfügbaren Artikel. Dies ist nur ein vorübergehender Schnappschuss. Überprüfen Sie daher das Azure-Portal auf die neuesten Informationen.

Bildtyp

Bildtyp-Marktplatz

Der Emittent Angebot SKU
canonical ubuntuserver 16.04-lts
canonical ubuntuserver 18.04-lts
credativ debian 8
credativ debian 9
debian debian-10 10
micrsoft-azure-batch centos-container 7-7
micrsoft-azure-batch centos-container-rdma 7-4
micrsoft-azure-batch centos-container-rdma 7-7
micrsoft-azure-batch ubuntu-server-container 16-04-lts
micrsoft-azure-batch ubuntu-server-container-rdma 16-04-lts
micrsoftwindowsserver windowsserver 2008-r2-sp1
micrsoftwindowsserver windowsserver 2008-r2-sp1-smalldisk
micrsoftwindowsserver windowsserver 2012-datacenter
micrsoftwindowsserver windowsserver 2012-datacenter-smalldisk
micrsoftwindowsserver windowsserver 2012-r2-datacenter
micrsoftwindowsserver windowsserver 2012-r2-datacenter-smalldisk
micrsoftwindowsserver windowsserver 2016-datacenter
micrsoftwindowsserver windowsserver 2016-datacenter-smalldisk
micrsoftwindowsserver windowsserver 2016-datacenter-with-containers
micrsoftwindowsserver windowsserver 2019-datacenter
micrsoftwindowsserver windowsserver 2019-datacenter-core
micrsoftwindowsserver windowsserver 2019-datacenter-core-smalldisk
micrsoftwindowsserver windowsserver 2019-datacenter-core-with-containers
micrsoftwindowsserver windowsserver 2019-datacenter-core-with-containers-smalldisk
micrsoftwindowsserver windowsserver 2019-datacenter-smalldisk
micrsoftwindowsserver windowsserver 2019-datacenter-with-containers
micrsoftwindowsserver windowsserver 2019-datacenter-with-containers-smalldisk

das ist alles.

Recommended Posts

Führen Sie Java-Anwendungen in Azure Batch aus
Lassen Sie uns mit Azure Batch einen Stapel in einem Container ausführen
Azure funktioniert in Java
Führen Sie Batch mit Docker-Compose mit Java-Batch aus
Erstellen Sie Azure-Funktionen in Java
[Für Anfänger] Führen Sie Selenium auf Java aus
Führen Sie eine Batchdatei von Java aus
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
Führen Sie einen externen Prozess in Java aus
ERRORCODE = -4471 tritt in einer Java-Anwendung auf, die Db2 verwendet.
Rolle von JSP in Webanwendungen [Java]
In einer VM-Umgebung erstellte Java-Anwendungsentwicklungsumgebung
Partisierung in Java
Java 9+ Anwendungsstatus
Änderungen in Java 11
Janken in Java
Umfangsrate in Java
FizzBuzz in Java
CICS-Java-Anwendung ausführen- (1) Führen Sie eine einfache Beispielanwendung aus
Kommen Sie mit Java-Containern in Cloud Run zurecht
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Löschen Sie alle aus dem Java SDK in Azure CosmosDB
Ändern Sie die Größe des Java-Heapspeichers in Tomcat von Azure App Service
Kommentare in der Java-Quelle
[Tutorial] Eclipse herunterladen → Webanwendung mit Java ausführen (Plejaden)
Führen Sie PostgreSQL unter Java aus
Formatieren Sie XML in Java
Einfache HTML-Spezialchars in Java
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
Verwenden Sie OpenCV mit Java
WebApi-Memorandum mit Java
Android-Laden Sie Bilddateien in den Azure Blob-Speicher in Java hoch
Typbestimmung in Java
Adressiert, da Azure-Funktionen in Java nicht mehr funktionieren
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Fehler in Java ausdrücken
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8
Was ist neu in Java 8?
Remote-Debugging von Java-Anwendungen in Azure Web Apps
Java11: Führen Sie Java-Code unverändert in einer einzelnen Datei aus
Verwenden Sie PreparedStatement in Java
Was ist neu in Java 9,10,11
Parallele Ausführung in Java