Cluster e storage
Panoramica
Gestione dei cluster
La gestione dell'infrastruttura Spark all'interno di un singolo cluster presenta numerose sfide. Il nostro obiettivo è garantire che l'infrastruttura abbia tutte le funzionalità essenziali, come la visualizzazione dei dati e il monitoraggio dei flussi di dati. Vogliamo anche che sia sicuro, con funzionalità di replica e controllo delle versioni predefinite. Inoltre, il monitoraggio dello stato di salute e delle prestazioni del nostro lavoro è fondamentale. Tuttavia, l'incorporazione di tutte queste funzionalità richiede una configurazione dispendiosa in termini di tempo, che aggiunge complessità e costi.
Inoltre, quando si passa a un'infrastruttura multi-cluster, queste attività devono spesso essere replicate per ogni cluster aggiuntivo, con conseguenti costi potenzialmente elevati. Inoltre, le spese di manutenzione richiedono un aumento lineare con ogni cluster aggiuntivo.
Ilum non offre solo Integrazione automatica di tutte le funzionalità sopra menzionate nella tua infrastruttura dati, ma rende anche Transizione a un multi-cluster architettura il più possibile fluida. Tutto ciò che devi gestire è la rete e l'accesso
Con Ilum, puoi gestire la tua architettura multi-cluster attraverso un piano di controllo centrale. Tutto può essere fatto all'interno dell'applicazione Ilum.
Gestione Magazzini
Esistono scenari in cui l'utilizzo di più soluzioni di archiviazione nell'infrastruttura dati diventa necessario. Ciò potrebbe essere dovuto a considerazioni sui costi, funzionalità uniche offerte da diversi provider o requisiti per avere spazio di archiviazione in più aree per ridurre la latenza di rete. Tuttavia, l'integrazione di più archivi in un'architettura Spark comporta spesso attività ripetitive e dispendiose in termini di tempo, ad esempio la configurazione di ogni processo Spark singolarmente per accedere allo spazio di archiviazione.
Ilum semplifica questo processo per te. È sufficiente configurare l'archiviazione una sola volta aggiungendo i dettagli di autenticazione quando la si collega al cluster. Successivamente, tutti i lavori Ilum vengono automaticamente autorizzati a leggere e scrivere nello storage, eliminando la necessità di una configurazione manuale per ogni lavoro.
Ad esempio, quando si utilizza l'archiviazione MinIO integrata, ogni processo Ilum sarà Preconfigurato Con questi parametri di spark:

Parametri simili verranno aggiunti per ogni archiviazione nel cluster.
In Ilum è possibile utilizzare 4 tipi di stoccaggio: GCS, S3, WASBS, HDFS.
HDFS Storage Configuration
When connecting an HDFS cluster as a storage backend, ilum automatically configures Spark jobs with the necessary Hadoop properties. For manual or advanced HDFS configuration, the following Spark properties are commonly required:
# Core HDFS connection
spark.hadoop.fs.defaultFS=hdfs://:8020
# HA NameNode configuration (if applicable)
spark.hadoop.dfs.nameservices=mycluster
spark.hadoop.dfs.ha.namenodes.mycluster=nn1,nn2
spark.hadoop.dfs.namenode.rpc-address.mycluster.nn1=namenode1:8020
spark.hadoop.dfs.namenode.rpc-address.mycluster.nn2=namenode2:8020
spark.hadoop.dfs.client.failover.proxy.provider.mycluster=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
For Kubernetes-based deployments, mount the Hadoop core-site.xml e hdfs-site.xml configuration files into Spark pods:
spark.kubernetes.driver.volumes.configMap.hadoop-config.mount.path: /etc/hadoop/conf
spark.kubernetes.driver.volumes.configMap.hadoop-config.mount.readOnly: vero
spark.kubernetes.executor.volumes.configMap.hadoop-config.mount.path: /etc/hadoop/conf
spark.kubernetes.executor.volumes.configMap.hadoop-config.mount.readOnly: vero
spark.driver.extraJavaOptions: -Dhadoop.home.dir=/etc/hadoop/conf
spark.executor.extraJavaOptions: -Dhadoop.home.dir=/etc/hadoop/conf
Ensure that HDFS ports (default: 8020 for RPC, 9870 for WebUI) are accessible from the Kubernetes cluster where ilum runs. For cross-network deployments, configure appropriate network policies or VPN tunnels.
Per altre informazioni su come aggiungere archivi ai cluster, visitare il sito Web Guida all'aggiunta di storage.
Gestione centralizzata dei lavori
Problema
Diamo un'occhiata a un esempio. Abbiamo 10 cluster in diverse regioni e vogliamo distribuire un processo su una di esse. Come sarebbe senza Ilum?
Avremmo bisogno di aggiornare kubectl config per impostare il contesto del cluster scelto come corrente.
cluster_i_context del contesto d'uso di kubectl config
Ciò significa che avremmo bisogno di contenere un enorme file kubeconfig con ogni singolo cluster scritto lì come contesto:
apiVersion: v1
ammassi:
- grappolo:
autorità di certificazione: /percorso/verso/ca-1. CRT
server: https://<cluster-1-Ip>:6443
nome: grappolo-1
...
- grappolo:
autorità di certificazione: /percorso/verso/ca-n.crt
server: https://<cluster-n-Ip>:6443
nome: grappolo-n
Contesti:
- contesto:
grappolo: grappolo-1
Namespace: default
utente: utente-1
nome: grappolo-1-contesto
...
- contesto:
grappolo: grappolo-n
Namespace: default
utente: utente-n
nome: grappolo-n-contesto
contesto-corrente: grappolo-io
gentile: Configurazione
Preferenze: {}
Gli utenti:
- nome: utente-1
utente:
certificato-client: /percorso/del/client/certificato-1. CRT
chiave-client: /percorso/del/client/chiave-1.key
...
- nome: utente-n
utente:
certificato-client: /percorso/del/client/certificato-n.crt
chiave-client: /percorso/del/client/chiave-n.key
Un approccio di questo tipo introduce diverse sfide. Si considerino gli scenari seguenti:
-
Lost Kubeconfig: Cosa succede se perdi il tuo file kubeconfig? L'accesso al cluster comprometterebbe e richiederebbe il ripristino o la rigenerazione manuale.
-
Dipendenza dal certificato: Cosa succede se il kubeconfig si basa su un certificato memorizzato localmente sul tuo PC e lo perdi? Ripristinare l'accesso diventerebbe macchinoso.
-
Accesso multiutente: Se si desidera concedere l'accesso al cluster a più persone, è necessario distribuire il file kubeconfig e i certificati a tutti? Questo processo non solo è inefficiente, ma pone anche rischi per la sicurezza.
-
Aggiornamenti dei certificati: Cosa succede quando i certificati scadono o devono essere aggiornati? Dovresti aggiornare il file kubeconfig e i certificati di ogni utente, aggiungendo ulteriore complessità.
Anche se risolvi tutti questi problemi, devi comunque affrontare il compito di creare un processo Spark. Ad esempio, è possibile inviare un lavoro utilizzando il seguente comando:
scintilla-invio \
--padrone k8s://https://<kubernetes-api-server>:6443 \
--deploy-mode cluster \
--nome spark-app \
--classe com.example.MyApp \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=<spark-image> \
/percorso/del/application.jar
E sarebbe necessario eseguire questo comando ogni volta che si ridimensiona il processo o si aggiornano le configurazioni, con conseguente notevole sforzo e inefficienza non necessari.
Soluzione
Ilum elimina tutti questi problemi con il suo approccio semplificato:
- Configurazione una tantum: È sufficiente aggiungere i certificati del cluster una volta per connettere Ilum al cluster e il gioco è fatto. Non è necessario gestire lunghi file kubeconfig o tenere traccia di più certificati e chiavi.
- Nessuna configurazione lato tecnico: i tecnici non dovranno configurare manualmente le connessioni del cluster o gestire i file kubeconfig.
- Gestione basata sull'interfaccia utente: Dimentica l'uso di kubectl per la distribuzione dei processi Spark. Con Ilum, tutto viene gestito attraverso un'interfaccia utente intuitiva.
Per iniziare, è sufficiente aggiungere un cluster seguendo la guida appropriata/l
Se è necessario aggiornare i certificati o qualsiasi altra configurazione del cluster, è sufficiente fare clic sull'icona Redigere per il cluster desiderato e seguire le stesse guide.
Nota: i lavori avviati con Ilum richiedono l'accesso al piano di controllo centralizzato. Per garantire ciò, è necessario esporre i servizi Ilum al mondo esterno e creare servizi esterni nel cluster remoto.
Dopo aver connesso il cluster, passare all'elenco dei cluster e selezionare il cluster in cui si vuole distribuire il processo Spark. Da qui è possibile distribuire i lavori Ilum seguendo queste guide:
- Come eseguire un semplice processo Spark
- Come eseguire un processo Spark interattivo
- Come eseguire un gruppo di codice interattivo
Con Ilum's Offerte di lavoro interattive , è possibile configurare i parametri Spark, caricare file, distribuire un pod Spark una sola volta ed eseguire le applicazioni Spark più volte senza ridistribuirle. Inoltre, il Gruppi di codice interattivi consente di eseguire il codice Spark direttamente all'interno dell'interfaccia utente di Ilum.
In qualsiasi momento, puoi:
- Redigere Parametri Spark del processo o risorse assegnate.
- Riscalare il lavoro secondo necessità.
- Riavvia o elimina lavori direttamente dall'interfaccia utente senza mai utilizzare la console.
Ilum semplifica la gestione dei cluster e dei processi Spark, risparmiando tempo e riducendo la complessità operativa.
Monitoraggio centralizzato
In Ilum è possibile monitorare tutte le informazioni vitali sulla propria infrastruttura dati da Piano di controllo centrale
Server della cronologia
Quando Spark esegue l'applicazione, crea un piano di esecuzione, suddividendolo in fasi, processi e attività separate. Lungo il percorso, tiene traccia di metriche chiave come il numero di righe e byte di dati trasferiti tra le fasi, nonché altri dettagli vitali sulle prestazioni.
In Ilum, tutti i lavori inviano queste informazioni al Registro eventi, che viene quindi organizzato dal server cronologico. Ciò consente di analizzare comodamente i dati direttamente all'interno dell'interfaccia utente di Ilum.


Il registro eventi viene archiviato nell'archivio Ilum predefinito. Per raccogliere dati dai processi Spark in esecuzione in cluster remoti, è necessario esporre l'archiviazione. Istruzioni dettagliate per questo processo sono disponibili sul sito Guida all'aggiunta GKE
Per ulteriori informazioni su History Server e su come monitorare i lavori, visitare il sito Pagina di monitoraggio
Grafite
Graphite è uno strumento di raccolta delle metriche simile a Prometheus, ma opera su un modello basato su push, il che lo rende particolarmente adatto per l'uso in un ambiente multi-cluster.
Tutti i lavori Ilum sono preconfigurati per inviare i dati delle metriche a Graphite, consentendo il monitoraggio centralizzato delle applicazioni e dell'infrastruttura.
Per abilitare Graphite, seguire le istruzioni fornite nel Pagina di monitoraggio . Una volta abilitato, configura i tuoi cluster per l'integrazione con Graphite facendo riferimento al Pagina di aggiunta GKS.
Derivazione dei dati
La derivazione è una funzionalità di Ilum che ti consente di visualizzare le relazioni tra set di dati e lavori all'interno dei tuoi progetti.
Ad esempio, è possibile visualizzare una visualizzazione del flusso di dati che mostra come due processi inseriscono i dati nell'archiviazione, dopodiché un altro processo elabora questi dati nel set di dati finale. In questo modo si ottiene una comprensione chiara e intuitiva del modo in cui i dati si spostano e si trasformano all'interno della pipeline.

Tali visualizzazioni vengono create automaticamente da Ilum grazie al Metadata Database: ogni Ilum Job è preconfigurato per inviare metadati sui lavori al database. L'interfaccia utente di Ilum utilizza questi dati per presentare le relazioni tra i processi e i set di dati.
Esponendo questo database di metadati ai cluster remoti, è possibile osservare facilmente il flusso di dati nell'architettura multi-cluster. Per saperne di più su come esporlo visita Pagina di aggiunta GKS
Per saperne di più sulla derivazione dei dati, visita Derivazione dei dati pagina.
Esplora file
Esplora file è una funzionalità di Ilum che consente di visualizzare i metadati per gli oggetti archiviati in tutti i sistemi di storage in tutti i cluster. Semplifica notevolmente il monitoraggio dello storage eliminando la necessità di passare da una configurazione IAM all'altra, da un account di servizio o da uno strumento all'altro per accedere ai contenuti degli storage. Inoltre, elimina il fastidio di condividere l'accesso allo storage con i membri del tuo team, poiché tutti possono visualizzare comodamente i contenuti dello storage direttamente tramite l'interfaccia utente di Ilum.

Per saperne di più visita il sito Esplora file pagina
Campo da golf
Analisi centralizzata dei dati
Ilum permette di integrare tutti gli strumenti per rendere possibile l'analisi dei dati attraverso Ilum UI
Metastore
A metastore is a tool that allows you to save information about your data, such as its schema, location, and other metadata on a central, persistent server. To learn more about it, visit the Data catalogs documentation page.
However, you need to expose Hive Metastore Server to remote clusters. You can do this following instructions from Guida all'aggiunta GKE.
Esplora tabelle

The Table Explorer lets you explore the contents of your metastores and view samples of your data with the Strumento di esplorazione dei dati.
To learn more about it, visit the Esplora tabelle pagina.
Ilum SQL
Similar to the Data Exploration Tool, you can access small portions of data by applying SQL operations. However, Ilum SQL provides greater flexibility by enabling you to run complex SQL queries on tables from the Hive Metastore, allowing for more advanced data exploration and analysis.
To learn more about it, visit Pagina SQL di Ilum