Роль Apache Spark в больших данных и что его отличает
Опубликовано: 2018-05-30Apache Spark стал гораздо более доступной и привлекательной заменой Hadoop, изначально выбранному для управления большими данными. Apache Spark, как и другие сложные инструменты для работы с большими данными, является чрезвычайно мощным и хорошо оборудованным для эффективной работы с огромными наборами данных.
В этом сообщении блога мы поможем вам прояснить тонкости Apache Spark.
Оглавление
Что такое Apache Spark?
Проще говоря, Spark — это средство обработки данных общего назначения и механизм обработки, пригодный для использования в различных обстоятельствах. Исследователи данных используют Apache Spark для улучшения своих запросов, анализа и преобразования данных. Задачи, наиболее часто выполняемые с помощью Spark, включают интерактивные запросы к большим наборам данных, анализ и обработку потоковых данных с датчиков и других источников, а также задачи машинного обучения.
Spark был представлен еще в 2009 году в Калифорнийском университете в Беркли. Он попал в инкубатор Apache Software Foundation еще в 2014 году, а в 2014 году был повышен до одного из проектов самого высокого уровня Фонда. В настоящее время Spark является одним из самых рейтинговых проектов фонда. Сообщество, выросшее вокруг проекта, включает в себя как плодовитых индивидуальных участников, так и хорошо финансируемых корпоративных спонсоров.
С момента его создания было обеспечено, чтобы большинство задач выполнялись в памяти. Поэтому он всегда должен был быть быстрее и гораздо более оптимизированным, чем другие подходы, такие как MapReduce от Hadoop, который записывает данные на жесткие диски и с них между каждым этапом обработки. Утверждается, что возможности Spark в памяти дают ему 100-кратную скорость, чем MapReduce от Hadoop. Это сравнение, хотя и верное, несправедливо. Потому что Spark был разработан с учетом скорости, тогда как Hadoop был идеально разработан для пакетной обработки (которая не требует такой высокой скорости, как потоковая обработка).
Все, что вам нужно знать об Apache StormЧто делает искра?
Spark способен обрабатывать петабайты данных за раз. Эти данные распределяются по кластеру из тысяч взаимодействующих серверов — физических или виртуальных. Apache spark поставляется с обширным набором библиотек и API, которые поддерживают все широко используемые языки, такие как Python, R и Scala. Spark часто используется с HDFS (распределенная файловая система Hadoop — система хранения данных Hadoop), но может быть одинаково хорошо интегрирована с другими системами хранения данных.
Вот некоторые типичные варианты использования Apache Spark:
- Потоковая передача и обработка Spark. Сегодня управление «потоками» данных является сложной задачей для любого специалиста по данным. Эти данные поступают стабильно, часто из нескольких источников и одновременно. Хотя одним из способов может быть хранение этих данных на дисках и их ретроспективный анализ, это обойдется бизнесу в убыток. Потоки финансовых данных, например, могут обрабатываться в режиме реального времени для выявления и отклонения потенциально мошеннических транзакций. Apache Spark помогает именно в этом.
- Машинное обучение: с увеличением объема данных подходы машинного обучения также становятся гораздо более реалистичными и точными. Сегодня программное обеспечение можно научить определять триггеры и реагировать на них, а затем применять те же решения к новым и неизвестным данным. Выдающаяся функция Apache Spark по хранению данных в памяти помогает быстрее выполнять запросы и, таким образом, делает его отличным выбором для обучения алгоритмов машинного обучения.
- Интерактивная потоковая аналитика: бизнес-аналитики и специалисты по данным хотят исследовать свои данные, задавая вопросы. Они больше не хотят работать с предопределенными запросами для создания статических информационных панелей продаж, производительности производственной линии или цен на акции. Этот интерактивный процесс запросов требует таких систем, как Spark, способных быстро реагировать.
- Интеграция данных. Данные создаются из различных источников и редко бывают точными. Процессы ETL (извлечение, преобразование, загрузка) часто выполняются для извлечения данных из разных систем, их очистки, стандартизации и последующего сохранения в отдельной системе для анализа. Spark все чаще используется для снижения затрат и времени, необходимого для этого.
Компании, использующие Apache Spark
Широкий круг организаций быстро поддержали и присоединились к Apache Spark. Они поняли, что Spark обеспечивает реальную ценность, такую как интерактивные запросы и машинное обучение.
Известные компании, такие как IBM и Huawei, уже вложили довольно значительные суммы в эту технологию, и многие растущие стартапы создают свои продукты в Spark и вокруг него. Например, команда Беркли, ответственная за создание Spark, основала Databricks в 2013 году. Databricks предоставляет размещенную сквозную платформу данных на базе Spark.


Все основные поставщики Hadoop начинают поддерживать Spark наряду со своими существующими продуктами. Интернет-ориентированные организации, такие как Baidu, оператор электронной коммерции Alibaba Taobao и компания социальных сетей Tencent, используют Spark для операций в масштабе. Чтобы дать вам некоторое представление о возможностях Apache Spark, у Tencent есть 800 миллионов активных пользователей, которые генерируют более 800 ТБ данных в день для обработки.

Помимо этих веб-гигантов, фармацевтические компании, такие как Novartis, также зависят от Spark. Используя Spark Streaming, они сократили время, необходимое для передачи данных моделирования исследователям.
Руководство автостопщика по MapReduceЧто отличает Spark?
Давайте рассмотрим основные причины, по которым Apache Spark быстро стал фаворитом специалистов по данным:
- Гибкость и доступность: Имея такой богатый набор API, Spark обеспечил невероятную доступность всех своих возможностей. Все эти API предназначены для быстрого и эффективного взаимодействия с масштабируемыми данными, что делает Apache Spark чрезвычайно гибким. Для этих API существует подробная документация, написанная необычайно ясным и простым языком.
- Скорость. Скорость — это то, для чего разработан Spark. Как в памяти, так и на диске. Команда Databricks использовала Spark для тестирования 100 ТБ. Эта задача включает в себя обработку огромного, но статического набора данных. Команда смогла обработать 100 ТБ данных, хранящихся на SSD, всего за 23 минуты с помощью Spark. Предыдущий победитель сделал это за 72 минуты с помощью Hadoop. Еще лучше то, что Spark хорошо работает при поддержке интерактивных запросов данных, хранящихся в памяти. Утверждается, что в таких ситуациях Apache Spark работает в 100 раз быстрее, чем MapR.
- Поддержка. Как мы уже говорили ранее, Apache Spark поддерживает большинство известных языков программирования, включая Java, Python, Scala и R. Spark также поддерживает тесную интеграцию с рядом систем хранения, кроме HDFS. Кроме того, сообщество Apache Spark является огромным, активным и международным.
Заключение
На этом мы подошли к концу этого поста в блоге. Мы надеемся, что вам было интересно узнать подробности об Apache Spark. Если большие наборы данных вызывают у вас прилив адреналина, мы рекомендуем вам освоить Apache Spark и сделать себя активом!
Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощь в трудоустройстве в ведущих фирмах.
Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.