Czy w Hadoop MapReduce można mieć wiele wejść z wieloma różnymi mapami? Każda klasa mapperów działa na innym zestawie wejść, ale wszystkie one emitują pary klucz-wartość zużywane przez ten sam reduktor. Zauważ, że nie mówię tutaj o łańcuchowaniu mapperów, mówię o równoległym uruchamianiu różnych twórców map, a nie sekwencyjnie.Czy w Hadoop MapReduce można mieć wiele wejść z wieloma różnymi mapami?
Odpowiedz
Nazywa się to złączeniem.
Chcesz użyć mapperów i reduktorów w pakietach. * (Starszych, ale wciąż obsługiwanych). Nowsze pakiety (mapreduce. *) Dopuszczają tylko jedno wejście mapera. Z mapred pakietów, należy użyć klasy MultipleInputs zdefiniowanie sprzężenia:
MultipleInputs.addInputPath(jobConf,
new Path(countsSource),
SequenceFileInputFormat.class,
CountMapper.class);
MultipleInputs.addInputPath(jobConf,
new Path(dictionarySource),
SomeOtherInputFormat.class,
TranslateMapper.class);
jobConf.setJarByClass(ReportJob.class);
jobConf.setReducerClass(WriteTextReducer.class);
jobConf.setMapOutputKeyClass(Text.class);
jobConf.setMapOutputValueClass(WordInfo.class);
jobConf.setOutputKeyClass(Text.class);
jobConf.setOutputValueClass(Text.class);
będę odpowiedzieć na pytanie z pytaniem, 2 odpowiedzi, i anty-zalecenia.
Pytanie brzmi: jakie korzyści można zaobserwować w równoległym uruchomieniu heterogenicznych zadań mapowych, a nie w seryjnym uruchomieniu, dostarczając jednorodne wyniki, które można odpowiednio przetasować? Czy chodzi o to, aby uniknąć dwukrotnego przechodzenia przez te same rekordy, raz z mapą tożsamości?
Pierwszą odpowiedzią jest zaplanowanie jednoczesnego wykonywania zadań tylko odwzorowujących, z których każda ma połowę swojej floty (lub jakikolwiek stosunek najlepiej odpowiada rozmiarowi danych wejściowych), wysyłając jednolite wyniki, a następnie zadanie redukujące, które wykonuje połączenie.
Drugą odpowiedzią jest stworzenie niestandardowego InputFormat, który jest w stanie rozpoznać i przekształcić oba smaki heterogenicznego wejścia. Jest to wyjątkowo brzydkie, ale pozwoli ci uniknąć niepotrzebnej mapy tożsamości pierwszej sugestii.
anty-zalecenie jest nie używać nieaktualnych API Hadoop z odpowiedzią Chrisa. Hadoop jest bardzo młody, ale API stabilizują się wokół "nowego" smaku. W końcu dojdziesz do wersji lock-in.
Powód uruchomienia wielu maperów polega na tym, że możesz zaimplementuj operację spłaszczania podaną w dokumencie FlumeJava. Dane wyjściowe różnych twórców map mogą brać udział w tej samej operacji losowej. – tibbe
- 1. Hadoop - jak używać i zmniejszać wiele wejść?
- 2. subplots z różnymi mapami kolorów matlab
- 3. Wiele wejść w Bootbox
- 4. Hadoop MapReduce: Kierowca łańcuchowym mappers w pracy MapReduce
- 5. Czy w routerze można mieć wiele loadChildrens?
- 6. Łańcuchowanie Hadoop MapReduce z potokami (C++)
- 7. Hadoop MapReduce plików Multiple Input
- 8. Nie można znaleźć lub wczytać głównej klasy com.sun.tools.javac.Main hadoop mapreduce
- 9. Chaining Wielu Redukcje w pracy Hadoop MapReduce
- 10. Nie można uruchomić zadania MapReduce na hadoop 2.4.0
- 11. Jak debugować hadoop mapreduce zadania od Eclipse?
- 12. Znajdowanie połączonych komponentów przy użyciu Hadoop/MapReduce
- 13. Rozproszony algorytm współczynnika lokalnego skupiania (MapReduce/Hadoop)
- 14. Hadoop: Jak działa OutputCollector podczas MapReduce?
- 15. Uzyskaj liczbę wejść i wyjść MapReduce w Javie
- 16. Czy mogę mieć wiele metod POST w interfejsie Web API z różnymi złożonymi typami parametrów?
- 17. Czy można wybrać tableless z wieloma wierszami?
- 18. prawidłowo odkażać wiele wejść użytkownika z mysqli
- 19. MapReduce alternatives
- 20. Metody instalacji i czyszczenia Mappera/Reducera w Hadoop MapReduce
- 21. Hadoop wiele wyjść z wykonywaniem spekulacji
- 22. Dopuszczaj własności modułów klasy VBA - czy można mieć wiele argumentów?
- 23. Jak zezwolić wiele wejść, gdy wiele przycisków wybiera
- 24. Czy można mieć indeksowany widok w MySQL?
- 25. Jak usunąć wiele wierszy z różnymi identyfikatorami?
- 26. Hadoop MapReduce: Możliwe zdefiniowanie dwóch maperów i reduktorów w jednej klasie zadań hadoop?
- 27. Czy zadanie może mieć wiele osób oczekujących?
- 28. W praktyce, ile maszyn potrzeba, aby Hadoop/MapReduce/Mahout przyspieszyło obliczenia, które można zrównoleglić?
- 29. Wyszukaj i zamień wiele wartości z wieloma/różnymi wartościami w PHP5?
- 30. Hadoop MapReduce zapewnić zagnieżdżonych katalogów jako wkład pracy
Nowsze apis ('mapreduce' not' mapred') mają' MultipleInputs': http://hadoop.apache.org/common/docs/r1.0.3/api/org/apache/hadoop/mapreduce/lib /input/MultipleInputs.html –
@Donald Miner: Absolutnie w porządku. –
@DonaldMiner Niektóre wersje, ale wydaje się, że co najmniej 0.20.x nie, np. zwróć uwagę na brak opcji MultipleInputs tutaj: http://hadoop.apache.org/docs/r0.20.205.0/api/org/apache/hadoop/mapreduce/lib/input/ – kabuko