2015-04-18 2 views
8

Я читал об искры, и я узнал, что искра написана в scala. Поскольку scala - это функциональный язык, например erlang, он может использовать многоядерные ядра. Это верно?Может ли SPARK правильно использовать многоядерное устройство?

Мне интересно, могу ли я использовать искру в распределенной системе с многоядерными процессорами. Может ли одна задача использовать все ядра одновременно? Я читал, что YARN назначит разные ядра для каждой задачи, но в этом случае это единственная задача.

И, этого достаточно, чтобы использовать многопоточное программирование в JAVA (hadoop) для использования всех ядер в каждом компьютер? Поскольку linux-планировщик основан на потоках?

ответ

-1

Нет, нить может работать только на одном ядре. Вам придется использовать несколько потоков или процессов для одновременного использования нескольких ядер. Помните, что не все задачи могут запускать asynchron в нескольких потоках.

+0

я имею в виду, лестница является функциональным языком, который легко разделяется на ядрах. –

+1

Я думаю, что, возможно, этот ответ читает «задание», означающее «нить»? Задача, для исполнителя, использующего несколько ядер, отличается от права «нить»? Но я бы согласился/сказал, что вопрос расплывчато, когда он говорит «использовать многопоточное программирование», возможно, поэтому SO хочет примеры кода :) – JimLohse

7

Да, это может, поскольку это его заявленная цель - разделить и распараллелить то, что распараллеливается. Вы даже можете указать объем памяти, который будет использоваться каждым исполнителем.

Однако некоторые задачи не могут быть распараллелены, поэтому иногда Spark занимает только одно ядро.

Если вы используете Спарк оболочку, убедитесь, что вы установили количество ядер для использования, как это сказано в ответ на этот вопрос Why is Spark not using all cores on local machine

Источник: официальный Спарки DOCS https://spark.apache.org/docs/latest/configuration.html

+0

Спасибо. Что делать, если я использую много рабов, есть много ядер? –

+0

@ Hanjunkoo вы можете иметь любое количество ведомых с любым количеством ядер, как автономные, так и YARN-развертывания будут поддерживать многоядерное выполнение (конечно, параллельных задач *), –

Смежные вопросы