2013-01-12 9 views
7

Jestem zupełnie nowy w Hadoop i mam obecnie przeznaczono projekt naCo to jest średnia, wdrażając zaawansowane ramy kontroli pracy, aby pomóc w łańcuchu wielu Map-Reduce zadań?

„Wdrożenie zaawansowanych ram kontroli zadanie pomóc łańcuchowe wielu Map-Reduce pracy tj zbadania/poprawić na istniejących org.apache.hadoop.mapred Pakiet .jobcontrol. "

Ten projekt znajduje się na liście na stronie projektu Sugestia pod Losowe Pomysły na http://wiki.apache.org/hadoop/ProjectSuggestions#research_projects

Mój błąd jest, muszę zbudować zaliczkę wersję Oozie (co moim zdaniem jest system kontroli pracy do łańcucha wielu miejsc pracy) lub coś podobnego do tego lub oznacza to coś zupełnie innego.

Czego mi brakuje?

+0

Nie jestem pewien. Ale spójrz na iteracyjną mapę, stratosferę i mezaki. Wygląda to jak połączenie tych. – debarshi

Odpowiedz

5

Wygląda na to, że projekt, do którego się odnosisz, może być powiązany z this Jira ticket.

W tej chwili JobControl class jest dość pusty i brakuje mu wielu funkcji, które mogłyby ułatwić życie użytkownika. Na przykład:

  • zdolność do uzyskania powiadomienia, gdy zadanie zmienia stan: teraz po prostu zadzwonić JobControl.run i to wszystko, ale w praktyce może to być interesujące, jeśli mogę otrzymywać powiadomienia, gdy coś się zmienia w mojej pracy.
  • Ponownie prześlij zadania zakończone niepowodzeniem: możesz zaimplementować opcję ponownego przesłania zadania, gdy/jeśli się nie powiedzie, na przykład możesz mieć maksymalną liczbę parametrów ponownej próby w klasie ControlledJob i ponowić próbę do tego momentu przed wysłaniem powiadomienia, że nie powiodło się.
  • Wiele zadań jest uruchamianych regularnie, tygodniowo, codziennie, co godzinę, ... Zazwyczaj robi się to za pośrednictwem crontaba, więc może być interesujące umieszczenie tej funkcji w Hadoop, na przykład użytkownicy mogą ustawić powtarzająca się praca poprzez określenie okresu, a JobControl uruchomiłby go w regularnych odstępach czasu.
  • Może mieć interfejs użytkownika do wizualizacji przepływu pracy i zależności między poszczególnymi zadaniami, które kroki zostały już zakończone, a które nie.
  • To może być interesujące mieć możliwość nie tylko uruchamiania Map/Reduce jobs, ale także Hive, Pig na przykład, więc możesz zapewnić ogólny interfejs dla użytkowników, aby mogli przesłać dowolną pracę i monitorować je płynnie.

Ostatecznie nie wydaje mi się, że trzeba wymyślić zupełnie nowe ramy, klasa JobControl już zapewnia dobry punkt wyjścia. Staraj się myśleć z punktu widzenia użytkownika, co możesz zrobić, aby ułatwić i skrócić czas składania i zarządzania zadaniami. Pomysły tutaj i w bilecie są tylko przykładem, możesz przyłączyć się do własnych pomysłów.

Jeśli chodzi o numer Oozie, zapewnia on wyższą abstrakcję do kontrolowania przepływu pracy, ale jest także bardziej skomplikowany w konfiguracji i powinien być zarezerwowany dla bardziej złożonych zadań. Wiem na pewno, że niektórzy ludzie wahają się używać Oozie, ponieważ dodaje ona dodatkowe informacje do twoich aplikacji. Duża różnica polega również na tym, że Oozie jest serwerem, a JobControl działa na komputerze klienta, co stanowi dodatkowy narzut.Podczas gdy niektóre z wyżej wymienionych funkcji są obecne w Oozie w taki czy inny sposób, możliwość zachowania prostoty i działania na komputerze klienta bez potrzeby wykonywania dodatkowej pracy, takiej jak Oozie jest moim zdaniem kluczem do twojego projektu.

+0

Dziękuję za odpowiedź charles, zgadzam się z tobą, ale jedyna wątpliwość, którą mam, to - jak się różni od Oozie. Wydaje mi się, że wszystko, o czym wspomniałeś, jest już obecne w frameworku Oozie? – Ananda

+0

@bril Dodałem więcej szczegółów, krótko mówiąc, niektóre funkcje są obecne w Oozie, ale Oozie to inne zwierzę, które jest znacznie bardziej złożone i działa jako serwer, na przykład nie używam Oozie, ponieważ dodaje on zbyt wiele napowietrznych i tak mam narzędzia, które pomagają mi zarządzać tymi rzeczami na moim komputerze klienckim - to, co moim zdaniem powinieneś spróbować zrobić w ramach twojego projektu przez rozszerzenie już istniejących klas. –

+0

W takim przypadku Hamake http://code.google.com/p/hamake/wiki/HamakeComparisonWithOtherWorkflowEngines jest lepszą alternatywą, która działa po stronie klienta jako narzędzie i podąża za modelem przepływu danych i wykonuje prawie wszystkie wymagane prace. Ponownie pojawia się błąd w mojej pracy. – Ananda