Procedura ottimale
Di seguito sono riportate le procedure ottimali per l'utilizzo dell'allocazione dinamica Spark con Data Flow.
Cicli brevi
Se l'elaborazione Spark richiede meno di 10 minuti, l'utilizzo dell'allocazione dinamica non ha senso. Il sovraccarico rende il runtime più lungo di quando le risorse vengono allocate in modo statico.
Tempo di avvio esecuzione
Se l'applicazione Spark non richiede tutte le risorse durante il tempo di esecuzione o di elaborazione iniziale, l'utilizzo dell'allocazione dinamica consente di migliorare il tempo di avvio dell'esecuzione. Specificare un numero minimo di nodi necessari per il tempo iniziale dell'applicazione, con il resto dei nodi allocati in parallelo quando l'applicazione viene eseguita.
Inizio caldo e freddo
Data Flow conserva un pool di risorse del tenant condiviso tra le esecuzioni per accelerare l'allocazione delle risorse. Un avvio a caldo è quando Dynamic Allocation tenta di prendere in prestito da questo pool e quindi gli esecutori vengono aggiunti entro pochi minuti.
Se non si verificano esecuzioni nella tenancy per cinque minuti, è possibile che il pool di risorse venga rilasciato. La riallocazione delle risorse potrebbe richiedere 10 o addirittura 20 minuti. Un cold start si verifica quando il pool di risorse è stato rilasciato. L'allocazione dinamica potrebbe richiedere da 10 a 20 minuti per aggiungere in modo dinamico gli esecutori.
Timeout inattività
È necessario più tempo per aggiungere un esecutore che per rilasciarlo. Pertanto, l'impostazione di un valore troppo basso per spark.dynamicAllocation.executorIdleTimeout potrebbe aumentare la durata complessiva dell'esecuzione, a causa del sovraccarico derivante dall'aggiunta di nuovi esecutori.