Описание
Apache Spark – один из самых распространенных инструментов, обеспечивающих гибкое масштабирование обработки данных в самых разных объемах. Если у вас есть кластер Spark, то достаточно один раз написать логику обработки данных на SQL с минимальным использованием кода на Python, Java или Scala и запустить приложение, независимо от того, хранится ли у вас 100 килобайт на одном узле или 100 терабайт на 100 узлах. Неизбежные сбои на узлах и сбои сетевой инфраструктуры в таких распределенных системах можно устранять с помощью того же Spark, перезапуская при необходимости неработающие процессы. Такие широкие возможности управления выполнением распределенных запросов в реляционных СУБД доступны либо при наличии большого бюджета (тогда как Apache Spark доступен бесплатно), либо при условии существенных трудозатрат на разработку.
Для эффективного использования всех преимуществ Spark недостаточно просто развернуть кластер и написать SQL запросы. Разработчики должны понимать, что происходит во внутренней структуре, в противном случае неизбежны неприятные сюрпризы с производительностью системы.
Этот тренинг ориентирован прежде всего на разработчиков и аналитиков данных, которые только начинают знакомство с фреймворком Spark, но не ограничивается базовыми понятиями. Будут рассмотрены различные способы оптимизации Spark не только в случае SQL-подобных запросов для табличных данных, но и для других типов данных, например, текстов, а также в случае взаимодействия с внешними системами, например, Cassandra.
В данной версии курса для практических упражнений используется язык Python. Это удобно для аналитиков данных, поскольку существенная часть упражнений выполняется в тетрадях Jupyter.удостоверение о повышении квалификации государственного образца
Цели
Целевая аудитория
Предварительная подготовка
Разбираемые темы
-
1. Концепции и архитектура Spark (теория – 2 ч., практика – 1 ч.)
- Map/Reduce и Spark в Hadoop. Примеры
- Spark в Lambda-архитектуре
- Кластеры для распределенной обработки данных
- Как запустить Spark
- Исполнители, задания, задачи в Spark
-
2. Программирование с помощью RDD: трансформации и действия (теория – 2 ч., практика – 2 ч.)
- В чем разница между SparkSession и SparkContext
- Как создавать и распараллеливать RDD
- Как трансформировать RDD
- Как анализировать и управлять обработкой RDD (план и DAG)
- Как сохранять и хранить RDD в HDFS
- Как группировать и соединять RDD
-
3. Программирование с помощью DataFrame (теория – 2 ч., практика – 2 ч.)
- В чем разница между RDD и DataFrame
- Как создавать и распараллеливать DataFrame
- Как анализировать и управлять выполнением DataFrame (план и DAG)
- Как сохранять DataFrame в HDFS
-
4. Загрузка данных с внешних хранилищ и во внешние хранилища (теория – 1 ч., практика – 2 ч.)
- Как читать/писать данные с файлового хранилища (HDFS, S3, FTP, локальной файловой системы)
- Какой формат данных выбрать
- Как распараллеливать чтение/запись в JDBC
- Как создать DataFrame из MPP (Cassandra, Vertica, Greenplum)
- Как работать с Kafka
-
5. Написание логики с использованием Spark DSL (теория – 1 ч., практика – 1 ч.)
- Как считать строки
- Как обрабатывать математические агрегации
- Как группировать строки
- Как правильное соединять DataFrames
-
6. Написание логики с использованием Spark SQL (теория – 1 ч., практика – 1 ч.)
- Как и зачем переключаться на Spark SQL
- Как работать с таблицей EXTERNAL
- Как работать с таблицей MANAGED
-
7. Использование функций Window и UDF (теория – 1 ч., практика – 1 ч.)
- Какие оконные функции существуют и как их использовать в Spark
- Когда не следует использовать оконные функции
- Что такое UDF, UDAF и как их использовать
- Как оптимизировать UDFs в PySpark
-
8. Типы Spark (теория – 1 ч., практика – 1 ч.)
- Логические: как добавить фильтр
- Численные: как подсчитать сумму, произведение, статистику
- Строковый: как использовать регулярные выражения
- Комплексные: как работать со структурами, массивами
- Как работать с данными
-
9. Примеры оптимизации Spark (теория – 1 ч., практика – 1 ч.)
- Недостаточно памяти
- Маленькие файлы в HDFS
- Асимметричные данные
- Медленные соединения
- Трансляция больших таблиц
- Совместное использование ресурсов
- Новые механизмы оптимизации: AQE и DPP
-
10.Запуск Spark в Airflow (теория – 1 ч., демонстрация – 1 ч.)
- Оркестраторы
- Устройство Airflow
- Встроенные операторы Airflow
- SparkSubmitOperator
-
Всего: теория – 13 ч. (50%), практика и демонстрация – 13 ч. (50%)