Конечно, Apache Spark выглядит круто, но оправдывает ли он шумиху? Есть ли что-нибудь, что вы можете сделать с этим на самом деле? На самом деле, сейчас есть несколько довольно крутых вариантов использования.

Исследовательская аналитика
Одной из лучших особенностей современных языков программирования является то, что многие из них предлагают интерактивные оболочки, от Bash до Python и Scala. Вместо трудоемкого цикла написания/компиляции/тестирования/отладки вы можете сразу опробовать свои идеи в оболочке.

Spark берет эту идею и применяет ее к большим данным. Вы можете исследовать свои данные в интерактивном режиме с помощью Python или Scala, не дожидаясь пакетных запросов. Spark позволяет использовать любые данные, будь то структурированные, полуструктурированные или неструктурированные. Вы также можете использовать любую модель программирования: императивную, функциональную или объектно-ориентированную.

Ключом к этому является использование Spark устойчивых распределенных наборов данных или RDD. RDD хранятся в памяти, что намного быстрее, чем использование диска. Он может дополнительно использовать диски, если данных больше, чем может поместиться в памяти. Если вы думаете, что это приведет к снижению производительности при работе с большими данными, подумайте еще раз. Spark использует ленивую оценку, которая выполняет вычисления только тогда, когда вам нужен результат, например, печать значения. Вы можете настроить сложные запросы, а затем запустить их позже.

СДР неизменяемы, а это значит, что при изучении наборов данных нет риска. Функция происхождения позволяет восстанавливаться после ошибок с полной историей RDD. Это делает изучение больших наборов данных безопасным. Вы также можете подключить другие базы данных с помощью драйверов SQL.

Машинное обучение
Spark предлагает несколько мощных инструментов машинного обучения. Как и в случае исследовательской аналитики, вы можете использовать интерактивный REPL (распространенный акроним для интерактивной оболочки, означающий цикл запуска-оценки-печати) для разработки алгоритмов в режиме реального времени. Spark также кэширует часто используемые наборы данных для максимальной эффективности. Вы можете разработать собственные алгоритмы или использовать эффективные алгоритмы из MLlib.

Машинное обучение становится важным для обнаружения угроз. Клиент MapR Technologies — компания-эмитент кредитных карт, которая использует Spark для обнаружения потенциального мошенничества с кредитными картами. Другой клиент использует его для обнаружения возможных сетевых угроз.

Информационные панели в реальном времени
Большие данные бесполезны, если у вас нет возможности их увидеть. Apache Spark предлагает возможность запуска панелей мониторинга в реальном времени. Цель больших данных — просеять большие объемы данных, чтобы найти идеи, на основе которых люди в вашей организации могут действовать.

Хотя программист может использовать REPL, описанный ранее, для изучения данных, большинство людей не захотят изучать SQL, Scala, Python или Spark, чтобы отслеживать тенденции.

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

ETL
Благодаря способности быстро обрабатывать большие объемы данных Apache Spark идеально подходит для хранилищ данных. В то время как ваши базы данных могут быть структурированы, в реальном мире данные могут быть какими угодно, но только не структурированными. Возможно, вы ищете способ очистки и преобразования данных, поступающих из источников внутри и за пределами вашей организации. Apache Spark значительно упрощает задачу.

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

Spark позволяет вам использовать инструменты, с которыми вы уже знакомы. Вы также можете использовать SQL для выполнения ETL, упрощая кривую обучения для вас и администраторов при переносе ваших данных в Spark. Вы также можете портировать сценарии PIG в Spark, а также выполнять запросы HIVE.

Заключение
Благодаря быстрой обработке данных в памяти Apache Spark предлагает совершенно новый способ изучения ваших данных и действий с ними. Дистрибутив MapR для Spark предоставляет вам все необходимое для оптимального использования ваших данных прямо из коробки.

Для более подробного ознакомления со Spark прочитайте Начало работы со Spark: от начала до производства, бесплатную интерактивную электронную книгу Джеймса А. Скотта.

Первоначально опубликовано на www.smartdatacollective.com.