Может ли Apache Spark работать без HADOOP?


Ответы:


53

Spark может работать без Hadoop, но некоторые его функции зависят от кода Hadoop (например, обработка файлов Parquet). Мы бежим искру на Mesos и S3 , который был немного сложнее настроить , но работает очень хорошо , когда - то сделали (вы можете прочитать краткую информацию о том, что необходимо правильно установить его здесь ).

(Edit) Примечание: начиная с версии 2.3.0 Spark также добавил встроенную поддержку Kubernetes.


96

Spark - это механизм распределенных вычислений в памяти.

Hadoop - это платформа для распределенного хранения ( HDFS ) и распределенной обработки ( YARN ).

Spark может работать с компонентами Hadoop или без них (HDFS / YARN)


Распределенное хранилище:

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

S3 - Несрочные пакетные задания. S3 подходит для очень конкретных случаев использования, когда местоположение данных не критично.

Cassandra - идеально подходит для потокового анализа данных и избыточного количества для пакетных заданий.

HDFS - отлично подходит для пакетных заданий без ущерба для локальности данных.


Распределенная обработка:

Вы можете запускать Spark в трех разных режимах: автономный, YARN и Mesos.

Взгляните на приведенный ниже вопрос SE для подробного объяснения как распределенного хранения, так и распределенной обработки.

Какой тип кластера выбрать для Spark?


23

По умолчанию Spark не имеет механизма хранения.

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

Кроме того, если вы используете Tachyon, это повысит производительность с Hadoop. Для обработки искры apache настоятельно рекомендуется Hadoop . введите описание изображения здесь


6

Да, Spark может работать без хадупа. Все основные функции Spark продолжат работать, но вы упустите такие вещи, как простое распространение всех ваших файлов (кода и данных) на все узлы в кластере через hdfs и т. Д.


6

Согласно документации Spark, Spark может работать без Hadoop.

Вы можете запустить его в автономном режиме без какого-либо диспетчера ресурсов.

Но если вы хотите работать в многоузловой настройке , вам понадобится менеджер ресурсов, такой как YARN или Mesos, и распределенная файловая система, такая как HDFS, S3 и т. Д.


3

Да, вы можете установить Spark без Hadoop. Это будет немного сложно. Вы можете сослаться на ссылку arnon, чтобы использовать паркет для настройки на S3 в качестве хранилища данных. http://arnon.me/2015/08/spark-parquet-s3/

Spark выполняет только обработку и использует динамическую память для выполнения задачи, но для хранения данных вам нужна система хранения данных. Здесь hadoop играет роль со Spark, он обеспечивает хранилище для Spark. Еще одна причина использования Hadoop со Spark заключается в том, что они имеют открытый исходный код и оба могут легко интегрироваться друг с другом по сравнению с другими системами хранения данных. Для другого хранилища, такого как S3, вам должно быть сложно настроить его, как указано в ссылке выше.

Но у Hadoop также есть свой процессор под названием Mapreduce.

Хотите узнать разницу в обоих?

Проверьте эту статью: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

Думаю, эта статья поможет вам понять

  • что использовать,

  • когда использовать и

  • как использовать !!!


1

Да, конечно. Spark - это независимая вычислительная среда. Hadoop - это распределительная система хранения (HDFS) с вычислительной средой MapReduce. Spark может получать данные из HDFS, а также из любого другого источника данных, такого как традиционная база данных (JDBC), кафка или даже локальный диск.



0

Да, Spark может работать без Hadoop. Вы можете установить Spark на свой локальный компьютер без Hadoop. Но Spark lib поставляется с библиотеками pre Haddop, т.е. они используются при установке на ваш локальный компьютер.


-5

Нет. Для начала работы требуется полнофункциональная установка Hadoop - https://issues.apache.org/jira/browse/SPARK-10944


1
Это неверно, в текущих версиях он отлично работает без Hadoop.
Крис Чемберс

1
@ChrisChambers Не могли бы вы уточнить? В комментарии к этой проблеме говорится: «Фактически, Spark действительно требует классов Hadoop, несмотря ни на что», а на странице загрузок есть только варианты либо предварительно созданных для конкретной версии Hadoop, либо с предоставленным пользователем Hadoop. В документации говорится: «Spark использует клиентские библиотеки Hadoop для HDFS и YARN». и эта зависимость не кажется необязательной.
NikoNyrh

1
@NikoNyrh правильно. Я просто попытался выполнить артефакт загрузки «Пользовательский Hadoop» и сразу получил трассировку стека. Я также хочу, чтобы путь к классам Spark был отделен от основных классов Hadoop. Но для целей прототипирования и тестирования я не обращаю внимания на размер загружаемого файла (120 с лишним МБ) в целом. Ну что ж. Ура!
Jesús Zazueta

Рассматриваемая трассировка стека:$ ./spark-shell Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:118) at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefault at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more
Хесус Зазуэта,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.