Aller au contenu principal

Référence API

L’API ILUM constitue l’épine dorsale des fonctionnalités d’Ilum, fournissant une interface de programmation qui permet aux utilisateurs d’interagir avec leurs clusters et tâches Apache Spark. Cette API RESTful est conçue pour être robuste, flexible et intuitive, permettant aux développeurs d’intégrer de manière transparente les capacités d’Ilum dans leurs applications et flux de travail existants.

La spécification OpenAPI d’Ilum peut être trouvée ici

Importance

  • Interactivité en temps réel : L’une des fonctionnalités les plus puissantes de l’API Ilum est peut-être sa capacité à gérer des tâches Spark interactives en temps réel. Cette fonctionnalité permet aux applications d’envoyer des données à traiter immédiatement, sans attendre l’initialisation du contexte Spark. Ce type d’interactivité en temps réel peut être inestimable pour les applications qui ont besoin d’informations instantanées à partir de leurs données.

  • Facilité d’intégration : L’API Ilum permet aux développeurs d’accéder et de contrôler les clusters Spark depuis leurs propres applications, éliminant ainsi le besoin d’intervention manuelle ou d’outils autonomes. Cela signifie que les capacités d’Ilum peuvent être exploitées partout où elles sont nécessaires, que ce soit dans une application d’analyse de données personnalisée, un pipeline d’apprentissage automatique ou un système de gestion des données d’entreprise.

  • Automatisation et contrôle : L’API Ilum permet aux utilisateurs d’automatiser des tâches telles que la soumission de tâches, la surveillance et la gestion de clusters. Cela permet de rationaliser les opérations et de réduire la marge d’erreur, ce qui améliore l’efficacité et la fiabilité. Les utilisateurs peuvent également contrôler plusieurs clusters Spark à partir d’un seul endroit, qu’ils soient déployés dans le cloud ou sur site, et qu’ils utilisent Yarn ou Kubernetes comme gestionnaire de cluster.

  • Évolutivité et flexibilité : L’API Ilum a été conçue dans un souci d’évolutivité, ce qui lui permet de gérer des clusters Spark allant d’un seul nœud à des centaines de nœuds. De plus, sa conception RESTful signifie qu’il est basé sur des méthodes HTTP standard, ce qui le rend accessible à partir de n’importe quelle plate-forme ou langage capable d’effectuer des requêtes HTTP.

En résumé, l’API Ilum est un élément crucial de l’offre d’Ilum, permettant des niveaux élevés d’automatisation, d’intégration et d’interactivité en temps réel pour la gestion et la surveillance des clusters Apache Spark. Il s’agit d’un outil puissant pour toute organisation qui souhaite exploiter la puissance de Spark de manière flexible, évolutive et efficace.

Interaction avec l’API Ilum

Ce guide fournit des exemples d’interaction avec l’API Ilum. Les exemples utiliseront friser , mais les mêmes principes s’appliquent quel que soit le client HTTP choisi.

Exposer Ilum-Core

Tout d’abord, exposez le ilum-core service sur le port 9888 à l’aide de la commande suivante :

kubectl port-forward svc/ilum-core 9888:9888 

Cela permet une interaction locale avec le service Ilum.

Obtenir les clusters disponibles

Pour récupérer la liste des clusters disponibles, exécutez ce qui suit AVOIR demander:

curl "http://localhost:9888/api/v1/cluster"

Le premier cluster est créé lors du déploiement initial et est préconfiguré pour fonctionner avec l’instance Kubernetes utilisée par Ilum.

Créer un groupe de tâches Spark

Pour commencer à interagir avec Ilum, vous devez créer un groupe de tâches Spark évolutif en chargeant un fichier JAR contenant votre application Spark. Utilisez les éléments suivants PUBLIER Demande de création d’un groupe :

curl -X POST 'http://localhost:9888/api/v1/group' \
--form 'jars=@"/chemin/vers/local/fichier/ilum-job-example.jar"' \
--form 'scale="1"' \
--form 'clusterName="default"' \
--form 'nom="groupe-exemple"'

En cas de succès, cette demande renverra un ID de groupe. Vous pouvez récupérer cet ID ultérieurement en exécutant :

curl http://localhost:9888/api/v1/group

Exécuter une tâche et obtenir un résultat

Pour exécuter un travail au sein du groupe et récupérer le résultat, utilisez ce qui suit PUBLIER demander. Assurez-vous de remplacer GROUP_ID avec l’identifiant réel de votre groupe :

curl -X POST 'http://localhost:9888/api/v1/group/GROUP_ID/job/execute' \
--header 'Type-de-contenu : application/json' \
--data-raw '{
« type » : « interactive_job_execute »,
« jobClass » : « cloud.ilum.job.example.ExampleJob »,
« jobConfig » : {
« parameter » : « Bienvenue à ILUM »
}
}'

Cette demande démarre la tâche dans le groupe spécifié et renvoie le résultat de la tâche.

OpenAPI 3.0

OpenAPI 3.0 est une norme largement adoptée pour la conception, la construction et la documentation des API RESTful. L’utilisation d’OpenAPI 3.0 pour l’API Ilum apporte plusieurs avantages significatifs :

  • Standardisation : OpenAPI 3.0 fournit une structure claire et standardisée pour la conception et la documentation des API. Cela favorise l’interopérabilité et réduit la courbe d’apprentissage pour les développeurs qui sont déjà familiarisés avec la norme OpenAPI.

  • Interactive Documentation : OpenAPI 3.0 prend en charge la génération de documentation API interactive. Cela aide non seulement les développeurs à comprendre comment utiliser l’API, mais leur permet également d’essayer les appels d’API directement à partir de la documentation, ce qui améliore la convivialité et facilite les tests.

  • Génération de code : Il existe de nombreux outils disponibles qui peuvent générer des SDK clients dans différentes langues à partir d’une spécification OpenAPI. Cela permet d’accélérer considérablement le développement et de s’assurer que le code généré est conforme à la conception de l’API.

  • Validation et tests : Les spécifications OpenAPI 3.0 peuvent être utilisées pour valider automatiquement les demandes et les réponses d’API, ce qui permet de détecter les erreurs et les incohérences dès le début du processus de développement. Ils peuvent également être utilisés pour générer des cas de test, ce qui contribue davantage à l’assurance qualité.

En utilisant OpenAPI 3.0, l’API Ilum bénéficie non seulement de ces avantages, mais s’aligne également sur un large écosystème d’outils et de meilleures pratiques, améliorant ainsi sa convivialité, sa fiabilité et sa maintenabilité.