Mam zamiar zrobić aplikacje restową, w warstwie niżej będzie baza cassandra lub elephantDB (do przechowywania już gotowych obrazów danych + możliwe aktualizacja w czasie rzeczywistym), ostatnia najniższa warstwa będzie hadoop hdfs do przechowywania rozproszonych plików i mapreduce do obliczeń na tych danych i przygotowywaniu obrazów dla bazy cassandra/elephant.

W jaki sposób mapreduce rozrzuci operacje obliczeń na odpowiednie node na których znajduje się dany zbiór danych do przeliczenia? chodzi mi o to żeby nie wykonał tego losowo i wtedy będzie konieczny transfer danych miedzy nodami tylko wrzucił te zadania na których są kopie tych danych. Druga sprawa to rozumiem że jeden zbiór do przeliczenia to jedno zadanie w klastrze inny zbiór do innego zadania (wtedy te 2 zadania mogą wykonywać się równocześnie na rożnych nodach i w końcowej fazie scalić wynik z obu) ale czy da się takie coś zrobić dla jednego zbioru (podzielić go na pół)?

Ostatni problem to jak zrobić klastrowo aplikacje serwerową w klastrze? (jetty) Aby odpowiednio przekierowywał połączenia do najmniej obleganego noda?