Se divido un RDD
in 60 e ho un totale di 20 core distribuiti su 20 macchine, vale a dire 20 istanze di macchine single core, quindi il numero di attività è 60 (uguale al numero di partizioni). Perché è utile avere un'unica partizione per core e avere 20 compiti?In che modo le partizioni si associano alle attività in Spark?
Inoltre, ho eseguito un esperimento in cui ho impostato il numero di partizioni su 2, verificando che l'interfaccia utente visualizzi 2 attività in esecuzione in qualsiasi momento; tuttavia, ciò che mi ha sorpreso è che cambia le istanze al completamento delle attività, ad es. node1 e node2 eseguono i primi 2 task, quindi node6 e node8 eseguono il successivo insieme di 2 task ecc. Ho pensato impostando il numero di partizioni su un valore inferiore rispetto ai core (e alle istanze) in un cluster, quindi il programma avrebbe utilizzato solo il minimo numero di istanze richieste. Qualcuno può spiegare questo comportamento?
Grazie. Tuttavia, non inserisco i dati in HDFS, ma li importa da S3. Avevo l'impressione che questo non inserisse i dati in HDFS ma potrei sbagliarmi? – monster
Uh, dipende. Spark è molto comunemente usato come sostituto Hadoop su HDFS, ma è compatibile con più cose. Quindi le domande ti sono tornate, in cosa hai i tuoi dati? Ma ad essere onesti, non ho usato S3 per questo. Non sarei sorpreso se si applicassero le stesse considerazioni. Non ci sono molti modi per creare ridondanza distribuita ;-) –