Czytałem dużo o Hadoop i Map-Reduce na klastrach maszyn. Czy ktoś wie, czy dystrybucja Apache może być uruchomiona na SMP z kilkoma rdzeniami? W szczególności, czy wiele procesów Map-Reduce może być uruchomionych na tym samym komputerze. Harmonogram zajmie się rozkładaniem ich na wiele rdzeni. Dzięki. - KGHadoop i map-reduce na maszynach wielordzeniowych
Odpowiedz
Tak. Masz wiele map i zmniejszenie szczeliny w każdej maszynie, które są określane przez RAM i CPU (każde wystąpienie JVM potrzebuje 1GB domyślnie więc maszyna 8GB z 16 rdzeni powinna nadal mieć 7 slotów zadania)
od hadoop wiki
Skorzystaj z pokrętła konfiguracji: mapred.tasktracker.map.tasks.maximum i mapred.tasktracker.reduce.tasks.maximum, aby kontrolować liczbę map/zmniejszonych narosłych jednocześnie na TaskTracker. Domyślnie jest ustawiona na 2, a więc jedna widzi maksymalnie 2 mapy i 2 zmniejsza się w danej instancji na TaskTracker.
Można ustawić te na zasadzie per-tasktracker dokładnie odzwierciedlać sprzętu (czyli ustawić tych wyższych numerach. Na beefier tasktracker itd.).
Możesz używać tych lekkich frameworków MapReduce dla komputerów wielordzeniowych.
Na przykład
LeoTask: Lekki, wydajny i niezawodny ramy mapreduce dla wielordzeniowych komputerów
Dla Apache Hadoop 2.7.3, moje doświadczenie jest takie, że umożliwienie YARN umożliwi również wsparcie wielordzeniowe. Oto prosty przewodnik dla umożliwienia YARN na jednym węźle:
Domyślna konfiguracja wydaje się całkiem dobrze. Jeśli chcesz dostroić swoje podstawowe użycie, może zajmij się ustawieniem "yarn.scheduler.minimum-allocation-vcores" i "yarn.scheduler.maximum-allocation-vcores" w witrynie przędzy.xml (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml)
Zobacz też tutaj, aby dowiedzieć się, jak skonfigurować prostą piaskownicę Hadoop z obsługą wielordzeniową: https://bitbucket.org/aperezrathke/hadoop-aee