Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 3. Распределённая файловая система HDFSTechnopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
도커의 근간 기술을 이해하기 위해 도커의 역사를 살펴보고, 클러스터 환경으로 컨테이너 환경을 운영하는 쿠버네티스에 대한 핵심 개념에 대해 알아봅니다. 마지막으로 쿠버네티스 클러스터를 손쉽게 생성하고 관리할 수 있는 네이버 클라우드 플랫폼 Kubernetes service를 데모를 통해 소개해드립니다 | To understand Docker's underlying technology, we look at Docker's history and learn about the core concepts of Kubernetis, which operates a container environment in a cluster environment. Lastly, I will introduce Naver's cloud platform Kubernetes service, which allows you to easily create and manage Kubernetes clusters, through a demo.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 3. Распределённая файловая система HDFSTechnopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
도커의 근간 기술을 이해하기 위해 도커의 역사를 살펴보고, 클러스터 환경으로 컨테이너 환경을 운영하는 쿠버네티스에 대한 핵심 개념에 대해 알아봅니다. 마지막으로 쿠버네티스 클러스터를 손쉽게 생성하고 관리할 수 있는 네이버 클라우드 플랫폼 Kubernetes service를 데모를 통해 소개해드립니다 | To understand Docker's underlying technology, we look at Docker's history and learn about the core concepts of Kubernetis, which operates a container environment in a cluster environment. Lastly, I will introduce Naver's cloud platform Kubernetes service, which allows you to easily create and manage Kubernetes clusters, through a demo.
Hadoop makes it relatively easy to store petabytes of data. However, storing data is not enough; columnar layouts for storage and in-memory execution allow the analysis of large amounts of data very quickly and efficiently. It provides the ability for multiple applications to share a common data representation and perform operations at full CPU throughput using SIMD and Vectorization. For interoperability, row based encodings (CSV, Thrift, Avro) combined with general purpose compression algorithms (GZip, LZO, Snappy) are common but inefficient. As discussed extensively in the database literature, a columnar layout with statistics and sorting provides vertical and horizontal partitioning, thus keeping IO to a minimum. Additionally a number of key big data technologies have or will soon have in-memory columnar capabilities. This includes Kudu, Ibis and Drill. Sharing a common in-memory columnar representation allows interoperability without the usual cost of serialization.
Understanding modern CPU architecture is critical to maximizing processing throughput. We’ll discuss the advantages of columnar layouts in Parquet and Arrow for in-memory processing and data encodings used for storage (dictionary, bit-packing, prefix coding). We’ll dissect and explain the design choices that enable us to achieve all three goals of interoperability, space and query efficiency. In addition, we’ll provide an overview of what’s coming in Parquet and Arrow in the next year.
HDFS has several strengths: horizontally scale its IO bandwidth and scale its storage to petabytes of storage. Further, it provides very low latency metadata operations and scales to over 60K concurrent clients. Hadoop 3.0 recently added Erasure Coding. One of HDFS’s limitations is scaling a number of files and blocks in the system. We describe a radical change to Hadoop’s storage infrastructure with the upcoming Ozone technology. It allows Hadoop to scale to tens of billions of files and blocks and, in the future, to every larger number of smaller objects. Ozone fundamentally separates the namespace layer and the block layer allowing new namespace layers to be added in the future. Further, the use of RAFT protocol has allowed the storage layer to be self-consistent. We show how this technology helps a Hadoop user and also what it means for evolving HDFS in the future. We will also cover the technical details of Ozone.
Speaker: Sanjay Radia, Chief Architect, Founder, Hortonworks
History and Basics of containers, LXC, Docker and Kubernetes. This presentation is given to Engineering colleage students at VIT DevFest 2018. Beginner to Intermediate level.
Aperçu de Docker et Kubernetes
Déploiement de Rancher
- Machine Provisioning
- Installation du serveur de Rancher
- Présentation de l'interface graphique
Déploiement de Kubernetes
- Installation du cluster Kubernetes
- Management du cluster Kubernetes
- Déploiement applicatif
by Ben Willett, Solutions Architect, AWS
Database Week at the AWS Loft is an opportunity to learn about Amazon’s broad and deep family of managed database services. These services provide easy, scalable, reliable, and cost-effective ways to manage your data in the cloud. We explain the fundamentals and take a technical deep dive into Amazon RDS and Amazon Aurora relational databases, Amazon DynamoDB non-relational databases, Amazon Neptune graph databases, and Amazon ElastiCache managed Redis, along with options for database migration, caching, search and more. You'll will learn how to get started, how to support applications, and how to scale.
Kubernetes Application Deployment with Helm - A beginner Guide!Krishna-Kumar
Google DevFest2019 Presentation at Infosys Campus Bangalore. Application deployment in Kubernetes with Helm is demo'ed in Google Kubernetes Engine (GKE). This is an introductory session on Helm. Several references are given in it to further explore helm3 as it is in Beta state now.
What is HDFS | Hadoop Distributed File System | EdurekaEdureka!
( Hadoop Training: https://www.edureka.co/hadoop )
This What is HDFS PPT will help you to understand about Hadoop Distributed File System and its features along with practical. In this What is HDFS PPT, we will cover:
1. What is DFS and Why Do We Need It?
2. What is HDFS?
3. HDFS Architecture
4. HDFS Replication Factor
5. HDFS Commands Demonstration on a Production Hadoop Cluster
Check our complete Hadoop playlist here: https://goo.gl/hzUO0m
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Our experts – Zbigniew Parys, Solution Architect at Red Hat and Marcin Kubacki, Chief Software Architect at Storware expand on ‘How to set up your virtual environments with Red Hat Satellite’!
Storage tiering and erasure coding in Ceph (SCaLE13x)Sage Weil
Ceph is designed around the assumption that all components of the system (disks, hosts, networks) can fail, and has traditionally leveraged replication to provide data durability and reliability. The CRUSH placement algorithm is used to allow failure domains to be defined across hosts, racks, rows, or datacenters, depending on the deployment scale and requirements.
Recent releases have added support for erasure coding, which can provide much higher data durability and lower storage overheads. However, in practice erasure codes have different performance characteristics than traditional replication and, under some workloads, come at some expense. At the same time, we have introduced a storage tiering infrastructure and cache pools that allow alternate hardware backends (like high-end flash) to be leveraged for active data sets while cold data are transparently migrated to slower backends. The combination of these two features enables a surprisingly broad range of new applications and deployment configurations.
This talk will cover a few Ceph fundamentals, discuss the new tiering and erasure coding features, and then discuss a variety of ways that the new capabilities can be leveraged.
Traditional virtualization technologies have been used by cloud infrastructure providers for many years in providing isolated environments for hosting applications. These technologies make use of full-blown operating system images for creating virtual machines (VMs). According to this architecture, each VM needs its own guest operating system to run application processes. More recently, with the introduction of the Docker project, the Linux Container (LXC) virtualization technology became popular and attracted the attention. Unlike VMs, containers do not need a dedicated guest operating system for providing OS-level isolation, rather they can provide the same level of isolation on top of a single operating system instance.
An enterprise application may need to run a server cluster to handle high request volumes. Running an entire server cluster on Docker containers, on a single Docker host could introduce the risk of single point of failure. Google started a project called Kubernetes to solve this problem. Kubernetes provides a cluster of Docker hosts for managing Docker containers in a clustered environment. It provides an API on top of Docker API for managing docker containers on multiple Docker hosts with many more features.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Hadoop makes it relatively easy to store petabytes of data. However, storing data is not enough; columnar layouts for storage and in-memory execution allow the analysis of large amounts of data very quickly and efficiently. It provides the ability for multiple applications to share a common data representation and perform operations at full CPU throughput using SIMD and Vectorization. For interoperability, row based encodings (CSV, Thrift, Avro) combined with general purpose compression algorithms (GZip, LZO, Snappy) are common but inefficient. As discussed extensively in the database literature, a columnar layout with statistics and sorting provides vertical and horizontal partitioning, thus keeping IO to a minimum. Additionally a number of key big data technologies have or will soon have in-memory columnar capabilities. This includes Kudu, Ibis and Drill. Sharing a common in-memory columnar representation allows interoperability without the usual cost of serialization.
Understanding modern CPU architecture is critical to maximizing processing throughput. We’ll discuss the advantages of columnar layouts in Parquet and Arrow for in-memory processing and data encodings used for storage (dictionary, bit-packing, prefix coding). We’ll dissect and explain the design choices that enable us to achieve all three goals of interoperability, space and query efficiency. In addition, we’ll provide an overview of what’s coming in Parquet and Arrow in the next year.
HDFS has several strengths: horizontally scale its IO bandwidth and scale its storage to petabytes of storage. Further, it provides very low latency metadata operations and scales to over 60K concurrent clients. Hadoop 3.0 recently added Erasure Coding. One of HDFS’s limitations is scaling a number of files and blocks in the system. We describe a radical change to Hadoop’s storage infrastructure with the upcoming Ozone technology. It allows Hadoop to scale to tens of billions of files and blocks and, in the future, to every larger number of smaller objects. Ozone fundamentally separates the namespace layer and the block layer allowing new namespace layers to be added in the future. Further, the use of RAFT protocol has allowed the storage layer to be self-consistent. We show how this technology helps a Hadoop user and also what it means for evolving HDFS in the future. We will also cover the technical details of Ozone.
Speaker: Sanjay Radia, Chief Architect, Founder, Hortonworks
History and Basics of containers, LXC, Docker and Kubernetes. This presentation is given to Engineering colleage students at VIT DevFest 2018. Beginner to Intermediate level.
Aperçu de Docker et Kubernetes
Déploiement de Rancher
- Machine Provisioning
- Installation du serveur de Rancher
- Présentation de l'interface graphique
Déploiement de Kubernetes
- Installation du cluster Kubernetes
- Management du cluster Kubernetes
- Déploiement applicatif
by Ben Willett, Solutions Architect, AWS
Database Week at the AWS Loft is an opportunity to learn about Amazon’s broad and deep family of managed database services. These services provide easy, scalable, reliable, and cost-effective ways to manage your data in the cloud. We explain the fundamentals and take a technical deep dive into Amazon RDS and Amazon Aurora relational databases, Amazon DynamoDB non-relational databases, Amazon Neptune graph databases, and Amazon ElastiCache managed Redis, along with options for database migration, caching, search and more. You'll will learn how to get started, how to support applications, and how to scale.
Kubernetes Application Deployment with Helm - A beginner Guide!Krishna-Kumar
Google DevFest2019 Presentation at Infosys Campus Bangalore. Application deployment in Kubernetes with Helm is demo'ed in Google Kubernetes Engine (GKE). This is an introductory session on Helm. Several references are given in it to further explore helm3 as it is in Beta state now.
What is HDFS | Hadoop Distributed File System | EdurekaEdureka!
( Hadoop Training: https://www.edureka.co/hadoop )
This What is HDFS PPT will help you to understand about Hadoop Distributed File System and its features along with practical. In this What is HDFS PPT, we will cover:
1. What is DFS and Why Do We Need It?
2. What is HDFS?
3. HDFS Architecture
4. HDFS Replication Factor
5. HDFS Commands Demonstration on a Production Hadoop Cluster
Check our complete Hadoop playlist here: https://goo.gl/hzUO0m
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Our experts – Zbigniew Parys, Solution Architect at Red Hat and Marcin Kubacki, Chief Software Architect at Storware expand on ‘How to set up your virtual environments with Red Hat Satellite’!
Storage tiering and erasure coding in Ceph (SCaLE13x)Sage Weil
Ceph is designed around the assumption that all components of the system (disks, hosts, networks) can fail, and has traditionally leveraged replication to provide data durability and reliability. The CRUSH placement algorithm is used to allow failure domains to be defined across hosts, racks, rows, or datacenters, depending on the deployment scale and requirements.
Recent releases have added support for erasure coding, which can provide much higher data durability and lower storage overheads. However, in practice erasure codes have different performance characteristics than traditional replication and, under some workloads, come at some expense. At the same time, we have introduced a storage tiering infrastructure and cache pools that allow alternate hardware backends (like high-end flash) to be leveraged for active data sets while cold data are transparently migrated to slower backends. The combination of these two features enables a surprisingly broad range of new applications and deployment configurations.
This talk will cover a few Ceph fundamentals, discuss the new tiering and erasure coding features, and then discuss a variety of ways that the new capabilities can be leveraged.
Traditional virtualization technologies have been used by cloud infrastructure providers for many years in providing isolated environments for hosting applications. These technologies make use of full-blown operating system images for creating virtual machines (VMs). According to this architecture, each VM needs its own guest operating system to run application processes. More recently, with the introduction of the Docker project, the Linux Container (LXC) virtualization technology became popular and attracted the attention. Unlike VMs, containers do not need a dedicated guest operating system for providing OS-level isolation, rather they can provide the same level of isolation on top of a single operating system instance.
An enterprise application may need to run a server cluster to handle high request volumes. Running an entire server cluster on Docker containers, on a single Docker host could introduce the risk of single point of failure. Google started a project called Kubernetes to solve this problem. Kubernetes provides a cluster of Docker hosts for managing Docker containers in a clustered environment. It provides an API on top of Docker API for managing docker containers on multiple Docker hosts with many more features.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
Alexey Zinoviev Алексей Зиновьев рассказывает о выборе одной из следующих баз данных CouchDB, Neo4j, Mongo, Cassandra, HBase, Riak на Happydev 2013
Article "Choice of NoSQL database for your project: Don't bite off more than you can chew" presented on HappyDev 2013 (IT-conference in Omsk) by Alexey Zinoviev
The main idea of this article is comparison of the most popular NoSQL databases: CouchDB, Cassandra, Mongodb, Riak, Neo4j, HBase
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСYury Petrov
В докладе я постараюсь донести до аудитории общую концепцию построения инфраструктуры Big Data, которую многие не видят.
Будут и инсайты и самый главный из них это то, что за долгое время работы с Big Data я таки вывел определение для этого термина
Этот доклад я презентовал на конференции BI тренды 11 октября 2012 года в Москве. http://events.cnews.ru/events/programm/bi_instrumenty_v_rossii__poslednie_trendy.shtml
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПбAndrasz Husti
Презентация к лекции "Среды и инструменты для управления проектами" в рамках курса IKRA "Digital-продюсер'14/1", который проходил в Санкт-Петербурге в пространстве "Ткачи".
Лекцию вели сотрудники мастерской мобильных приложений "Бегемот-Бегемот": Татьяна Андреева, руководитель производства, Дмитрий Ванеев, старший менеджер проектов, Андраш Густи, руководитель студии.
Лекция состояла из пяти частей, в каждой из которых рассматривались инструменты для эффективного ведения следующих аспектов ведения IT-проектов:
1. планирование проектов
2. хранилище данных
3. общение
4. личное планирование
5. управление проектов
Были рассмотрены JIRA, Basecamp, Trello, Confluence, Google Drive, Dropbox, матрица Ейзенхауера, Skype Recorder, Gmail Boomerang и другие инструменты и среды.
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
Технологии "Больших данных" все чаще находят свое место в информационных системах большинства компаний. Специалисты по работе с данными нуждаются в удобных решениях для работы с новыми технологиями в смешанных, многоплатформенных средах. Какие решения предлагает сегодня Embarcadero? Для архитекторов и специалистов по моделированию данных, администраторов БД и разработчиков серверных частей ИС. На русском языке.
Запись вебинара: http://youtu.be/sL5asNgFFG0
- Sahara как инструмент запуска и управления программным обеспечением для хранения и обработки больших массивов данных (Hadoop) на облаках под управлением OpenStack;
- Общий обзор проекта Sahara, его ключевые возможности и архитектурные аспекты;
- Варианты использования Sahara.
My presentation at OSPconf. Big Data Forum 2015 in Moscow on Informatica products and solutions in Big Data space: datawarehouse offload, managed data lake, big data Customer MDM, streaming analytics platform.
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
Этот момент обязательно наступит, если ваш проект, ваш бизнес сделаны не для того, чтобы вспыхнуть Фениксом в пламени бюджетов. Его важно не пропустить и начать обряд масштабирования как можно раньше.
Однако, не для каждой ситуации может подойти простое натравливание Hadoop на ваши логи, перелив данных из PostgreSQL в Cassandra или беспощадный тюнинг nginx и JVM.
Всегда стоит идти от задач, от представления о системе аналитики или от определенного заранее уровня отзывчивости системы. В этом докладе я хотел бы сосредоточиться не на инструментарии, столь важном для разработчика, а, напротив, поговорить о различных типах вопросов и болей с которыми приходят к нам заказчики в реальном мире, где никому нет дела до ваших результатов на Kaggle (онлайн-олимпиада по анализу данных) и синтетических тестов производительности, а также о процессе поиска ответов на эти вопросы. В реальном мире конечная идея приложения может измениться до неузнаваемости в один момент.
Приходите, разберем как хорошие случаи, так и типичные ошибки в построении приложений.
Для кого хорошо подойдет данный доклад: для тех, кто не слишком знаком с концепцией BigData, либо хорошо знаком с инструментарием разработчика, но нет определенной ясности в том, а для чего все это нужно. Ну и если вы идете на мастер-класс, то заходите, лишним не будет.
Similar to Лекция 1. Введение в Big Data и MapReduce (20)
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Вводная часть посвящена определению и истории развития концепции NoSQL. Даются характеристики, рассказывается о способах использования. Рассматриваются виды NoSQL БД, теоретические основы NoSQL, а в конце лекции обсуждаются недостатки NoSQL-решений, а также проводится сравнение разных NoSQL-решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №9 "Безопасность баз данных". Лектор - Павел Щербинин.
Открывается лекция рассказом о резервном копировании (о логических и физических резервных копиях, о выборе данных для копирования). Затем определяется терминология для обсуждения дальнейших вопросов. После этого рассматриваются основы учётных записей: таблицы доступа, привилегии, виды записей. Обсуждаются SQL-injection, список смежных вершин (Adjacency Set), вложенное множество (Nested Set), материализованный путь (Materialized Path) и комбинированный подход.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №8 "Конфигурирование базы данных". Лектор - Павел Щербинин.
Сначала объясняются основы конфигурирования и общие принципы настройки. Далее рассказывается об области видимости, о настройке использования памяти, обсуждается размер блока ключей key_cache_block_size. Рассматривается устройство и использование кэша InnoDB, а также кэшей потоков и таблиц. Затем говорится об особенностях ввода/вывода в InnoDB. Далее рассказывается о табличном пространстве, оптимизации файловой сортировки, переменных состояния. Финальная часть лекции посвящена репликации: настройка, синхронизация, топология, планирование пропускной способности, администрирование и обслуживание, проблемы и их решения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-запросы". Лектор - Павел Щербинин.
Лекция открывается рассказом о том, что такое профилирование запроса, каковы его этапы выполнения в MySQL. Рассказывается о том, как планировать запрос, как осуществляется протоколирование запросов, как собирается статистика. Объясняются основы индексирования, подробно обсуждаются стратегии индексирования для достижения высокой производительности: изоляция столбца, кластерные индексы (преимущества и недостатки), размещение данных в MyISAM и InnoDB, покрывающие индексы. Далее затрагивается тема нормализации и денормализации, а также таблиц счётчиков. В завершении рассказывается о версионировании схемы БД: о методах инкрементных изменений, идемпотентных изменений, уподобления структуры БД исходному коду.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №4 "Расширенные возможности работы с базами данных. Триггеры и хранимые процедуры"
Лектор - Павел Щербинин.
Первая часть лекции посвящена хранимым процедурам (использование, примеры кода, аспекты безопасности при использовании хранимых процедур): LOOP, REPEAT, WHILE, HANDLER, курсоры, EXECUTE. Во второй части рассказывается о триггерах: BEFORE, AFTER, INSTEAD OF, о специальных таблицах inserted, updated и deleted, об использовании триггеров для поддержания целостности и бизнес-логики, о проблемах при использовании триггеров, приводятся примеры кода. В завершающей части лекции обсуждаются вопросы, связанные с транзакциями: концепция A.C.I.D.; уровни изоляции ANSI/ISO (SET TRANSACTION ISOLATION LEVEL); взаимовлияние транзакций и проблемы lost update, dirty read, non-repeatable read и phantom read; технология MVCC (контроль версионирования конкуренции); конкуренция; параллельность и согласованность.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №3 "Выборка данных (продолжение). Транзакции"
Лектор - Павел Щербинин.
Лекция начинается с рассказа о добавлении данных и операторе INSERT, о модификации данных и операторе UPDATE, об удалении данных и операторе DELETE. Затем небольшая часть лекции посвящена пользовательским переменным. После этого даётся информация о подзапросах: SUBQUERIES, ROW SUBQUERIES, SUBQUERIES in FROM. Далее говорится об агрегации (UNION), о семействе функций JOIN и соединении таблиц, а в завершение лекции — о понятии VIEW (каковы преимущества, ограничения и особенности, алгоритмы использования и изменение).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №2 "Модификация данных. Выборка данных (начало)"
Лектор - Павел Щербинин.
Сначала завершается рассмотрение типа данных MySQL «Дата и время». Затем рассказывается о создании таблиц (CREATE TABLE): create_definition, column_definition, reference_defenition, обновление кортежа в родительском отношении. Далее обсуждается процедура изменения таблицы (ALTER TABLE), выборка данных и оператор SELECT, а также фильтрация (формирование групп, агрегаторы).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №1 "Введение и начало проектирования"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №1 "Введение и начало проектирования"
Лектор - Павел Щербинин.
В лекции обсуждаются значение и роли баз данных в IT, даются определения БД и СУБД. Затем рассказывается о реляционной модели данных, об основах реляционной алгебры. Далее говорится непосредственно о проектировании БД: каковы критерии оценки модели данных, особенности концептуального проектирования, этапы проектирования, что такое логическое проектирование. Остальная часть лекции посвящена типам данных MySQL: NULL, целые числа, числа с плавающей точкой, бинарные, строки, дата и время.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
2. АЛЕКСЕЙ РОМАНЕНКО
Руководитель команды разработки поискового робота в проекте
Поиск@Mail.Ru. Участвовал в проектировании и реализации архитектуры
системы хранения и обработки данных на платформе Hadoop в проекте
Поиск@Mail.Ru.
Выпускник факультета Радиоэлектроники МАИ в 2001 г, кафедра
Вычислительные системы и сети.
v
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
3. МИХАИЛ ФИРУЛИК
Руководитель отдела анализа данных, департамент рекламных технологий,
компании Mail.Ru Group. Ранее занимался медийными рекламными
проектами в компании Яндекс, в том числе «Крипта» и «Поведенческий
ретаргетинг», а так же развитием автоматических стратегий управления
рекламными кампаниями в «Директ». До этого долгое время работал
ведущим разработчиком системы обработки данных проекта исследования
телевизионной аудитории «TV-Index» в компании TNS.
Выпускник Ленинградского Высшего Военного Училища Связи им. Ленсовета
(ныне Академии Связи), кафедра Математическое Обеспечение
Автоматизированных Систем Управления, 1995 г
v
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
4. НИКОЛАЙ АНОХИН
Программист-исследователь в отделе анализа данных Mail.ru. Работаю над
применением алгоритмов машинного обучения к задачам оптимизации
рекламного трафика. До Mail.ru занимался Data Mining в компаниях
Technicolor и AdMoment.
Окончил МФТИ по специальности «Прикладная Физика и Математика» в 2010
году и Университет Лиона по специальности «Data Mining & Knowledge
Management» в 2012.
v
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
5. Чему посвящен данный курс?
• Вычисления на больших объемах данных (“Big
Data”)
• Основной фокус на приложениях и дизайне
алгоритмов
• MapReduce… и другие технологии
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
6. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Расписание занятий
Дата Время Лекция
13 сентября, суббота 15:00 — 18:00 Вводная лекция про BigData, введение про
MapReduce
19 сентября, пятница 18:00 — 21:00 Hadoop, основы
26 сентября, пятница 18:00 — 21:00 Распределенная файловая система HDFS
3 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, введение
10 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, продолжение I
17 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, продолжение II
24 октября, пятница 18:00 — 21:00 Введение в Hive и Pig
31 октября, пятница 18:00 — 21:00 NoSQL базы данных: BigTable, Hbase и Cassandra
7. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Расписание занятий, продолжение
Дата Время Лекция
7 ноября, пятница 18:00 — 21:00 Обработка текстов на естественных языках в
Hadoop
14 ноября, пятница 18:00 — 21:00 Machine learning в Hadoop: Mahout
21 ноября, пятница 18:00 — 21:00 Обработка данных realtime: Storm, Spark, Impal
28 ноября, пятница 18:00 — 21:00 Вычислительная модель Pregel
5 декабря, пятница 18:00 — 21:00 Hadoop 2.0
12 декабря, пятница 18:00 — 21:00 Hadoop: примеры использования в реальных
проектах
19 декабря, пятница 18:00 — 21:00 Итоговое занятие
16 января, пятница 18:00 — 21:00 Пересдача
10. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
>10 PB данных, 75B DB
запросов в день (6/2012)
Обрабатывает 20 PB в день (2008)
Скачивает 20B веб-страниц в день (2012)
>100 PB польз. данных +
500 TB/день (8/2012)
S3: 449B объектов, макс 290k rps (7/2011)
1T объектов (6/2012)
11. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Wayback Machine: 240B веб-страниц в архиве, 5
PB (1/2013)
LHC: ~15 PB в год
LSST: 6-10 PB в год
(~2015)
150 PB на 50k+ серверов
работает 15k apps (6/2011)
12. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Много данных – это сколько?
640K должно
хватить каждому.
13. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Необходимые знания
• Программирование на Java и/или Python
– Этот курс не учит программировать
– Фокус на “thinking at scale” и разработка/дизайн
алгоритмов
– Самостоятельная установка Hadoop
(рекомендуется)
• Уметь отлаживать свой код
• Опыт работы в Linux (желательно)
14. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Необходимые знания
• Основные знания по:
– Теория вероятностей и статистики
– Дискретная математика
– Архитектура компьютера
• Не обязателен опыт в:
– MapReduce
– Параллельном и распределенном
программировании
• Любознательность
15. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Как же стать гуру Hadoop?
• Посещать лекции, делать ДЗ
• Читать книги
– Tom White, “Hadoop: The Definitive Guide”
• Есть издание на русском языке
– Jimmy Lin and Chris Dyer, “Data-Intensive Text
Processing with MapReduce”
• RTFM
• RTFC(!)
16. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Этот курс не для вас, если…
• Если вам не очень то интересен данный
раздел
• Если у вас нет время, чтобы в этом
разобраться
• Если вы чувствуете себя некомфортно с
непредсказуемостью, которая всегда есть в
bleeding-edge software
Иначе, это должно быть интересно!
17. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Оценка результатов
• Финальная оценка состоит из:
– Домашних заданий
– Финального проекта
• Вряд ли это подойдет в качестве отговорок:
– “Я слишком занят!”
– “Это требует слишком много времени, чем у
меня есть!”
– “Это труднее, чем я думал!”
– “Я отформатировал диск с домашней работой!”
– Ну и т.д.
18. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Использование Hadoop
• Hadoop на вашем компьютере
• Hadoop в виртуальной машине на вашем
компьютере
• Hadoop в нашей лаборатории
19. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Hadoop Дзен”
• Это передовая технология (т.е. незрелая!)
– Долгий путь с 2007, но до сих пор мы в начале пути…
– Баги, недокументированные “фичи”, неожиданное
поведение, потеря данных(!)
• Нельзя разочаровываться
– Эти WTF! моменты
• Быть терпеливым
– Мы неизбежно столкнемся со странными “ситуациями”
на протяжении курса
• Быть гибким
– Мы должны быть креативными в поиске workarounds
• Быть конструктивным
– Не паниковать!
21. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Интерлюдия: Облачные вычисления
22. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Облака” – это верх технологий?
• До облаков было…
– Грид-вычисления
• https://ru.wikipedia.org/wiki/Грид
– Суперкомпьютеры Connection machine
• https://ru.wikipedia.org/wiki/Connection_Machine
– Векторные суперкомпьютеры
– …
• «Облачные вычисления» означает много различных
вещей:
– Big data
– Ребрендинг Web 2.0
– Utility computing
– Everything as a service
23. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Ребрендинг Web 2.0
• Интерактивные интернет Rich-приложения
– Облако - это сервера, на которых они работают
– AJAX есть де-факто стандарт (хорошо это или
плохо…)
– Примеры: Facebook, YouTube, Gmail, Mail.Ru…
• “Сеть – это большой компьютер”: дайте два!
– Пользовательские данные хранятся “в облаках”
– Расцвет эпохи нетбуков, смартфонов, планшетов
и т.д..
– Браузер – это ОС
24. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Utility computing
• Что?
– Вычислительные ресурсы как сервис (“сколько
использовал, столько и оплати”)
– Возможность динамического предоставления
виртуальных машин
• Зачем?
– Цена: бюджет и оперативные расходы
– Масштабируемость: “бесконечное” кол-во ресурсов
– Эластичность: расширение on demand
• Это имеет смысл?
– Преимущества для пользователей облаков
– Бизнес для облачных провайдеров
25. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Технология: Виртуализация
Hardware
Operating System
App App App
Traditional
Stack
Hardware
OS
App App App
Hypervisor
OS OS
Virtualized Stack
26. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Everything as a Service
• Utility computing = Infrastructure as a Service
(IaaS)
– Зачем покупать сервера когда их можно
арендовать?
– Пример: Amazon’s EC2, Rackspace
• Platform as a Service (PaaS)
– Дай мне удобное API и позаботься об эксплуатации,
апргрейде, расширении, …
– Пример: Google App Engine
• Software as a Service (SaaS)
– Just run it for me!
– Example: Gmail, Salesforce
27. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Зачем все это нужно?
• Готовые для решения Big Data задачи
– Социальные сети, user-generated контент = Big Data
– Пример: предложение друзей в Facebook,
размещение рекламы Google
– Business intelligence: собрать все в data warehouse и
запустить аналитику для понимания выводов
• Utility computing предоставляет:
– Возможность предоставления Hadoop-кластеров по
запросу в облаке
– Меньший порог входа для решения Big Data
проблем
– Продуктовость и демократизация возможностей
работы с Big Data
29. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Divide and Conquer
“Work”
w1 w2 w3
r1 r2 r3
“Result”
worker worker worker
Partition
Combine
30. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Вопросы параллелизма
• Как назначать части work по воркерам?
• А что есть у нас больше частей work чем
воркеров?
• А что если воркерам надо обмениваться
промежуточными результатами?
• Как мы объединяем промежуточные
результаты?
• Как мы узнаем, что все воркеры отработали?
• А что если воркер умрет?
Какая общая проблема объединяет эти вопросы?
31. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Общая проблема
• Проблемы параллелизма возникают из-за:
– Взаимодействия между воркерами (напр., обмен
состояниями)
– Доступ к общим ресурсам (напр., данные)
• Т.о. нам нужен механизм синхронизации
33. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Управление множеством воркеров
• Трудно потому что:
– Мы не знаем порядок, в котором воркеры запускаются
– Мы не знаем, когда воркеры прерывают друг друга
– Мы не знаем, когда воркерам надо обмениваться
промежуточным результатом
– Мы не знаем порядок, в котором воркеры имеют доступ к
общим данным
• Поэтому, нам нужны:
– Семафоры (lock, unlock)
– Conditional variables (wait, notify, broadcast)
– Barriers
• Все равно много проблем:
– Deadlock, livelock, race conditions...
– Dining philosophers, sleeping barbers, cigarette smokers...
• Мораль сей басни: будь осторожен!
34. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Текущие средства
• Программные модели
– Shared memory (pthreads)
– Message passing (MPI)
• Design Patterns
– Master-slaves
– Producer-consumer flows
– Shared work queues
Message Passing
P1 P2 P3 P4 P5
Shared Memory
P1 P2 P3 P4 P5
Memory
master
slaves
producer consumer
producer consumer
work queue
35. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Момент истины
• Concurrency сложная вещь
• Concurrency еще более сложная вещь…
– в рамках работы в нескольких датацентрах
– при наличии отказов
– с точки зрения множества интерактивных сервисов
• И мы еще промолчим про отладку!
• Реальность:
– Множество одноразовых и узкозаточенных решений
– Написание своих специальных библиотек, затем их
использование
– Бремя программиста все это поддерживать
38. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Датацентр - это большой компьютер!
39. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Так в чем же основной вопрос?
• Это все о правильном уровне абстракции
– Переместится поверх архитектуры фон Неймана
– Нам нужны программные модели получше!
• Скрыть детали системного уровня от
разработчиков
– Нет больше race conditions, lock contention и т.д..
• Отделение что от сейчас
– Разработчик определяет те вычисления, которые
надо произвести
– Сам фреймоворк (в “runtime”) обрабатывает процесс
запуска и выполнения вычислений
Датацентр – это компьютер!
40. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Big Ideas”
• Масштабирование “горизонтальное”, не
“вертикальное”
– Ограничения SMP и больших shared-memory машин
• Перенос процесса вычислений к данным
– Кластер имеет ограниченную пропускную
способность
• Последовательная обработка данных, избегать
произвольного доступа
– Seeks дороги, пропускная способность диска вполне
достаточная
• Полная масштабируемость
– От мифического человеко-час к понятному машино-
час
42. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Типичные задачи Big Data
• Пройтись по большому числу записей
• Извлечь что-то интересное из каждой из
записи
• Смешать и отсортировать промежуточные
результаты
• Объединить промежуточные результаты
• Сформировать выходной результат
Ключевая идея: предоставить функциональные
абстракции для этих двух операций
43. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Примеры задач для MapReduce
• В Google:
– Построение индекса в Google Search
– Кластеризация статей для Google News
– Статистический машинный перевод
• В Поиск@Mail.Ru:
– Парсинг скаченных web-страниц
– Поиск дубликатов документов
– Расчет ранков веб-страниц
• В Facebook:
– Задачи Data Mining
– Оптимизация показа рекламы
– Определение спама
44. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
g g g g g
f f f f fMap
Fold
Корни из функционального
программирования
45. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
• Программист определяет две функции:
map (k1, v1) → [<k2, v2>]
reduce (k2, [v2]) → [<k3, v3>]
– Все значения с одинаковым ключом
отправляются на один и тот же reducer
• Всем остальным управляет сам фреймворк…
46. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
mapmap map map
Shuffle and Sort: aggregate values by keys
reduce reduce reduce
k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6
ba 1 2 c c3 6 a c5 2 b c7 8
a 1 5 b 2 7 c 2 3 6 8
r1 s1 r2 s2 r3 s3
47. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
• Программист определяет две функции :
map (k, v) → <k’, v’>*
reduce (k’, v’) → <k’, v’>*
– Все значения с одинаковым ключом
отправляются на один и тот же reducer
• Всем остальным управляет сам фреймворк…
А что такое “всем остальным”?
48. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce “Runtime”
• Управление запуском
– Присваивает воркерам map или reduce таски
• Управление “data distribution”
– Перемещает код к данным
• Управление синхронизацией
– Собирает, сортирует и объединяет
промежуточные данные
• Управление ошибками и отказами
– Определяет отказ воркера и перезапускает таск
• Все работает поверх распределенной FS
(попозже об этом)
49. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
• Программист определяет две функции:
map (k, v) → <k’, v’>*
reduce (k’, v’) → <k’, v’>*
– Все значения с одинаковым ключом отправляются на один и
тот же reducer
• Всем остальным управляет сам фреймворк…
• Не совсем…обычно, программист также определяет:
partition (k’, number of partitions) → partition for k’
– Часто просто хеш от key, напр., hash(k’) mod n
– Разделяет множество ключей для параллельных операций
reduce
combine (k’, v’) → <k’, v’>*
– Мини-reducers которые выполняются в после завершения
фазы map
– Используется в качестве оптимизации для снижения сетевого
трафика на reduce
50. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
combinecombine combine combine
ba 1 2 c 9 a c5 2 b c7 8
partition partition partition partition
mapmap map map
k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6
ba 1 2 c c3 6 a c5 2 b c7 8
Shuffle and Sort: aggregate values by keys
reduce reduce reduce
a 1 5 b 2 7 c 2 9 8
r1 s1 r2 s2 r3 s3
c 2 3 6 8
51. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Еще пара деталей…
• Граница между фазами map и reduce
– Но можно начать копировать промежуточные
данные заранее
• Ключи приходят на каждый reducer в
отсортированном виде
– Но нет общей сортировки между редьюсерами
52. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Hello World”: Word Count
Map(String docid, String text):
for each word w in text:
Emit(w, 1);
Reduce(String term, Iterator<Int> values):
int sum = 0;
for each v in values:
sum += v;
Emit(term, value);
53. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce можно понимать как…
• Программная модель
• Среда (фреймворк) выполнения (aka
“runtime”)
• Спецификация реализации
Использование обычно понятно из контекста!
54. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
split 0
split 1
split 2
split 3
split 4
worker
worker
worker
worker
worker
Master
User
Program
output
file 0
output
file 1
(1) submit
(2) schedule map (2) schedule reduce
(3) read
(4) local write
(5) remote read
(6) write
Input
files
Map
phase
Intermediate files
(on local disk)
Reduce
phase
Output
files
55. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Как же воркеры получают данные?
Compute Nodes
NAS
SAN
Какая тут проблема?
56. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Distributed File System
• Не надо копировать данные к воркерам… надо
отправлять воркеры к данным!
– Сохраняем данные на локальных дисках нод
кластера
– Запускаем воркеры на нодах, где данные локальны
• Зачем?
– Недостаточно RAM чтобы уместить все данные в
памяти
– Доступ к диску медленный, но скорость чтения с
диска приемлемая
• Ответ: распределенная файловая система
– GFS (Google File System) для Google’s MapReduce
– HDFS (Hadoop Distributed File System) для Hadoop
57. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
GFS: Предположения
• Обычное «железо» вместо «экзотики»
– Масштабируем “горизонтально”, а не “вертикально”
• Высокая частота отказа компонентов
– Недорогие компоненты обычного железа постоянно фейлятся
• “Умеренное” кол-во огромных файлов
– Мульти-гигабайтные файлы – обычная ситуация
• Файлы являются write-once, в основном дописываются
или перезаписываются полностью
– Возможно, многопоточно
• Последовательное чтение большого объема данных
вместо произвольного доступа
– Высокая пропускная способность (throughput) вместо
небольшой задержки (latency)
58. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
GFS: Концепция дизайна
• Файлы хранятся в виде чанков (блоков)
– Фиксированный размер (64MB)
• Надежность через репликацию
– Каждый чанк реплицируется на 3 сервера
• Один мастер-процесс координирует доступ, хранит мета-
информацию
– Простое централизованное управление
• Данные не кешируются
– Небольшая польза для больших наборов данных, потоковое
чтение
• Простое API
– Push some of the issues onto the client (e.g., data layout)
HDFS = GFS клон (те же основные идеи)
59. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
От GFS к HDFS
• Различия терминологии:
– GFS master = Hadoop namenode
– GFS chunkservers = Hadoop datanodes
• Отличия:
– Разная consistency model для file appends
– Реализация
– Производительность
В большинстве случаев будем использовать
терминологию Hadoop
60. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
(file name, block id)
(block id, block location)
instructions to datanode
datanode state
(block id, byte range)
block data
HDFS namenode
HDFS datanode
Linux file system
…
HDFS datanode
Linux file system
…
File namespace
/foo/bar
block 3df2
Application
HDFS Client
HDFS Architecture
61. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Обязанности Namenode
• Управление пространством имен файловой
системы:
– Хранить структуру файлов/директорий, метаданные,
маппинг file-to-bloc, права доступа и т.д.
• Координирование файловых операций:
– Направлять клиентов на датаноды для чтения и
записи
– Данные не проходят через namenode
• Поддерживать общее состояние системы:
– Периодические обращения к датанодам
– Дорепликация блоков и перебалансировка
– Сборка мусора
62. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Теперь соберем все вместе…
datanode daemon
Linux file system
…
tasktracker
slave node
datanode daemon
Linux file system
…
tasktracker
slave node
datanode daemon
Linux file system
…
tasktracker
slave node
namenode
namenode daemon
job submission node
jobtracker
(Не совсем… Позже поговорим про YARN)