Exécuter des applications Java dans Azure Batch

introduction

** Azure Batch ** est un service pratique qui vous permet d'exécuter des scripts et des applications arbitraires sur des machines virtuelles (VM) autoscalables. Les applications Java peuvent également être exécutées si la VM a une JVM (Java Virtual Machine) installée.

La documentation officielle a un démarrage rapide sur les applications .NET et Python, mais il n'y a actuellement pas de documentation Java, donc dans cet article, je voudrais résumer brièvement le flux d'exécution d'une application Java sur Azure Batch.

Le plan est conforme à l'article de démarrage rapide suivant, veuillez donc vous y référer également. Azure Quick Start: Exécuter le premier travail par lots dans le portail Azure-Azure Batch | Microsoft Docs

Création de ressources liées aux lots

Créons maintenant les ressources liées au Batch (comptes, pools, travaux, tâches) dans l'ordre. Une explication approximative de chaque ressource est la suivante.

--Account: la ressource de niveau supérieur d'Azure Batch. --Pool: un ensemble de machines virtuelles qui sert de ressource informatique. Vous pouvez créer plusieurs pools dans un seul compte. --Job: ensemble de tâches qui sont les unités de calcul. Les jobs peuvent être associés à un ou plusieurs pools. Le groupe de tâches subordonné utilise le pool associé au travail en tant que ressource informatique. --Tâche: Une unité de calcul. Définit la commande d'exécution de l'application.

Création de compte par lots

Tapez [Batch] dans la zone de recherche du portail Azure, et [Batch account] s'affichera comme candidat. Cliquez dessus. image.png

Sur l'écran du nouveau compte Batch, entrez un nom de groupe de ressources ou un nom de compte. Vous pouvez associer un compte de stockage à votre compte Batch, cliquez donc sur le lien Sélectionner un compte de stockage. image.png

Vous pouvez choisir de créer un compte de stockage existant ou d'en créer un nouveau. Ici, créez un nouveau compte de stockage. Sauf si vous êtes particulier à ce sujet, sélectionnez le stockage V2 recommandé (usage général v2). Définissez n'importe quel niveau de réplication en fonction de vos besoins (ici, nous choisissons le stockage local supérieur le moins cher). image.png

Ces derniers paramètres sont facultatifs. S'il n'y a pas de problème, créez-le. image.png

Ajouter une piscine

Cliquez sur [Ajouter] dans le menu de gauche [Pool] du compte Batch. image.png

Puisque nous créons une VM (un ensemble de) ici, il y a beaucoup d'éléments de réglage. Tout d'abord, en tant qu'image, vous pouvez choisir différents types. Ici, les contenus suivants sont sélectionnés.

--Editeur: canonique --Offre: ubuntuserver

image.png

Les images sélectionnables sont résumées sous forme de tableau à la fin de cet article. [ANNEXE - Types d'images sélectionnables](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)

Consultez les documents suivants pour connaître les tailles de VM sélectionnables. Sélectionnez une taille de machine virtuelle de pool --Azure Batch | Microsoft Docs](https://docs.microsoft.com/en-us/azure/batch/batch-pool-vm-sizes)

Ici, la taille de VM par défaut de [Standard A1] est sélectionnée. Vous pouvez sélectionner un nombre fixe ou une mise à l'échelle automatique pour la mise à l'échelle, mais ici, il est défini sur [Fixe] afin qu'une machine virtuelle puisse être démarrée. Vous pouvez définir la commande à exécuter lorsque la machine virtuelle démarre dans la tâche de démarrage. Sélectionnez Activé. image.png

(Lancer la tâche) Étant donné que la JVM n'est pas installée dans l'image Ubuntu 18.04-lts que vous avez sélectionnée précédemment, définissez la commande d'installation de la JVM ʻapt install -y openjdk-11-jdk` dans la ligne de commande de la tâche de démarrage. Modifiez également l'ID utilisateur en Pool autouser, Administrator. Le reste des paramètres est facultatif et si vous êtes satisfait, cliquez sur OK. image.png

Vous pouvez définir divers autres paramètres tels que le réseau virtuel en ajoutant un pool, mais ici, réduisez-le et cliquez sur [OK]. image.png

Ceci termine la création du pool. Le nœud dédié est 0-> 1, ce qui signifie que la VM démarre. Lorsqu'il devient 1, le démarrage de la VM est terminé. Si ce n'est pas le cas, le nœud n'a pas pu démarrer. Il est possible que la tâche de démarrage ne soit pas définie correctement, examinons-la donc pour toute erreur. image.png

Ajouter un emploi

Dans le menu de gauche de votre compte Batch, sous Jobs, cliquez sur Ajouter. image.png

Sélectionnez un ID de travail et un pool associé, puis cliquez sur OK. image.png

Mode et paramètres avancés

Vous pouvez faire un contrôle plus fin avec le mode et les paramètres détaillés, mais ici je ne montrerai la capture que comme référence sans la définir en particulier. image.png image.png

Ajouter une tâche (vérification des opérations Java)

Afin de confirmer que Java est installé sans aucun problème, exécutez la commande de vérification de version Java en tant que tâche.

Cliquez sur le travail que vous avez créé précédemment. image.png

Cliquez sur Ajouter une tâche. image.png

Arbitraire & Entrez un ID de tâche unique dans le travail, entrez java --version dans la ligne de commande et cliquez sur [Soumettre]. image.png

Ensuite, la tâche est envoyée à la file d'attente des travaux et effectue une transition d'état active → en cours d'exécution → terminée. L'exécution de la tâche doit être terminée en peu de temps car aucune autre tâche n'est en cours d'exécution. Cliquez sur la tâche que vous avez soumise pour voir les détails. image.png

Si la tâche est terminée normalement, vous devriez voir le résultat de sortie "stderr.txt" à l'erreur standard et le résultat de sortie "stdout.txt" à la sortie standard. Cliquez sur stdout.txt. image.png

Ce n'est pas grave si les informations de version de Java sont affichées comme indiqué ci-dessous. Les ressources liées à Batch sont maintenant prêtes à exécuter votre application Java. image.png

Exécution de l'application Java

À partir de là, nous allons commencer à exécuter l'application Java principale. La procédure consiste à télécharger le fichier JAR exécutable sur le compte de stockage, à télécharger le fichier JAR dans une tâche Batch et à l'exécuter.

Préparation du fichier JAR exécutable

Préparez un fichier JAR exécutable approprié. Ici, nous utiliserons le fichier JAR exécutable qui peut être généré en suivant les étapes de création d'un exemple d'application pour Spring Boot + Sprint Batch ci-dessous.

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

Télécharger le fichier JAR vers le compte de stockage

Créez un conteneur Blob approprié dans le compte de stockage associé à votre compte Batch et téléchargez le fichier JAR. image.png

Ajouter une tâche (exécuter l'application Java)

Ajoutez des tâches à partir de travaux dans votre compte Batch. Sur la ligne de commande, entrez la commande d'exécution JAR suivante. Cliquez sur Fichier de ressources pour les paramètres de téléchargement du fichier JAR.

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

image.png

Cliquez sur Sélectionner un BLOB de stockage sur l'écran des paramètres du fichier de ressources. image.png

Cochez [Inclure SAS], entrez une valeur arbitraire pour [Date d'expiration](ici, la valeur par défaut est 7), puis cliquez sur [OK]. image.png

Spécifiez le fichier JAR que vous avez téléchargé et cliquez sur Sélectionner. image.png

Cliquez sur Soumettre. Cela téléchargera le fichier JAR dans le répertoire de travail de la VM avant d'exécuter la ligne de commande définie dans la tâche. image.png

Après l'envoi et l'exécution de la tâche, si l'état est terminé comme indiqué ci-dessous et que le résultat de sortie standard est envoyé vers stdout.txt, le processus se termine normalement. image.png image.png

C'est tout pour l'histoire principale.

ANNEXE - Types d'images sélectionnables

Types d'images au 20 septembre 2020-Une liste d'articles disponibles sur le marché. Il ne s'agit que d'un instantané temporaire, veuillez donc consulter le portail Azure pour obtenir les dernières informations.

Type d'image

Type d'image-Marketplace

Émetteur Offre 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

c'est tout.

Recommended Posts

Exécuter des applications Java dans Azure Batch
Exécutons un lot dans un conteneur à l'aide d'Azure Batch
Fonctions Azure en Java
Exécuter un lot avec docker-compose avec Java batch
Créer des fonctions Azure en Java
[Pour les débutants] Exécutez Selenium sur Java
Exécuter le fichier de commandes à partir de Java
Exécuter des applications écrites en Java8 en Java6
Exécuter un processus externe en Java
ERRORCODE = -4471 se produit dans une application Java qui utilise Db2.
Rôle de JSP dans les applications Web [Java]
Environnement de développement d'applications Java créé dans un environnement VM
Partition en Java
État de l'application Java 9+
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
Application Java CICS-Run - (1) Exécutez un exemple d'application simple
S'entendre avec les conteneurs Java dans Cloud Run
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Tout supprimer du SDK Java dans Azure CosmosDB
Modifier la taille du tas Java dans Tomcat d'Azure App Service
Commentaires dans la source Java
[Tutoriel] Télécharger Eclipse → Lancer l'application Web avec Java (Pléiades)
Exécutez PostgreSQL sur Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Android-Télécharger des fichiers image vers Azure Blob Storage en Java
Détermination de type en Java
Résolution du problème lorsque Azure Functions a cessé de fonctionner en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Débogage à distance des applications Java dans Azure Web Apps
Java11: exécuter le code Java dans un seul fichier tel quel
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java