2015-11-09 2 views
0

enter image description hereHadoop ПРЯЖА Cluster Performance Tuning

Я хотел бы знать несколько параметров, чтобы ускорить работу Spark, на моей ПРЯЖЕ кластере.

У меня есть следующие конфигурации Spark/YARN на месте, но я не доволен скоростью выполнения. У меня много неиспользуемых ресурсов и памяти.

Свечи конфиги:

- spark.yarn.am.cores = 2 
- spark.executor.memory = 5g 
- spark.executor.cores = 8 

ПРЯЖИ конфиги:

- yarn.nodemanager.resource.memory-mb = 31744 
- yarn.nodemanager.resource.cpu-vcores = 15 
- yarn.scheduler.maximum-allocation-mb = 31744 

Из образа,

  1. на узле 3 & 5, почему использование 6GB из 2gb.
  2. памяти на узле 1,2,4,5,6 не используются на всех

Moreso, я хочу, чтобы иметь возможность раскрутить несколько контейнеров на каждом узле кластера.

Помогите оценить очень.

+2

Ваше текущее приложение прося только 3 контейнера от YARN. Попытайтесь увеличить количество исполнителей искры с использованием --num-исполнителей 3, также может быть полезно настроить память исполнителей и ядра. Помните о том, что следующие шаги должны увеличить использование ресурсов, но вам нужно понять, как Spark работает для настройки производительности вашего приложения. –

ответ

1

Добавление этой искры конф, сделал трюк:

spark.executor.instances = 6 

enter image description here

0

Чтобы улучшить Spark, Работа на нити, вы можете использовать следующие аргументы:

spark.executor.instances : он создает несколько исполнителей (фактически JVM), чтобы улучшить выполнение, например, drecute.

spark.executor.instances = 6 

spark.executor.cores: Кроме того, искра многопоточный-совместимый. Это означает, что для каждого исполнителя, который вы определили, искра может обрабатывать несколько действий одновременно над этим исполнителем. Вам использовать:

spark.executor.cores = $int 

кэширования в памяти: Наконец, можно кэшировать данные в памяти, чтобы улучшить выполняемые. Используя это, вы можете ожидать время задержки деления между 5 и 20 раз. Чтобы использовать этот режим, обратитесь к следующим аргументам:

spark.driver.memory 
spark.executor.memory 
spark.driver.memory 
spark.yarn.memoryOverhead 
spark.yarn.driver.memoryOverhead 

Вот учебник от Cloudera, который объясняет, как настроить искру рабочих мест и как кэшировать данные в памяти:

http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/