2014-04-29 15 views
6

Próbuję dowiedzieć się, ile instancji MASTER, CORE, TASK jest optymalnych dla moich zadań. Nie mogłem znaleźć żadnego samouczka wyjaśniającego, jak to rozgryźć.Jak znaleźć odpowiednią porcję między typami instancji hadoopów?

  • Skąd mam wiedzieć, czy potrzebuję więcej niż 1 instancji głównej? Jakie są "symptomy", które widziałem w konsoli EMR w metrykach, które wskazywałyby na to, że potrzebuję więcej niż jednego rdzenia? Do tej pory, kiedy próbowałem tej samej pracy z 1 * core + 7 * instancjami zadań, działało to prawie jak na 8 * rdzeniu, ale nie ma to dla mnie większego sensu. Czy to możliwe, że moja praca jest tak bardzo związana z CPU, że IO jest tak niewielkie? (Mam zadanie tylko do map, które analizuje pliki dziennika Apache do pliku csv).

  • Czy jest coś, co może mieć więcej niż 1 instancję główną? Jeśli tak, kiedy to jest potrzebne? Zastanawiam się, ponieważ mój główny węzeł praktycznie tylko czeka, aż inne węzły wykonają zadanie (0% CPU) przez 95% czasu.

  • Czy urządzenie główne i węzeł główny mogą być identyczne? Mogę mieć klaster typu "master", gdy węzeł 1 i jedyny robi wszystko. Wygląda na to, że logicznie byłoby mieć klaster z 1 węzłem, który jest wzorcem i rdzeniem, a pozostałe są węzłami zadań, ale wydaje się, że nie można tego ustawić z EMR. Dlaczego?

Odpowiedz

1

Główna instancja działa jako menedżer i koordynuje wszystko, co dzieje się w całym klastrze. W związku z tym musi istnieć w każdym przepływie prac, ale tylko jedna instancja jest wszystkim, czego potrzebujesz. Jeśli nie wdrażasz klastra z jednym węzłem (w którym to przypadku instancja główna jest jedynym działającym węzłem), nie robi to żadnego dużego podnoszenia, jeśli chodzi o rzeczywistą MapReducing, więc instancja nie musi być wydajną maszyną.

Wymagana liczba podstawowych instancji zależy od zadania i szybkości jego przetwarzania, dlatego nie ma jednej poprawnej odpowiedzi. Dobrą rzeczą jest to, że można zmienić rozmiar grupy głównej/zadania, więc jeśli uważasz, że twoja praca działa powoli, możesz dodać więcej instancji do działającego procesu.

Jedną ważną różnicą między podstawowymi i zadaniowymi grupami instancji jest fakt, że podstawowe instancje przechowują rzeczywiste dane w HDFS, natomiast instancje zadań nie. Z kolei można zwiększyć tylko podstawową grupę instancji (ponieważ usunięcie uruchomionych wystąpień spowodowałoby utratę danych dotyczących tych instancji). Z drugiej strony można zarówno zwiększać, jak i zmniejszać grupę instancji zadań, dodając lub usuwając instancje zadań.

Tak więc te dwa typy instancji można wykorzystać do dostosowania mocy obliczeniowej pracy. Zwykle używa się instancji ondemand dla instancji podstawowych, ponieważ muszą one być cały czas uruchomione i nie mogą zostać utracone, a do instancji zadań są używane instancje dodatkowe, ponieważ utrata instancji zadań nie zabija całego zadania (np. Zadania nieukończone przez instancje zadań zostanie ponownie uruchomione na podstawowych instancjach). Jest to jeden ze sposobów wydajnego zarządzania dużym klastrem przy użyciu instancji typu spot.

Ogólny opis każdego typu instancji jest dostępna tutaj:

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/InstanceGroups.html

Również ten film może być przydatna do stosowania EMR skutecznie:

https://www.youtube.com/watch?v=a5D_bs7E3uc

+2

Wszystko to wiem.Ale skąd będę wiedzieć, czy 1 rdzeń wystarczy, a cały REST (niech będzie 8 lub 64 lub 200) może być zadaniem, lub musi być proporcja (oczywiście zależna od mojej pracy), że jeśli przejdę (dodaj zbyt wiele instancje zadań) spowolnią pracę, ponieważ nie ma "wystarczającej liczby" instancji rdzenia, a IO instancji rdzenia (że wszystkie instancje zadań będą używane, jeśli to rozumiem) staną się wąskim gardłem. – Gavriel

+0

Och, widzę. To interesujące pytanie, ale obawiam się, że nigdy tego nie eksperymentowałem. Nie sądzę, abym kiedykolwiek widział, że moje zadania są mniej wydajne, dodając więcej węzłów zadań, ale to może być tylko moja praca. Możesz sam to sprawdzić, monitorując swoją pracę w konsoli EMR i zmieniając podstawowe grupy/zadania na długo działającą pracę. –

+2

Tak, ale moje pytanie brzmi dokładnie tak: jakie środki w konsoli EMR są odpowiednie dla tego? Obecnie jedyną rzeczą, którą robiłem, było uruchamianie tej samej pracy w różnych konfiguracjach i mierzenie czasu, jaki zajęło, ale nie jest to zbyt dokładne. – Gavriel

Powiązane problemy