Jeśli podzielę RDD
na przykład 60, a ja mam w sumie 20 rdzeni rozłożonych na 20 komputerach, tj. 20 wystąpień maszyn z jednym rdzeniem, to liczba zadań wynosi 60 (równa liczbie partycji). Dlaczego jest to korzystne w przypadku posiadania jednej partycji na rdzeń i posiadania 20 zadań?W jaki sposób partycje mapują się do zadań w Sparku?
Dodatkowo przeprowadziłem eksperyment, w którym ustawiłem liczbę partycji na 2, sprawdzanie interfejsu użytkownika pokazuje 2 zadania uruchomione w tym samym czasie; jednak zaskoczyło mnie to, że przełącza instancje po zakończeniu zadań, np. węzeł1 i węzeł2 wykonują pierwsze 2 zadania, następnie węzeł6 i węzeł8 wykonują następny zestaw 2 zadań itd. Pomyślałem, ustawiając liczbę partycji na mniej niż rdzenie (i instancje) w klastrze, a następnie program użyje minimalnego liczba wymaganych instancji. Czy ktoś może wyjaśnić to zachowanie?
Dziękuję. Jednak nie umieszczam danych w HDFS, raczej importuję z S3. Miałem wrażenie, że to nie umieszcza danych w HDFS, ale mogę się mylić? – monster
Uh, to zależy. Spark jest bardzo często używany jako zamiennik Hadoop na HDFS, ale jest kompatybilny z większą ilością rzeczy. Tak więc pytania wracają do Ciebie, w co masz swoje dane? Ale szczerze mówiąc, nie użyłem do tego S3. Nie zdziwiłbym się, gdyby te same uwagi miały zastosowanie. Nie ma aż tak wielu możliwości stworzenia rozproszonej redundancji ;-) –