czy można przetwarzać wartości z tym samym kluczemróżne reduktory? od wszystkich twórców map mam dane z tym samym kluczem i chcę je przetwarzać za pomocą różnych reduktorów? mylę się, że książka mówi, że wszystkie wartości z tym samym kluczem trafią do tego samego reduktora ...
mapper1(k1,v1),mapper2(k1,v2),mapper3(k1,v3) and so on...
nie chcę wszystkich danych do tego samego reduktora ... powinno być,
reducer1(k1,v1),reducer2(k1,v2)....
i powiedzmy, że reduktor1 produkuje sum1 i reduktor2 produkuje sum2 i chcę tego
sum=sum2+sum1
jak mam to zrobić?
Odpowiedzi:
4 dla odpowiedzi № 1Dane z tym samym kluczem zawsze trafiają do tego samego reduktora. Możesz jednak wybrać dowolny klucz, więc jeśli chcesz, aby przechodziły do różnych reduktorów, po prostu wybierz inne klucze.
Jeśli chcesz zrobić dodatkową kombinację na podstawiena wyjściu z reduktorów, musisz wykonać kolejne zadanie MapReduce, z wyjściem z pierwszego zadania jako danych wejściowych do następnego. To może stać się brzydkie szybko, więc możesz popatrzeć Kaskadowe, Świnia, lub Ul uprościć rzeczy.
2 dla odpowiedzi nr 2
Możesz napisać własny partycjoner, który zastąpi domyślną funkcję partycjonowania zadania Hadoop MR.
Więcej szczegółów tutaj: http://developer.yahoo.com/hadoop/tutorial/module5.html#partitioning