Курс "Хранение и Обработка больших данны". Лекция...

Preview:

Citation preview

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 High Availability

• Roadmap

План лекции

• Архитектура hadoop 1.0

• Архитектура YARN

• Работа приложений на YARN

• Планировщики

• Yarn High Availability

• Roadmap

Недостатки ?

Недостатки ?

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 High Availability

• Roadmap

YARNYet Another Resource Negotiator

YARNYet 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 shellhadoop

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 cliyarn 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 mastermapreduce.job.ubertask.enable=true

mapReduce uber job

● Маленькая задача может выполняться целиком в контейнере application mastermapreduce.job.ubertask.enable=true

● Ограничения на объем мапперов и размер данных выставляются в конфиге

mapReduce uber job

● Маленькая задача может выполняться целиком в контейнере application mastermapreduce.job.ubertask.enable=true

● Ограничения на объем мапперов и размер данных выставляются в конфиге

● Не более 1го редьюсера

Что еще можно запускать?

● MPI● Интерактивные spark● Adhoc запросы impala● Реал тайм обработчики storm● Сервисы

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

Data operating system

План лекции

• Архитектура hadoop 1.0

• Архитектура YARN

• Работа приложений на YARN

• Планировщики

• Yarn High Availability

• Roadmap

Планирование задач

Планирование задач

Планирование задач

FIFO scheduler

Capacity scheduler

Fair scheduler

Очереди

Очереди

● Распределение ресурсов происходит

между очередями

Очереди

● Распределение ресурсов происходит

между очередями

● По умолчанию имя очереди =

имени пользователя

Очереди

● Распределение ресурсов происходит

между очередями

● По умолчанию имя очереди =

имени пользователя

● У очередей есть веса

Очереди

● Распределение ресурсов происходит

между очередями

● По умолчанию имя очереди =

имени пользователя

● У очередей есть веса

● Дочерние очереди

Очереди

● Распределение ресурсов происходит

между очередями

● По умолчанию имя очереди =

имени пользователя

● У очередей есть веса

● Дочерние очереди

root.dev => root.dev.science

Очереди

● Если в одной очереди 2 задачи?

Очереди

● Если в одной очереди 2 задачи?

● fifo

Очереди

● Если в одной очереди 2 задачи?

● fifo

● fair

Очереди

● Если в одной очереди 2 задачи?

● fifo

● fair

● drf

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

Delay● Для map задач требуется data locality

Delay● Для map задач требуется data locality

● Что лучше?

Delay● Для map задач требуется data locality

● Что лучше?

● Запустить сейчас на свободной машине

Delay● Для map задач требуется data locality

● Что лучше?

● Запустить сейчас на свободной машине

● Ждать место на машине с данными

Delay● Для map задач требуется data locality

● Что лучше?

● Запустить сейчас на свободной машине

● Ждать место на машине с данными

● Ждет пока заданный процент машин

не пришлет сообщение о готовности

Delay● Для map задач требуется data locality

● Что лучше?

● Запустить сейчас на свободной машине

● Ждать место на машине с данными

● Ждет пока заданный процент машин

не пришлет сообщение о готовности

● По умолчанию 50% машин кластера

План лекции

• Архитектура hadoop 1.0

• Архитектура YARN

• Работа приложений на YARN

• Планировщики

• Yarn High Availability

• Roadmap

Как защититься от падения Resource Manager

● High Availability!● Появилось в Hadoop 2.4

План лекции

• Архитектура hadoop 1.0

• Архитектура YARN

• Работа приложений на YARN

• Планировщики

• Yarn High Availability

• Roadmap

ROADMAP

ROADMAP

● Накатываемые апгрейды

ROADMAP

● Накатываемые апгрейды● Поддержка Docker контейнеров

ROADMAP

● Накатываемые апгрейды● Поддержка Docker контейнеров● Диск как ресурс

ROADMAP

● Накатываемые апгрейды● Поддержка Docker контейнеров● Диск как ресурс● Конфигурируемая топология

ROADMAP

● Накатываемые апгрейды● Поддержка Docker контейнеров● Диск как ресурс● Конфигурируемая топология● Планирование по лейблам

Recommended