
- •Ответы к экзамену по большим данным
- •Компонент Hadoop. Главные сервисы, схема взаимодействия. Пример взаимодействия сервисов Hadoop при выполнении задачи MapReduce.
- •Hdfs. Архитектура сервиса. Роль DataNode и NameNode. FsImage и Journal. High Availability конфигурация. Виды api.
- •Hdfs. Worm подход. Почему hdfs не любит маленькие файлы? Почему Secondary NameNode нельзя считать backup Node?
- •MapReduce. Стадии обработки клиентского запроса. Оптимизаторы: Combiner, Partitioner, Comparator с примерами использования. Хранение файлов до, вовремя и после выполнения запроса.
- •Yarn. Основные сервисы. Архитектура компонента. High Availability конфигурация. Пример выполнения запроса при обработке MapReduce задачи.
- •Пример выполнения запроса при обработке MapReduce задачи:
- •Yarn. Виды scheduler’ов. Fifo, Fair, Capacity. Достоинства и недостатки. Механизм очередей.
- •Hive. Назначение и принцип работы. Архитектура. High Availability конфигурация. Разница между schema-on-write и schema-on-read. Разница между managed и external таблицами.
- •Hive. Оптимизация работы. Партиции и бакеты: принцип работы. Формулы для распределения записей. Плюсы и минусы применения.
- •Hbase. Назначение и принцип работы. Архитектура. High Availability конфигурация. Модель данных. Minor и Major Compaction. Регион hBase и его составляющие
- •Spark. Назначение и принцип работы. Отличия от MapReduce. Архитектура. Основные api. Виды планировщиков в Spark.
- •Spark. Библиотека Spark Core. Spark rdd. 2 типа операций над rdd. Lazy Evaluation. Типы трансформаций. Lineage. Использование cache, разница между cache и persist.
- •Apache Kafka. Партиции и топики. Репликация данных. Распределение данных в топиках. Leader-follower архитектура. N-sync реплики. Удаление данных из Kafka.
- •Airflow. Назначение и принцип работы. Dag. Сущности Operator и Sensor. Основные виды операторов.
Apache Kafka. Партиции и топики. Репликация данных. Распределение данных в топиках. Leader-follower архитектура. N-sync реплики. Удаление данных из Kafka.
Apache Kafka - это распределенная платформа для обработки потоковых данных. Она предоставляет высокую пропускную способность и надежность при передаче, хранении и обработке потоков данных.
Партиции и топики:
Топик: Это категория или канал, через который данные публикуются в Kafka. Он представляет собой лог-структуру, в которую записываются сообщения.
Партиция: Топик может быть разделен на несколько партиций. Каждая партиция - это упорядоченная последовательность сообщений. Партиции позволяют распределять данные по разным узлам кластера и обеспечивают масштабируемость и параллелизм при обработке сообщений.
Репликация данных:
Репликация данных в Kafka обеспечивает отказоустойчивость и надежность. Каждая партиция может иметь несколько реплик, которые распределены по разным брокерам (узлам кластера). Если один из брокеров выходит из строя, данные остаются доступными благодаря репликам.
Распределение данных в топиках:
Данные в топиках распределяются по партициям с использованием ключей сообщений. Ключи помогают определить, в какую партицию будет записано сообщение. Это обеспечивает упорядоченность сообщений с одинаковым ключом и позволяет эффективно обрабатывать данные.
Leader-follower архитектура:
В Kafka каждая партиция имеет одного лидера (leader) и несколько фолловеров (follower). Лидер отвечает за запись данных и обработку запросов на чтение и запись, фолловеры - за репликацию данных и обеспечение отказоустойчивости.
N-sync реплики:
N-sync реплика означает, что запись считается подтвержденной только после ее репликации на N узлах кластера. Это обеспечивает надежность и сохранность данных в случае сбоев.
Удаление данных из Kafka:
- В Kafka данные хранятся в логах (логических партициях) и удаление данных происходит путем установки политики хранения (retention policy). По истечении определенного срока или при достижении определенного размера, данные могут быть автоматически удалены из топиков.
Airflow. Назначение и принцип работы. Dag. Сущности Operator и Sensor. Основные виды операторов.
Apache Airflow — это открытая платформа управления рабочими процессами, которая позволяет автоматизировать сложные рабочие процессы и потоки данных.
Назначение и принцип работы Apache Airflow:
Airflow предназначен для создания, планирования и мониторинга рабочих процессов, представленных в виде направленного ациклического графа (DAG). DAG определяет порядок выполнения задач, и Airflow обеспечивает их выполнение в соответствии с заданным графом. Это позволяет управлять и мониторить сложные потоки данных и задач.
DAG (Directed Acyclic Graph) — это граф, в котором узлы — это задачи, а направленные ребра — зависимости между задачами. Граф ориентирован в одном направлении и не содержит циклов, что гарантирует, что задачи выполняются в правильном порядке.
Operator представляет собой атомарную задачу внутри DAG. Он определяет, что именно должно быть выполнено. Airflow предоставляет множество встроенных операторов для различных задач. Например, BashOperator предназначен для выполнения команд в оболочке, PythonOperator — для выполнения Python-скриптов и т.д.
Sensor представляет собой оператор, который ожидает внешних условий для выполнения. Например, ExternalTaskSensor ожидает завершения другой задачи перед тем, как начать выполнение.
Основные виды операторов:
BashOperator: Выполняет команды в оболочке Bash.
PythonOperator: Запускает задачу, написанную на Python.
Sensor: Ожидает определенного условия перед выполнением.
DummyOperator: Пустой оператор, который может быть использован для создания зависимостей в DAG без фактического выполнения действий.
SubDagOperator: Позволяет встраивать подграфы DAG в основной граф.
BranchPythonOperator: Позволяет условно ветвить выполнение, основываясь на результате Python-функции.