В чем разница между 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 на своем локальном компьютере.