Informazioni di riferimento sulle API
L'API Ilum costituisce la spina dorsale delle funzionalità di Ilum, fornendo un'interfaccia programmatica che consente agli utenti di interagire con i loro cluster e processi Apache Spark. Questa API RESTful è progettata per essere robusta, flessibile e intuitiva, consentendo agli sviluppatori di integrare perfettamente le funzionalità di Ilum nelle applicazioni e nei flussi di lavoro esistenti.
La specifica OpenAPI di Ilum è disponibile qui
Importanza
-
Interattività in tempo reale : Forse una delle caratteristiche più potenti dell'API Ilum è la sua capacità di gestire lavori Spark interattivi in tempo reale. Questa funzionalità consente alle applicazioni di inviare dati da elaborare immediatamente, senza attendere l'inizializzazione del contesto Spark. Questo tipo di interattività in tempo reale può essere prezioso per le applicazioni che necessitano di informazioni immediate dai propri dati.
-
Facilità di integrazione : l'API Ilum consente agli sviluppatori di accedere e controllare i cluster Spark dall'interno delle proprie applicazioni, eliminando la necessità di interventi manuali o strumenti autonomi. Ciò significa che le funzionalità di Ilum possono essere sfruttate ovunque siano necessarie, che si tratti di un'applicazione di analisi dei dati personalizzata, di una pipeline di machine learning o di un sistema di gestione dei dati aziendali.
-
Automazione e controllo : l'API Ilum consente agli utenti di automatizzare attività come l'invio di lavori, il monitoraggio e la gestione dei cluster. Ciò consente di semplificare le operazioni e di ridurre lo spazio per gli errori, migliorando l'efficienza e l'affidabilità. Gli utenti possono anche controllare diversi cluster Spark da un'unica posizione, indipendentemente dal fatto che siano distribuiti nel cloud o in locale e che usino Yarn o Kubernetes come gestore cluster.
-
Scalabilità e flessibilità : L'API Ilum è stata progettata pensando alla scalabilità, consentendole di gestire la gestione di cluster Spark che vanno da un singolo nodo a centinaia di nodi. Inoltre, il suo design RESTful significa che si basa su metodi HTTP standard, rendendolo accessibile da qualsiasi piattaforma o linguaggio in grado di effettuare richieste HTTP.
In sintesi, l'API Ilum è una parte cruciale dell'offerta di Ilum, in quanto consente elevati livelli di automazione, integrazione e interattività in tempo reale per la gestione e il monitoraggio dei cluster Apache Spark. È uno strumento potente per qualsiasi organizzazione che desideri sfruttare la potenza di Spark in modo flessibile, scalabile ed efficiente.
Interazione con l'API Ilum
Questa guida fornisce esempi di come interagire con l'API Ilum. Gli esempi utilizzeranno ricciolo strumento a riga di comando, ma gli stessi principi si applicano indipendentemente dal client HTTP scelto.
Esporre Ilum-Core
In primo luogo, esporre il ilum-core servizio sulla porta 9888 utilizzando il seguente comando:
kubectl port-forward svc/ilum-core 9888:9888
Ciò consente l'interazione locale con il servizio Ilum.
Ottieni cluster disponibili
Per recuperare un elenco di cluster disponibili, eseguire quanto segue OTTIENI richiesta:
curl "http://localhost:9888/api/v1/cluster"
Il primo cluster viene creato durante la distribuzione iniziale ed è preconfigurato per funzionare con l'istanza Kubernetes utilizzata da Ilum.
Creare un gruppo di processi Spark
Per iniziare a interagire con Ilum, è necessario creare un gruppo di lavoro Spark scalabile caricando un file JAR contenente l'applicazione Spark. Utilizzare quanto segue INSERISCI Richiesta di creazione di un gruppo:
curl -X POST 'http://localhost:9888/api/v1/group' \
--form 'jars=@"/percorso/del/locale/file/ilum-job-example.jar"' \
--form 'scala="1"' \
--form 'clusterName="default"' \
--form 'nome="gruppo-esempio"'
In caso di esito positivo, questa richiesta restituirà un ID gruppo. È possibile recuperare questo ID in un secondo momento eseguendo:
curl http://localhost:9888/api/v1/group
Eseguire un processo e ottenere un risultato
Per eseguire un processo all'interno del gruppo e recuperare il risultato, utilizzare quanto segue INSERISCI richiesta. Assicurati di sostituire GROUP_ID con l'ID effettivo del tuo gruppo:
curl -X POST 'http://localhost:9888/api/v1/group/GROUP_ID/job/execute' \
--header 'Tipo di contenuto: application/json' \
--dati-grezzi '{
"tipo": "interactive_job_execute",
"jobClass": "cloud.ilum.job.example.ExampleJob",
"jobConfig": {
"parameter": "Benvenuto in ILUM"
}
}'
Questa richiesta avvierà il processo nel gruppo specificato e restituirà il risultato del processo.
OpenAPI 3.0
OpenAPI 3.0 è uno standard ampiamente adottato per la progettazione, la creazione e la documentazione delle API RESTful. L'utilizzo di OpenAPI 3.0 per l'API Ilum offre diversi vantaggi significativi:
-
Standardizzazione : OpenAPI 3.0 fornisce una struttura chiara e standardizzata per la progettazione e la documentazione delle API. Ciò promuove l'interoperabilità e riduce la curva di apprendimento per gli sviluppatori che hanno già familiarità con lo standard OpenAPI.
-
Documentazione interattiva : OpenAPI 3.0 supporta la generazione di documentazione API interattiva. Questo non solo aiuta gli sviluppatori a capire come utilizzare l'API, ma consente loro anche di provare le chiamate API direttamente dalla documentazione, migliorando l'usabilità e aiutando nei test.
-
Generazione di codice : Sono disponibili numerosi strumenti in grado di generare SDK client in vari linguaggi a partire da una specifica OpenAPI. Ciò può accelerare notevolmente lo sviluppo e garantire che il codice generato sia in linea con il design dell'API.
-
Convalida e test : le specifiche OpenAPI 3.0 possono essere utilizzate per convalidare automaticamente le richieste e le risposte API, aiutando a rilevare errori e incongruenze nelle prime fasi del processo di sviluppo. Possono anche essere utilizzati per generare casi di test, contribuendo ulteriormente alla garanzia della qualità.
Utilizzando OpenAPI 3.0, l'API Ilum non solo ottiene questi vantaggi, ma si allinea anche con un ampio ecosistema di strumenti e best practice, migliorandone così l'usabilità, l'affidabilità e la manutenibilità.