SlideShare a Scribd company logo
YARN
Павел Мезенцев
Руководитель отдела банка Тинькофф
pavel@mezentsev.org
История версий hadoop
История версий hadoop
● 2004 MapReduce: Simplified Data
Processing on Large Clusters
История версий hadoop
● 2004 MapReduce: Simplified Data
Processing on Large Clusters
● 2005 Начало разработки Hadoop
История версий hadoop
● 2004 MapReduce: Simplified Data
Processing on Large Clusters
● 2005 Начало разработки Hadoop
● 2007 Передача в ASF
История версий hadoop
● 2004 MapReduce: Simplified Data
Processing on Large Clusters
● 2005 Начало разработки Hadoop
● 2007 Передача в ASF
● 2009 Версия 0.20
История версий hadoop
● 2004 MapReduce: Simplified Data
Processing on Large Clusters
● 2005 Начало разработки Hadoop
● 2007 Передача в ASF
● 2009 Версия 0.20
● 2011 Версия 1.0
История версий hadoop
● 2004 MapReduce: Simplified Data
Processing on Large Clusters
● 2005 Начало разработки Hadoop
● 2007 Передача в ASF
● 2009 Версия 0.20
● 2011 Версия 1.0
● 2013 Версия 2.2
План
• hadoop 1.0
• YARN
• Приложения на YARN
• Планировщики
• Развитие YARN
План
• hadoop 1.0
• YARN
• Приложения на YARN
• Планировщики
• Развитие YARN
Недостатки ?
Недостатки ?
1. только mapReduce
Недостатки ?
1. только mapReduce
2. неполное использование ресурсов
Недостатки ?
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
Недостатки ?
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Решение Google
Решение Google
MapReduce: Simplified Data
Processing on Large Clusters
Jeffrey Dean and Sanjay Ghemawat. 2004
Решение Google
● One of the copies of the program is special - the– master. The
rest are workers that are assigned work by the master. ... The
master picks idle workers and assigns each one a map task or
a reduce task.
Решение Google
● One of the copies of the program is special - the master. The rest
are workers that are assigned work by the master. ... The master
picks idle workers and assigns each one a map task or a
reduce task.
● .... The locations of ... pairs on the local disk are passed back to
the master, who is responsible for forwarding these locations to
the reduce workers.
Решение Google
● One of the copies of the program is special - the– master. The
rest are workers that are assigned work by the master. ... The
master picks idle workers and assigns each one a map task or
a reduce task.
● .... The locations of ... pairs on the local disk are passed back to
the master, who is responsible for forwarding these locations to
the reduce workers.
● When a reduce worker is notified by the master about these
locations, it uses remote procedure calls to read the buffered
data from the local disks of the map workers
Решение Google
● One of the copies of the program is special - the– master. The
rest are workers that are assigned work by the master. ... The
master picks idle workers and assigns each one a map task or
a reduce task.
● .... The locations of ... pairs on the local disk are passed back to
the master, who is responsible for forwarding these locations to
the reduce workers.
● When a reduce worker is notified by the master about these
locations, it uses remote procedure calls to read the buffered
data from the local disks of the map workers
● When all map tasks and reduce tasks have been completed, the
master wakes up the user program.
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure?
Решение Facebook
Решение Facebook
● Кластер на 100 Pb
Решение Facebook
● Кластер на 100 Pb
● 0.5 Pb в день новых данных
Решение Facebook
● Кластер на 100 Pb
● 0.5 Pb в день новых данных
● 60 000 джобов в день
Решение Facebook
● Кластер на 100 Pb
● 0.5 Pb в день новых данных
● 60 000 джобов в день
● Corona
Решение Facebook
● Кластер на 100 Pb
● 0.5 Pb в день новых данных
● 60 000 джобов в день
● Corona
● Выложено в open source
https://github.com/facebookarchive/hadoop-20/tree/master/src/
contrib/corona
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
План
• hadoop 1.0
• YARN
• Приложения на YARN
• Планировщики
• Развитие YARN
YARN
Yet Another Resource Negotiator
YARN
Yet Another Resource Negotiator
Еще один переговорщик о ресурсах
25й слайд
Нельзя просто так взять
и договориться о ресурсах
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Устранение недостатков
1. только mapReduce
2. неполное использование ресурсов
3. job tracker — узкое место
4. single point of failure
Resource Manager UI
Resource Manager UI
Resource Manager UI
Resource Manager UI
Resource Manager UI
Resource Manager UI
План
• hadoop 1.0
• YARN
• Работа приложений на YARN
• Планировщики
• Yarn High Availability
• Roadmap
Distributed shell
hadoop
org.apache.hadoop.yarn.applications.distributedshell.Client 
-debug 
-shell_command find 
-shell_args '`pwd`' 
-jar ${HADOOP_HOME}/share/hadoop/yarn/*distributedshell-
*.jar 
-container_memory 350 
-master_memory 350 
-num_containers 3
А где же результат?
А где же результат?
А где же результат?
А где же результат?
А где же результат?
А где же результат?
yarn.log-aggregation-enable=true
А где же результат?
yarn.log-aggregation-enable=true
А где же результат?
● Через yarn cli
yarn logs -applicationId 
application_1388248867335_0003
● Через hdfs
/tmp/logs/yarn/user/. 
./application/container
mapReduce на YARN
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
Большинство настроек устарело
Совместимость с mr1
● на уровне кода
да
● на бинарном уровне
да
● на уровне скриптов
hadoop job …
да
● на уровне конфигурации
большинство настроек устарело
mapReduce uber job
mapReduce uber job
● Маленькая задача может выполняться
целиком в контейнере application master
mapReduce uber job
● Маленькая задача может выполняться
целиком в контейнере application master
mapreduce.job.ubertask.enable=true
mapReduce uber job
● Маленькая задача может выполняться
целиком в контейнере application master
mapreduce.job.ubertask.enable=true
● Ограничения на объем мапперов и
размер данных выставляются в конфиге
mapReduce uber job
● Маленькая задача может выполняться
целиком в контейнере application master
mapreduce.job.ubertask.enable=true
● Ограничения на объем мапперов и
размер данных выставляются в конфиге
● Не более 1го редьюсера
MPI
● Требуется библиотека mpich2-yarn
● Пример запуска
hadoop --config ./conf 
jar target/mpich2-yarn-1.0-SNAPSHOT.jar 
-a mpi_example 
-M 1024 
-m 1024 
-n 2
Интерактивные вычисления
● Spark
● Команда запуска
pyspark --master yarn --num-executors 3
Долгоживущие сервисы
Долгоживущие сервисы
● hBase на yarn
Долгоживущие сервисы
● hBase на yarn
● Apache Slider
Real time вычисления
Real time вычисления
● Apache Storm
Типы YARN приложений
Типы YARN приложений
Приложение на задачу
Типы YARN приложений
Приложение на задачу
● MPI
● MapReduce
Типы YARN приложений
Приложение на задачу
● MPI
● MapReduce
Приложение на сессию
Типы YARN приложений
Приложение на задачу
● MPI
● MapReduce
Приложение на сессию
● Spark Shell
● Impala
Типы YARN приложений
Приложение на задачу
● MPI
● MapReduce
Приложение на сессию
● Spark Shell
● Impala
Приложение на сервис
Типы YARN приложений
Приложение на задачу
● MPI
● MapReduce
Приложение на сессию
● Spark Shell
● Impala
Приложение на сервис
● Hoya
● Spark Streaming
План
• hadoop 1.0
• YARN
• Приложения на YARN
• Планировщики
• Развитие YARN
Планирование задач
Планирование задач
Планирование задач
FIFO scheduler
Capacity scheduler
Fair scheduler
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 гб 3% 2 cores 2%
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 2 cores
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 3% 2 cores 2%
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 3% 2 cores 2%
Контейнеры
приложения B
1 Gb 6 cores
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 3% 2 cores 2%
Контейнеры
приложения B
1 Gb 1% 6 cores 6%
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 3% 2 cores 2%
Контейнеры
приложения B
1 Gb 1% 6 cores 6%
Dominant resource fairness
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 3% 2 cores 2%
Контейнеры
приложения B
1 Gb 1% 6 cores 6%
Dominant resource fairness
приложение A получит в 2 раза больше контейнеров
Кластер 100 Gb 100 Cores
Контейнеры
приложения А
3 Gb 3% 2 cores 2%
Контейнеры
приложения B
1 Gb 1% 6 cores 6%
Preemption
Preemption
Preemption
Preemption
Preemption
Preemption
План
• hadoop 1.0
• YARN
• Приложения на YARN
• Планировщики
• Развитие YARN
Новые фичи YARN
● окт 13 hadoop 2.2
● фев 14 hadoop 2.3
● апр 14 hadoop 2.4
● авг 14 hadoop 2.5
● ноя 14 hadoop 2.6
● апр 15 hadoop 2.7
● ~лето 15 hadoop 2.8
● ~конец 15 hadoop 3.0
hadoop 2.3
hadoop 2.3
Deploy MR through HDFS & Distributed Cache
- Можно запускать разные версии mapReduce,
в том числе кастомные
- Rolling Ugrade не блокируется mapReduce
задачами
hadoop 2.3
Deploy MR through HDFS & Distributed Cache
- Можно запускать разные версии mapReduce,
в том числе кастомные
- Rolling Ugrade не блокируется mapReduce
задачами
hadoop 2.3
Deploy MR through HDFS & Distributed Cache
- Можно запускать разные версии mapReduce,
в том числе кастомные
- Rolling Ugrade не блокируется mapReduce
задачами
hadoop 2.4
hadoop 2.4
Resource Manager Automatic Failover
hadoop 2.5
hadoop 2.5
RM writable Webservices
- До этого через REST API можно было лишь получить
метрики кластера
- Теперь можно сабмитить приложения на кластер
- Убивать приложения
hadoop 2.6
hadoop 2.6
Rolling upgrades in YARN
Безотказная перезагрузка
NodeManager
Безотказная перезагрузка
NodeManager
Безотказная перезагрузка
NodeManager
Безотказная перезагрузка
NodeManager
Безотказная перезагрузка
ResourceManager
Через Resource Manager High Availability
hadoop 2.6
Support for long-running services on YARN
hadoop 2.6
Support for admin-specified labels in YARN
hadoop 2.6
Support for Docker containers in YARN
hadoop 2.7
hadoop 2.7
Support disk as a resource in YARN for scheduling and isolation
hadoop 2.7
Support disk as a resource in YARN
hadoop 2.7
Support disk as a resource in YARN
hadoop 2.7
Support disk as a resource in YARN
hadoop 2.7
Dynamic Resource Configuration
Изменение доступной памяти и
процессоров без перезагрузки
hadoop 2.7
Support NodeGroup layer topology on YARN
hadoop 2.7
Support NodeGroup layer topology on YARN
hadoop 2.8
hadoop 2.8
Disk and network isolation in YARN
Вопросы?

More Related Content

Similar to Yarn

Мониторинг, когда не тестируешь
Мониторинг, когда не тестируешьМониторинг, когда не тестируешь
Мониторинг, когда не тестируешь
Uptime Community
 
Мониторинг, когда не тестируешь
Мониторинг, когда не тестируешьМониторинг, когда не тестируешь
Мониторинг, когда не тестируешь
Uptime community
 
Мониторинг, когда не тестируешь
Мониторинг, когда не тестируешьМониторинг, когда не тестируешь
Мониторинг, когда не тестируешь
Ivan Kruglov
 
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
Roman Brovko
 
DevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компанииDevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компании
Alexey Vakhov
 
Введение в реактивный .NET
Введение в реактивный .NETВведение в реактивный .NET
Введение в реактивный .NET
DotNetConf
 
Ryazan
RyazanRyazan
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
Alex Chistyakov
 
Multilangaunguage Drupal
Multilangaunguage DrupalMultilangaunguage Drupal
Multilangaunguage DrupalInna Tuyeva
 

Similar to Yarn (9)

Мониторинг, когда не тестируешь
Мониторинг, когда не тестируешьМониторинг, когда не тестируешь
Мониторинг, когда не тестируешь
 
Мониторинг, когда не тестируешь
Мониторинг, когда не тестируешьМониторинг, когда не тестируешь
Мониторинг, когда не тестируешь
 
Мониторинг, когда не тестируешь
Мониторинг, когда не тестируешьМониторинг, когда не тестируешь
Мониторинг, когда не тестируешь
 
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
 
DevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компанииDevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компании
 
Введение в реактивный .NET
Введение в реактивный .NETВведение в реактивный .NET
Введение в реактивный .NET
 
Ryazan
RyazanRyazan
Ryazan
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
 
Multilangaunguage Drupal
Multilangaunguage DrupalMultilangaunguage Drupal
Multilangaunguage Drupal
 

Yarn