Buduję ulepszenie w ramach Spark (http://www.spark-project.org/). Spark to projekt z UC Berkeley, który szybko MapReduce w RAM. Spark jest zbudowany w Scali.Jaki byłby dobry wniosek o ulepszoną wersję MapReduce, która dzieli informacje między twórcami map?
Ulepszone przeze mnie ulepszenie pozwala na udostępnianie niektórych danych pomiędzy mapami podczas ich obliczania. Może to być przydatne, na przykład, jeśli każdy z twórców map poszukuje optymalnego rozwiązania i wszyscy chcą dzielić się bieżącym najlepszym rozwiązaniem (aby wcześnie usunąć błędne rozwiązania). Rozwiązanie może być nieco nieaktualne, ponieważ propaguje, ale powinno to jeszcze przyspieszyć rozwiązanie. Zasadniczo jest to nazywane podejściem rozgałęzionym.
Możemy dzielić monotonicznie rosnące liczby, ale także możemy dzielić tablice i słowniki.
Zajmujemy się także aplikacjami do uczenia maszynowego, w których twórcy map opisują lokalne informacje o naturalnym gradiencie, a następnie nowe najlepsze optymalne rozwiązanie jest udostępniane wszystkim węzłom.
Jakie są inne dobre zastosowania tego typu w świecie rzeczywistym? Jakie rodzaje rzeczywistych, użytecznych aplikacji mogą odnieść korzyści z mapy Zredukuj obliczenia dzięki odrobinie wymiany informacji między twórcami map. Jakie aplikacje obecnie używają MapReduce lub Hadoop, ale są nieco zbyt wolne ze względu na ograniczenie niezależności fazy mapy?
Korzyścią może być przyspieszenie fazy mapy lub poprawienie rozwiązania.
Używałem tego wcześniej zookeeperem. –
Istnieje najnowszy dokument badawczy o nazwie "Adaptive MapReduce using Situ-Aware Mappers" ([PDF] (http://www.edbt.org/Proceedings/2012-Berlin/papers/edbt/a45-vernica.pdf); [slajdy ] (https://www.ics.uci.edu/~rares/pub/edbt12-vernica-sides.pdf)), który opisuje system, w którym twórcy map mogą komunikować się ze sobą za pośrednictwem rozproszonego magazynu meta-danych (ZooKeeper). Służy do implementacji kilku adaptacyjnych optymalizacji środowiska wykonawczego. –