Предлагаем вашему вниманию новый курс лекций Техносферы. Он представляет собой введение в Hadoop, фокусируясь на проектировании и реализации распределенных алгоритмов, которые могут применяться в различных сферах: обработка текстов, графов, связанных данных и т.п. Также рассматриваются различные компоненты платформы Hadoop и программные модели. Целью курса является знакомство студентов со стеком технологий Hadoop, применяемых для хранения, доступа и обработки больших объемов данных. Преподаватели курса: Алексей Романенко, Михаил Фирулик, Николай Анохин.
Что такое «большие данные». История возникновения этого явления. Необходимые знания и навыки для работы с большими данными. Что такое Hadoop, где он применяется. Что такое «облачные вычисления», история возникновения и развития технологии. Web 2.0. Вычисление как услуга (utility computing). Виртуализация. Инфраструктура как сервис (IaaS). Вопросы параллелизма. Управление множеством воркеров. Дата-центры и масштабируемость. Типичные задачи Big Data. MapReduce: что это такое, примеры. Распределённая файловая система. Google File System. HDFS как клон GFS, его архитектура.
История Hadoop и его применение. Хранение данных, кластер Hadoop. Системные принципы. Горизонтальное масштабирование вместо вертикального. Код к данным. Отказы оборудования. Инкапсуляция сложности реализации. Сравнение с СУБД (RDBMS). Экосистема Hadoop. Дистрибутивы, вендоры, поддерживаемые ОС. Полезная литература. Hadoop на Cloudera VM. Импорт и запуск VM. Копирование файлов в HDFS. Запуск MapReduce-задачи в Hadoop. Проверка результатов.
Задачи, для которых подходит и не подходит HDFS. Демоны HDFS. Файлы и блоки. Репликация блоков. Клиенты, Namenode и Datanodes. Чтение и запись файла. Namenode: использование памяти. Устойчивость к отказам в Namenode. Доступ к HDFS, в том числе через прокси. Команды оболочки shell. Копирование данных в shell, удаление и статистика. Команда fsck. Права в HDFS. Команда DFSAdmin. Балансер. File System Java API. Реализация File System. Объект Configuration. Чтение данных из файла и запись в него. Подстановки (globbing).
Рабочий процесс MapReduce. Hadoop MapReduce и HDFS. Выполнение MapReduce. Архитектура и работа первой версии MapReduce. Hadoop API (типы, классы). WordCount (Congigure Job, Mapper, Reducer). Reducer в качестве Combiner. Типы данных в Hadoop. InputSplit, InputFormat, OutputFormat. Shuffle и Sort в Hadoop. Запуск и отладка задач. Hadoop Streaming. Streaming в MapReduce.
WordCount (baseline, In-mapper combining, среднее значение, различающиеся значения). Кросс-корреляция (pairs, stripes). Реляционные паттерны MapReduce (Selection, Projection, Union, Intersection, Difference, Symmetric Difference, GroupBy и Aggregation, Repartition Join, Replicated Join, TF-IDF).
Граф как структура данных. Задачи и проблемы на графах. Графы и MapReduce. Матрица смежности. Списки смежности. Поиск кратчайшего пути. Алгоритм Дейкстры. Параллельный BFS: алгоритм, псевдокод, итерации, критерий завершения, сравнение с Дейкстерой. BFS weighted: edges, критерий завершения, сложности. Графы и MapReduce. PageRank: что это такое, где применяется. Вычисление PageRank, упрощения для него. PageRank на MapReduce. Полный PageRank, сходимость. Другие классы проблем на графах. Основные проблемы для алгоритмов на графах. Улучшение партиционирования. Schimmy Design Pattern.
Что такое Pig, для чего используется. Pig и MapReduce. Основные возможности. Компоненты. Режимы выполнения. Запуск Pig. Pig Latin. Операции DUMP и STORE. Большой объём данных. Команда LOAD. Типы данных для схемы. Pig Latin (cредства диагностики, группировка, Inner и Outer bag, FOREACH, функция TOKENIZE, оператор FLATTEN, WordCount, Inner и Outer Join). Hive (архитектура, интерфейс, концепция, создание таблицы, загрузка данных, выполнение запроса, Inner и Outer Join, WordCount).
Масштабирование вверх. Масштабирование RDBMS (master/slave, sharding). Что такое NoSQL. Dynamo и BigTable. Теория CAP. Модель консистентности. Eventual Consistency. Типы NoSQL. Key/Value. Schema-Less. Что такое HBase, когда его нужно и когда не нужно использовать. Модель данных HBase. Column Family. Timestamp. Ячейки. Архитектура и компоненты HBase. Распределение ключей в RegionServer. Хранение данных в HBase. Master и Zookeeper. Доступ к HBase. Column Family как единица хранения. Запрос данных из HBase. Что такое Cassandra. Типичный NoSQL API. Модель данных. Cassandra и консистентность.
Что такое ZooKeeper, его место в экосистеме Hadoop. Неправда о распределённых вычислениях. Схема стандартной распределённой системы. Сложность координации распределённых систем. Типичные проблемы координации. Принципы, заложенные в дизайн ZooKeeper. Модель данных ZooKeeper. Флаги znode. Сессии. Клиентский API. Примитивы (configuration, group membership, simple locks, leader election, locking без herd effect). Архитектура ZooKeeper. ZooKeeper DB. ZAB. Обработчик запросов.
Что такое Apache Mahout. Реализованные алгоритмы. Классификация (Naive Bayes, k-Means). Рекомендации (коллаборативная фильтрация, Item-based, алгоритм Slop One, Apache.teste, Item-based с Hadoop, Mahout со Spark, co-occurrence recommenders).
Web 2.0 и социальные графы. Примеры графов. Задачи обработки графов. Средства обработки больших графов. Pregel (что это такое, концепция). Vertex. Метод compute. Combiner. Aggregator. Изменение графа. Giraph (архитектура, выполнение программы, отказоустойчивость). PageRank. Кратчайшие пути. Производительность.
Мотивация. RDD. Программная модель Spark. Higher-Order Functions. Трансформация RDD (Map, Reduce, Join, CoGroup, Union и Sample). RDD actions. SparkContext. Создание RDD. Общие переменные (broadcast, accumulator). Движок Apache Spark. Программный интерфейс Spark. Lineage. Зависимости между RDD (Narrow, Wide). Расписание задач. Отказоустойчивость RDD. Управление памятью. Приложения, которые подходят и не подходят для RDD.
Что такое YARN, для чего он нужен. YARN и старый MapReduce. Компоненты MapReduce на YARN. Выполнение MR-задачи на YARN. Запуск MapReduce-задачи. Инициализация задачи. Инициализация MRAppMaster. MRAppMaster и Uber Job. Назначение задач. Управление памятью (создание контейнеров для запуска задач, контроль памяти для каждой задачи, JVM-куча, виртуальная память). Выполнение задач. Обновления статуса. Веб-интерфейс Resource Manager. Сбои выполнения задач. Сбои Application Master. Сбои Node Manager. Сбои Resource Manager. Расписание задач.
История внедрения, компоненты Поиска. Почему Hadoop? Почему HBase? Поисковый робот (Old school, New generation H). Что мы храним в HBase? Работа с Hadoop. Трудности перевода. Эксплуатация (Ganglia). Полезные уроки Hadoop и HBase.
Технопарк:
Техносфера:
Подписывайтесь на youtube-канал Технопарка и Техносферы!
Лекция 1. Введение в Big Data и MapReduce
Что такое «большие данные». История возникновения этого явления. Необходимые знания и навыки для работы с большими данными. Что такое Hadoop, где он применяется. Что такое «облачные вычисления», история возникновения и развития технологии. Web 2.0. Вычисление как услуга (utility computing). Виртуализация. Инфраструктура как сервис (IaaS). Вопросы параллелизма. Управление множеством воркеров. Дата-центры и масштабируемость. Типичные задачи Big Data. MapReduce: что это такое, примеры. Распределённая файловая система. Google File System. HDFS как клон GFS, его архитектура.
Лекция 2. Основы Hadoop
История Hadoop и его применение. Хранение данных, кластер Hadoop. Системные принципы. Горизонтальное масштабирование вместо вертикального. Код к данным. Отказы оборудования. Инкапсуляция сложности реализации. Сравнение с СУБД (RDBMS). Экосистема Hadoop. Дистрибутивы, вендоры, поддерживаемые ОС. Полезная литература. Hadoop на Cloudera VM. Импорт и запуск VM. Копирование файлов в HDFS. Запуск MapReduce-задачи в Hadoop. Проверка результатов.
Лекция 3. Распределённая файловая система HDFS
Задачи, для которых подходит и не подходит HDFS. Демоны HDFS. Файлы и блоки. Репликация блоков. Клиенты, Namenode и Datanodes. Чтение и запись файла. Namenode: использование памяти. Устойчивость к отказам в Namenode. Доступ к HDFS, в том числе через прокси. Команды оболочки shell. Копирование данных в shell, удаление и статистика. Команда fsck. Права в HDFS. Команда DFSAdmin. Балансер. File System Java API. Реализация File System. Объект Configuration. Чтение данных из файла и запись в него. Подстановки (globbing).
Лекция 4. MapReduce в Hadoop (введение)
Рабочий процесс MapReduce. Hadoop MapReduce и HDFS. Выполнение MapReduce. Архитектура и работа первой версии MapReduce. Hadoop API (типы, классы). WordCount (Congigure Job, Mapper, Reducer). Reducer в качестве Combiner. Типы данных в Hadoop. InputSplit, InputFormat, OutputFormat. Shuffle и Sort в Hadoop. Запуск и отладка задач. Hadoop Streaming. Streaming в MapReduce.
Лекция 5. MapReduce в Hadoop (алгоритмы)
WordCount (baseline, In-mapper combining, среднее значение, различающиеся значения). Кросс-корреляция (pairs, stripes). Реляционные паттерны MapReduce (Selection, Projection, Union, Intersection, Difference, Symmetric Difference, GroupBy и Aggregation, Repartition Join, Replicated Join, TF-IDF).
Лекция 6. MapReduce в Hadoop (графы)
Граф как структура данных. Задачи и проблемы на графах. Графы и MapReduce. Матрица смежности. Списки смежности. Поиск кратчайшего пути. Алгоритм Дейкстры. Параллельный BFS: алгоритм, псевдокод, итерации, критерий завершения, сравнение с Дейкстерой. BFS weighted: edges, критерий завершения, сложности. Графы и MapReduce. PageRank: что это такое, где применяется. Вычисление PageRank, упрощения для него. PageRank на MapReduce. Полный PageRank, сходимость. Другие классы проблем на графах. Основные проблемы для алгоритмов на графах. Улучшение партиционирования. Schimmy Design Pattern.
Лекция 7. Введение в Pig и Hive
Что такое Pig, для чего используется. Pig и MapReduce. Основные возможности. Компоненты. Режимы выполнения. Запуск Pig. Pig Latin. Операции DUMP и STORE. Большой объём данных. Команда LOAD. Типы данных для схемы. Pig Latin (cредства диагностики, группировка, Inner и Outer bag, FOREACH, функция TOKENIZE, оператор FLATTEN, WordCount, Inner и Outer Join). Hive (архитектура, интерфейс, концепция, создание таблицы, загрузка данных, выполнение запроса, Inner и Outer Join, WordCount).
Лекция 8. NoSQL, HBase, Cassandra
Масштабирование вверх. Масштабирование RDBMS (master/slave, sharding). Что такое NoSQL. Dynamo и BigTable. Теория CAP. Модель консистентности. Eventual Consistency. Типы NoSQL. Key/Value. Schema-Less. Что такое HBase, когда его нужно и когда не нужно использовать. Модель данных HBase. Column Family. Timestamp. Ячейки. Архитектура и компоненты HBase. Распределение ключей в RegionServer. Хранение данных в HBase. Master и Zookeeper. Доступ к HBase. Column Family как единица хранения. Запрос данных из HBase. Что такое Cassandra. Типичный NoSQL API. Модель данных. Cassandra и консистентность.
Лекция 9. ZooKeeper
Что такое ZooKeeper, его место в экосистеме Hadoop. Неправда о распределённых вычислениях. Схема стандартной распределённой системы. Сложность координации распределённых систем. Типичные проблемы координации. Принципы, заложенные в дизайн ZooKeeper. Модель данных ZooKeeper. Флаги znode. Сессии. Клиентский API. Примитивы (configuration, group membership, simple locks, leader election, locking без herd effect). Архитектура ZooKeeper. ZooKeeper DB. ZAB. Обработчик запросов.
Лекция 10. Apache Mahout
Что такое Apache Mahout. Реализованные алгоритмы. Классификация (Naive Bayes, k-Means). Рекомендации (коллаборативная фильтрация, Item-based, алгоритм Slop One, Apache.teste, Item-based с Hadoop, Mahout со Spark, co-occurrence recommenders).
Лекция 11. Вычислительная модель Pregel
Web 2.0 и социальные графы. Примеры графов. Задачи обработки графов. Средства обработки больших графов. Pregel (что это такое, концепция). Vertex. Метод compute. Combiner. Aggregator. Изменение графа. Giraph (архитектура, выполнение программы, отказоустойчивость). PageRank. Кратчайшие пути. Производительность.
Лекция 12. Spark
Мотивация. RDD. Программная модель Spark. Higher-Order Functions. Трансформация RDD (Map, Reduce, Join, CoGroup, Union и Sample). RDD actions. SparkContext. Создание RDD. Общие переменные (broadcast, accumulator). Движок Apache Spark. Программный интерфейс Spark. Lineage. Зависимости между RDD (Narrow, Wide). Расписание задач. Отказоустойчивость RDD. Управление памятью. Приложения, которые подходят и не подходят для RDD.
Лекция 13. YARN
Что такое YARN, для чего он нужен. YARN и старый MapReduce. Компоненты MapReduce на YARN. Выполнение MR-задачи на YARN. Запуск MapReduce-задачи. Инициализация задачи. Инициализация MRAppMaster. MRAppMaster и Uber Job. Назначение задач. Управление памятью (создание контейнеров для запуска задач, контроль памяти для каждой задачи, JVM-куча, виртуальная память). Выполнение задач. Обновления статуса. Веб-интерфейс Resource Manager. Сбои выполнения задач. Сбои Application Master. Сбои Node Manager. Сбои Resource Manager. Расписание задач.
Лекция 14. Hadoop в Поиске Mail.Ru
История внедрения, компоненты Поиска. Почему Hadoop? Почему HBase? Поисковый робот (Old school, New generation H). Что мы храним в HBase? Работа с Hadoop. Трудности перевода. Эксплуатация (Ganglia). Полезные уроки Hadoop и HBase.
Предыдущие выпуски
Технопарк:
- 1 семестр. Web-технологии
- 1 семестр. Алгоритмы и структуры данных
- 1 семестр. С/С++
- 2 семестр. Базы данных
- 3 семестр. Проектирование высоконагруженных систем
Техносфера:
- 1 семестр. Алгоритмы интеллектуальной обработки больших объемов данных
- 1 семестр. Методы использования СУБД в интернет-приложениях
- 2 семестр. Современные методы и средства построения систем информационного поиска
Подписывайтесь на youtube-канал Технопарка и Техносферы!
slava_k
Большое спасибо!
Dmitry21 Автор
Не за что. У нас еще есть )