Подтвердить что ты не робот

Какая связь между Спарком, Хадоопом и Кассандрой

Насколько я понимаю, Spark является альтернативой Hadoop. Однако при установке Spark на странице установки запрашивается существующая установка Hadoop. Я не могу найти ничего, что разъясняет эти отношения.

Во-вторых, Spark, по-видимому, имеет хорошую связь с Cassandra и Hive. Оба имеют интерфейс стиля sql. Тем не менее, Spark имеет свой собственный sql. Зачем использовать Cassandra/Hive вместо Spark native sql? Предполагая, что это совершенно новый проект без существующей установки?

4b9b3361

Ответ 1

Spark - это распределенный механизм обработки памяти. Он не должен быть сопряжен с Hadoop, но поскольку Hadoop является одним из самых популярных инструментов обработки больших объемов данных, Spark призван хорошо работать в этой среде. Например, Hadoop использует HDFS (распределенную файловую систему Hadoop) для хранения своих данных, поэтому Spark может считывать данные из HDFS и сохранять результаты в HDFS.

Для скорости Spark сохраняет свои наборы данных в памяти. Обычно он запускает работу, загружая данные из долговременного хранилища, такие как HDFS, Hbase, база данных Cassandra и т.д. После загрузки в память Spark может запускать множество преобразований в наборе данных для вычисления желаемого результата. Конечный результат обычно записывается обратно в хранилище длительного хранения.

С точки зрения того, что это альтернатива Hadoop, она может быть намного быстрее, чем Hadoop при определенных операциях. Например, операция сокращения многопроходной карты может быть значительно быстрее в Spark, чем при уменьшении карты Hadoop, поскольку большая часть дискового ввода-вывода Hadoop не используется. Spark может считывать данные, отформатированные для Apache Hive, поэтому Spark SQL может быть намного быстрее, чем использовать HQL (язык запросов на использование).

Cassandra имеет свой собственный язык запросов, называемый CQL (язык запросов Cassandra), но он является небольшим подмножеством полного SQL и довольно плох для таких вещей, как агрегирование и специальные запросы. Поэтому, когда Spark сопряжен с Cassandra, он предлагает более функциональный язык запросов и позволяет выполнять аналитику данных, которую не предоставляет собственный CQL.

Другой вариант использования Spark - для обработки потока. Spark может быть настроен на прием поступающих данных в реальном времени и обработку их в микропакетах, а затем сохранение результата в надежном хранилище, таком как HDFS, Cassandra и т.д.

Таким образом, искра действительно является автономной в системе памяти, которая может быть сопряжена со многими различными распределенными базами данных и файловыми системами для повышения производительности, более полной реализации SQL и функций, которым может не хватать такой обработки потока.

Ответ 2

Я пишу статью о Hadoop для университета. И наткнулся на ваш вопрос. Spark просто использует Hadoop для настойчивости и только если вы хотите его использовать. Можно использовать его с другими уровнями устойчивости, такими как Amazon EC2.

С другой стороны, искра запускается в памяти, и она не используется вначале для использования для уменьшения карты, например, Hadoop был /is.

Я могу порекомендовать эту статью, если вам нравится более подробное описание: https://www.xplenty.com/blog/2014/11/apache-spark-vs-hadoop-mapreduce/