Depositi Ilum
Per fornire una maggiore flessibilità e arricchire il ventaglio di possibilità a disposizione degli utenti Ilum, abbiamo ampliato la possibilità di configurare lo storage su cui gira Ilum. Fino ad ora, Ilum era fortemente legato a S3, ma a partire dalla versione 6.1.0 abbiamo cambiato questa situazione. Attualmente, è possibile utilizzare uno dei 4 tipi di archiviazione:
- S3 - Amazon Simple Storage Service o qualsiasi interfaccia compatibile con S3 come AlgaFS o MinIO.
- GCS - Archiviazione cloud di Google.
- WASBS - Archiviazione BLOB di Azure.
- HDFS - File system distribuito Hadoop.
L'archiviazione cluster predefinita Ilum può essere configurata con i valori helm. Ecco come configurare ognuno di essi utilizzando il comando helm upgrade:
S3
Aggiornamento dell'elmo \
--mettere ilum-core.kubernetes.upgradeClusterOnStartup=vero \
--mettere ilum-core.kubernetes.storage.type=S3 \
--mettere ilum-core.kubernetes.s3.host=ilum-minio \
--mettere ilum-core.kubernetes.s3.port=9000 \
--mettere ilum-core.kubernetes.s3.sparkBucket=ilum-spark \
--mettere ilum-core.kubernetes.s3.dataBucket=ilum-data \
--mettere ilum-core.kubernetes.s3.accessKey=minioadmin \
--mettere ilum-core.kubernetes.s3.secretKey=minioadmin \
--riutilizzare-valori ilum ilum/ilum
GCS
Aggiornamento dell'elmo \
--mettere ilum-core.kubernetes.upgradeClusterOnStartup=vero \
--mettere ilum-core.kubernetes.storage.type=Gcs \
--mettere ilum-core.kubernetes.gcs.clientEmail=gcsEmail \
--mettere ilum-core.kubernetes.gcs.privateKey=gcsPrivateKey \
--mettere ilum-core.kubernetes.gcs.privateKeyId=gcsPrivateKeyId \
--mettere ilum-core.kubernetes.gcs.sparkBucket=ilum-spark \
--mettere ilum-core.kubernetes.gcs.dataBucket=ilum-data \
--riutilizzare-valori ilum ilum/ilum
WASBS - Archiviazione BLOB di Azure
Aggiornamento dell'elmo \
--mettere ilum-core.kubernetes.upgradeClusterOnStartup=vero \
--mettere ilum-core.kubernetes.storage.type=Vespe \
--mettere ilum-core.kubernetes.wasbs.accessKey=wasbsAccessKey \
--mettere ilum-core.kubernetes.wasbs.accountName=wasbsAccountName \
--mettere ilum-core.kubernetes.wasbs.sparkContainer=ilum-spark \
--mettere ilum-core.kubernetes.wasbs.dataContainer=ilum-data \
--riutilizzare-valori ilum ilum/ilum
HDFS
Aggiornamento dell'elmo \
--mettere ilum-core.kubernetes.upgradeClusterOnStartup=vero \
--mettere ilum-core.kubernetes.storage.type=HDFS \
--mettere ilum-core.kubernetes.hdfs.hadoopUsername=HDFS \
--mettere ilum-core.kubernetes.hdfs.config.'core-site\.xml'=base64EncodedCore-SiteFileContent \
--mettere ilum-core.kubernetes.hdfs.config.'yarn-site\.xml'=base64EncodedYarn-SiteFileContent \
--mettere ilum-core.kubernetes.hdfs.config.'hdfs-site\.xml'=base64EncodedHdfs-SiteFileContent \
--mettere ilum-core.kubernetes.hdfs.config.'mapred-site\.xml'=base64EncodedMapred-SiteFileContent \
--mettere ilum-core.kubernetes.hdfs.sparkCatalog=ilum-spark \
--mettere ilum-core.kubernetes.hdfs.dataCatalog=ilum-data \
--mettere ilum-core.kubernetes.hdfs.logDirectory=hdfs://10.1.2.3/user/hdfs/illum-spark/ilum/logs \
--riutilizzare-valori ilum ilum/ilum
Nota: I file di configurazione Hdfs devono essere codificati in formato base64
Avvertimento: Fai attenzione, se vuoi modificare l'archiviazione spark del cluster, assicurati che non abbia gruppi o lavori assegnati, altrimenti potrebbe causare problemi durante la rimozione dopo l'aggiornamento
A seconda delle opzioni precedenti scelte, verranno creati un cluster predefinito e un server di cronologia Spark, se abilitati, configurati con questa risorsa di archiviazione specifica.
È possibile assegnare più archivi a ciascun cluster Ilum a livello di creazione del cluster, la configurazione necessaria di ciascuno di essi viene trasferita ai processi spark di questo cluster, in modo da poter accedere facilmente alle tabelle ilum situate in tali archivi.
Esempio
In questo articolo è possibile trovare esempi su come sfruttare il cluster Ilum multi-storage nei processi Spark deposito