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

Apache Spark против Apache Ignite

В настоящее время я изучаю apache spark и apache ignite frameworks. Некоторые принципиальные различия между ними описаны в этой статье ignite vs spark Но я понял, что до сих пор не понимаю их целей. Я имею в виду, для каких проблем исправить более предпочтительный, чем воспламенение и наоборот?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Некоторые концептуальные отличия:

Spark не хранит данные, он загружает данные для обработки из других хранилищ, обычно на основе дисков, а затем отбрасывает данные, когда обработка завершена. С другой стороны, Ignite предоставляет распределенное хранилище ключей в памяти (распределенный кеш или сетку данных) с транзакциями ACID и возможностями SQL-запросов.

Искры для не транзакционных, только для чтения данных (RDD не поддерживают мутацию на месте), в то время как Ignite поддерживает как не транзакционные (OLAP) полезные нагрузки, так и полностью ACID-совместимые транзакции (OLTP)

Ignite полностью поддерживает чистую вычислительную полезную нагрузку (HPC/MPP), которая может быть "без данных". Искры основаны на RDD и работают только с полезными нагрузками, управляемыми данными.

Вывод:

Ignite и Spark являются как решениями для вычислений в памяти, но они нацелены на различные варианты использования.

Во многих случаях они используются вместе для достижения превосходных результатов:

Ignite может предоставлять разделяемое хранилище, поэтому состояние может передаваться от одного приложения Spark или задания к другому.

Ignite может обеспечить индексирование SQL, чтобы Spark SQL мог быть ускорен более чем 1000x (искра не индексирует данные)

При работе с файлами вместо RDD Apache Ignite In-Memory File System (IGFS) также может совместно использовать состояние между заданиями Spark и приложениями

Ответ 3

Хотя Apache Spark и Apache Ignite используют возможности вычислений в памяти, они адресуют различные варианты использования. Spark обрабатывает, но не сохраняет данные. Он загружает данные, обрабатывает их, а затем отбрасывает. С другой стороны, Ignite может использоваться для обработки данных, а также предоставляет распределенное хранилище ключей в памяти с транзакциями, совместимыми с ACID, и поддержкой SQL. Spark также предназначен для не транзакционных данных только для чтения, а Ignite поддерживает транзакции без транзакций и транзакций. Наконец, Apache Ignite также поддерживает чисто вычислительную полезную нагрузку для случаев использования HPC и MPP, в то время как Spark работает только с полезными нагрузками, управляемыми данными.

Искры и Ignite могут очень хорошо дополнять друг друга. Ignite может обеспечить разделяемое хранилище для Spark, поэтому состояние может быть передано из одного приложения Spark или задания в другое. Ignite также может использоваться для обеспечения распределенного SQL с индексированием, которое ускоряет Spark SQL до 1000x.

Никита Иванов: http://www.odbms.org/blog/2017/06/on-apache-ignite-apache-spark-and-mysql-interview-with-nikita-ivanov/

Ответ 4

Несмотря на то, что Apache Spark и Apache Ignite используют возможности вычислений в памяти, они затрагивают несколько разных вариантов использования и редко "конкурируют" за одну и ту же задачу. Некоторые концептуальные отличия:

Spark doesn’t store data, it loads data for processing from other storages, usually disk-based, and then discards the data when the processing is finished. Ignite, on the other hand, provides a distributed in-memory key-value store (distributed cache or data grid) with ACID transactions and SQL querying capabilities.
Spark is for non-transactional, read-only data (RDDs don’t support in-place mutation), while Ignite supports both non-transactional (OLAP) payloads as well as fully ACID compliant transactions (OLTP)
Ignite fully supports pure computational payloads (HPC/MPP) that can be "dataless". Spark is based on RDDs and works only on data-driven payloads.