2015-04-30 12 views
16

Bez względu na to, ile ja majstrować przy ustawieniach w yarn-site.xml czyli przy wszystkich poniższych opcjiApache Hadoop Yarn - niewykorzystania rdzeni

yarn.scheduler.minimum-allocation-vcores 
yarn.nodemanager.resource.memory-mb 
yarn.nodemanager.resource.cpu-vcores 
yarn.scheduler.maximum-allocation-mb 
yarn.scheduler.maximum-allocation-vcores 

ja po prostu wciąż nie mogę dostać mój czyli aplikacja Spark wykorzystać wszystkie rdzenie na klaster. Wydaje się, że executory iskier poprawnie pobierają całą dostępną pamięć, ale każdy executor po prostu bierze jeden rdzeń i nic więcej.

Oto opcje skonfigurowane w spark-defaults.conf

spark.executor.cores     3 
spark.executor.memory     5100m 
spark.yarn.executor.memoryOverhead  800 
spark.driver.memory      2g 
spark.yarn.driver.memoryOverhead  400 
spark.executor.instances    28 
spark.reducer.maxMbInFlight    120 
spark.shuffle.file.buffer.kb   200 

Uwaga, spark.executor.cores jest ustawiony na 3, ale to nie działa. Jak to naprawić?

Odpowiedz

31

Problem leży nie w yarn-site.xml lub spark-defaults.conf, ale w rzeczywistości w kalkulatorze zasobów, który przypisuje rdzenie do executorów lub w przypadku zadań MapReduce, do modułów mapujących/redukujących.

Domyślny kalkulator zasobów, tj. org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator, wykorzystuje tylko informacje o pamięci do przydzielania kontenerów, a harmonogramowanie procesora nie jest domyślnie włączone. Aby użyć zarówno pamięci, jak i procesora, należy zmienić kalkulator zasobów na org.apache.hadoop.yarn.util.resource.DominantResourceCalculator w pliku .

Oto, co należy zmienić.

<property> 
    <name>yarn.scheduler.capacity.resource-calculator</name> 
    <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value> 
</property> 
+3

wow, zapytał 24 min temu i odpowiedział 24 minut temu przez tę samą osobę. – banjara

+10

cóż, stackoverflow zachęca do dzielenia się swoją wiedzą, więc robienie tego właśnie :) – Nerrve

+0

Dobra robota - właśnie przeszedłem wiele kłopotów ze znalezieniem dokładnie tego samego, w tym zgłoszenia błędu z przędzą (to nie jest błąd). Po prostu chciałbym to znaleźć wcześniej. Zobacz [oficjalna dokumentacja Hadoop] (https://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html). Ostrożnie podczas wklejania kopii odkryłem również, że oryginalna dokumentacja źle wypisała 'Resource' jako' Resourse' w konfiguracji (s vs c). – YoYo

Powiązane problemy