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

Spark Standalone:

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

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

Искра Местных Режим:

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

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

1 ответов


вы путаетесь с пряжей и Искрой Hadoop.

YARN-это перезапись программного обеспечения, которая отделяет ресурс MapReduce возможности управления и планирования на основе обработки данных компонент, позволяющий Hadoop поддерживать более разнообразную обработку подходы и более широкий спектр приложений.

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

вкратце пряжа "Pluggable Data Parallel framework".

Apache Spark

Apache spark-это пакетная интерактивная потоковая платформа. Spark имеет "pluggable persistent store". Spark может работать с любым уровнем персистентности.

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

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

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