2016-10-13 3 views
2

Спарк Standalone: ​​В чем разница между Spark Standalone, YARN и локальным режимом?

В этом режиме я понял, что вы запустите мастер и рабочие узлы на локальном компьютере.

Означает ли это, что у вас есть экземпляр YARN на моей локальной машине? С тех пор, как я установил Spark, он пришел с Hadoop, и, как правило, YARN также поставляется с Hadoop, а также правильно? И в этом режиме я могу по существу имитировать меньшую версию полномасштабного кластера.

Спарк Локальный режим:

Это часть я также путать с. Чтобы запустить его в этом режиме, я делаю val conf = new SparkConf().setMaster("local[2]").

В этом режиме он не использует какой-либо тип диспетчера ресурсов (например, YARN) правильно? Например, просто запускает Spark Job в количестве потоков, которые вы предоставляете "local[2]"\?

ответ

4

Вы получаете путаницу с Hadoop YARN и Spark.

ПРЯЖА представляет собой программное обеспечение, переписывает, что разъединяет ресурс управления и планирование возможностей MapReduce от компонента обработки данных , что позволяет Hadoop поддерживать более разнообразную обработку подходов и более широкий спектр приложений.

С введением YARN Hadoop открыл для запуска другие приложения на платформе.

Вкратце YARN является «Подключаемые параллельные рамки данных».

Apache Спарк

Апач искра является Пакетной интерактивной потоковой рамкой. Spark имеет «подключаемый постоянный магазин». Spark может работать с любым уровнем сохранения.

Для запуска искры требуются ресурсы. В автономном режиме вы запускаете рабочих, а мастер искробезопасности и уровень персистентности может быть любым - HDFS, FileSystem, cassandra и т. Д. В режиме YARN вы запрашиваете кластер YARN-Hadoop для управления распределением ресурсов и ведением бухгалтерского учета.

Когда вы используете master как local[2], вы запрашиваете Spark для использования 2-х ядро ​​и запускаете драйвер и рабочих в одной и той же JVM. В локальном режиме все задачи, связанные с искрой, выполняются в одной JVM.

Таким образом, единственное различие между автономным и локальным режимами заключается в том, что в автономном режиме вы определяете «контейнеры» для рабочего и искрового мастера для запуска на вашем компьютере (так что вы можете иметь 2 рабочих и ваши задачи могут быть распределены в JVM из этих двух рабочих?), но в локальном режиме вы просто запускаете все в одной JVM на своей локальной машине.

+0

Кроме того, если я отправлю свое задание Spark в кластер YARN (используя исходный текст на моем локальном компьютере), как объект SparkContext знает, к чему должен подключаться кластер Hadoop? – CapturedTree

+0

CurrentIy, я использую Spark-submit и указываю '--deploy-mode' как' cluster'.Но как SparkContext знает, где кластер Hadoop должен запускать искровые приложения на узлах данных HDFS? Есть ли какая-то конфигурация Spark, которая указывает, где находится кластер Hadoop, и всякий раз, когда вы создаете экземпляр SparkContext, он знает, где находится кластер из-за этого файла конфигурации? – CapturedTree

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