Upload
pavel-mezentsev
View
661
Download
0
Embed Size (px)
Citation preview
История версий 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 контейнеров● Диск как ресурс● Конфигурируемая топология● Планирование по лейблам