Чи може Apache Spark працювати без hadoop?


Відповіді:


53

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

(Редагувати) Примітка: з версії 2.3.0 Spark також додала вбудовану підтримку Kubernetes


94

Spark - це розподілений обчислювальний механізм в пам'яті.

Hadoop - це структура для розподіленого зберігання ( HDFS ) та розподіленої обробки ( YARN ).

Spark може працювати з компонентами Hadoop або без них (HDFS / YARN)


Розподілене сховище:

Оскільки Spark не має власної розподіленої системи зберігання, для розподілених обчислень вона повинна залежати від однієї з цих систем зберігання.

S3 - нетермінові пакетні завдання. S3 підходить для дуже конкретних випадків використання, коли локалізація даних не є критичною.

Кассандра - ідеально підходить для потокового аналізу даних та надмірного рівня для пакетних робіт.

HDFS - чудово підходить для пакетних робіт без шкоди для локалізації даних.


Розподілена обробка:

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

Подивіться на нижченаведене запитання про SE для детального пояснення як розподіленого сховища, так і розподіленої обробки.

Який тип кластера вибрати для Spark?


23

За замовчуванням Spark не має механізму зберігання.

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

Крім того, якщо ви використовуєте Tachyon, це підвищить продуктивність за допомогою Hadoop. Настійно рекомендується Hadoop для обробки іскр apache . введіть тут опис зображення


6

Так, іскра може працювати без hadoop. Всі основні функції іскри продовжуватимуть працювати, але ви пропустите такі речі, як легке розповсюдження всіх ваших файлів (коду, а також даних) між усіма вузлами кластера за допомогою 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), kafka або навіть локальний диск.



0

Так, іскра може працювати без Hadoop. Ви можете встановити іскру в локальну машину без використання Hadoop. Але Spark lib постачається з попередньою бібліотекою Haddop, тобто використовується під час встановлення на локальній машині.


-4

Ні. Для початку роботи потрібна повномасштабна інсталяція 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
Jesús Zazueta
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.