Niestandardowy program do zmniejszania Map na Ulu, jaka jest zasada? A co z wejściem i wyjściem?

Utknąłem na kilka dni, ponieważ chcę stworzyć własny program do zmniejszania map na podstawie mojego zapytania na Ulu, po googlowaniu znalazłem niewiele przykładów i nadal jestem zdezorientowany co do zasady.

Jaka jest zasada tworzenia własnego programu mapreduce, a może Klasa mapper i reducer?

Czy ktoś może podać jakieś rozwiązanie?

Chcę rozwijać ten program w Javie, ale nadal utknąłem ,a następnie podczas formatowania wyjścia w kolektorze, jak sformatować wynik w klasie mapera i reduktora?

Czy ktoś chce mi podać jakiś przykład i Wyjaśnienie na ten temat?

Author: FOX 9000, 2011-05-30

1 answers

Istnieją zasadniczo 2 sposoby dodawania niestandardowych maperów / reduktorów do zapytań hive.

  1. użycie transform

Wybierz TRANSFORM (stuff1, stuff2) z table1 używając 'script' jako thing1, thing2

Gdzie stuff1, stuff2 to pola w table1, a script to dowolny plik wykonywalny, który akceptuje format, który opiszę później. thing1, thing2 są wyjściami skryptu

  1. korzystanie z map i redukować
FROM (
    FROM table
    MAP table.f1 table.f2
    USING 'map_script'
    AS mp1, mp2
    CLUSTER BY mp1) map_output
  INSERT OVERWRITE TABLE someothertable
    REDUCE map_output.mp1, map_output.mp2
    USING 'reduce_script'
    AS reducef1, reducef2;

To jest nieco bardziej skomplikowane, ale daje większą kontrolę. Są 2 części. W pierwszej części skrypt mapera otrzyma dane z table i zmapuje je do pól mp1 i mp2. są one następnie przekazywane do reduce_script, skrypt ten otrzyma sortowane dane wyjściowe na kluczu, który określiliśmy w CLUSTER BY mp1. pamiętaj, że więcej niż jeden klucz będzie obsługiwany przez jeden reduktor. Wyjście skryptu reduce trafi do Tabeli someothertable

Teraz wszystkie te skrypty podążają za prostym wzorcem. będą czytać wiersz po wierszu od stdin. Pola będą oddzielone \t i będą odpisywać na stdout, w ten sam sposób (pola oddzielone '\t')

Zajrzyj na ten blog, jest kilka fajnych przykładów.

Http://dev.bizo.com/2009/07/custom-map-scripts-and-hive.html

Http://dev.bizo.com/2009/10/reduce-scripts-in-hive.html

 23
Author: Rohan Monga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-27 07:24:25