Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

Содержание:
- архитектура hadoop 1
- архитектура YARN
- работа приложений в YARN
- планировщики выполнения
- higt availability
- roadmap

  • Login to see the comments

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

  1. 1. YARN Павел Мезенцев Руководитель отдела банка Тинькофф pavel@mezentsev.org
  2. 2. История версий hadoop
  3. 3. История версий hadoop ● 2004 MapReduce: Simplified Data Processing on Large Clusters
  4. 4. История версий hadoop ● 2004 MapReduce: Simplified Data Processing on Large Clusters ● 2005 Начало разработки Hadoop
  5. 5. История версий hadoop ● 2004 MapReduce: Simplified Data Processing on Large Clusters ● 2005 Начало разработки Hadoop ● 2007 Передача в ASF
  6. 6. История версий hadoop ● 2004 MapReduce: Simplified Data Processing on Large Clusters ● 2005 Начало разработки Hadoop ● 2007 Передача в ASF ● 2009 Версия 0.20
  7. 7. История версий hadoop ● 2004 MapReduce: Simplified Data Processing on Large Clusters ● 2005 Начало разработки Hadoop ● 2007 Передача в ASF ● 2009 Версия 0.20 ● 2011 Версия 1.0
  8. 8. История версий hadoop ● 2004 MapReduce: Simplified Data Processing on Large Clusters ● 2005 Начало разработки Hadoop ● 2007 Передача в ASF ● 2009 Версия 0.20 ● 2011 Версия 1.0 ● 2013 Версия 2.2
  9. 9. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  10. 10. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  11. 11. Недостатки ?
  12. 12. Недостатки ? 1. только mapReduce
  13. 13. Недостатки ? 1. только mapReduce 2. неполное использование ресурсов
  14. 14. Недостатки ? 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место
  15. 15. Недостатки ? 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  16. 16. Решение Google
  17. 17. Решение Google MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat. 2004
  18. 18. Решение 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.
  19. 19. Решение 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.
  20. 20. Решение 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
  21. 21. Решение 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.
  22. 22. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  23. 23. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  24. 24. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  25. 25. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  26. 26. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure?
  27. 27. Решение Facebook
  28. 28. Решение Facebook ● Кластер на 100 Pb
  29. 29. Решение Facebook ● Кластер на 100 Pb ● 0.5 Pb в день новых данных
  30. 30. Решение Facebook ● Кластер на 100 Pb ● 0.5 Pb в день новых данных ● 60 000 джобов в день
  31. 31. Решение Facebook ● Кластер на 100 Pb ● 0.5 Pb в день новых данных ● 60 000 джобов в день ● Corona
  32. 32. Решение Facebook ● Кластер на 100 Pb ● 0.5 Pb в день новых данных ● 60 000 джобов в день ● Corona ● Выложено в open source https://github.com/facebookarchive/hadoop-20/tree/master/src/ contrib/corona
  33. 33. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  34. 34. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  35. 35. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  36. 36. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  37. 37. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  38. 38. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  39. 39. YARN Yet Another Resource Negotiator
  40. 40. YARN Yet Another Resource Negotiator Еще один переговорщик о ресурсах
  41. 41. 25й слайд Нельзя просто так взять и договориться о ресурсах
  42. 42. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  43. 43. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  44. 44. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  45. 45. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  46. 46. Устранение недостатков 1. только mapReduce 2. неполное использование ресурсов 3. job tracker — узкое место 4. single point of failure
  47. 47. Resource Manager UI
  48. 48. Resource Manager UI
  49. 49. Resource Manager UI
  50. 50. Resource Manager UI
  51. 51. Resource Manager UI
  52. 52. Resource Manager UI
  53. 53. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  54. 54. 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
  55. 55. А где же результат?
  56. 56. А где же результат?
  57. 57. А где же результат?
  58. 58. А где же результат?
  59. 59. А где же результат?
  60. 60. А где же результат? yarn.log-aggregation-enable=true
  61. 61. А где же результат? yarn.log-aggregation-enable=true
  62. 62. А где же результат? ● Через yarn cli yarn logs -applicationId application_1388248867335_0003 ● Через hdfs /tmp/logs/yarn/user/. ./application/container
  63. 63. mapReduce на YARN
  64. 64. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  65. 65. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  66. 66. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  67. 67. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  68. 68. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  69. 69. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  70. 70. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  71. 71. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации Большинство настроек устарело
  72. 72. Совместимость с mr1 ● на уровне кода да ● на бинарном уровне да ● на уровне скриптов hadoop job … да ● на уровне конфигурации большинство настроек устарело
  73. 73. mapReduce uber job
  74. 74. mapReduce uber job ● Маленькая задача может выполняться целиком в контейнере application master
  75. 75. mapReduce uber job ● Маленькая задача может выполняться целиком в контейнере application master mapreduce.job.ubertask.enable=true
  76. 76. mapReduce uber job ● Маленькая задача может выполняться целиком в контейнере application master mapreduce.job.ubertask.enable=true ● Ограничения на объем мапперов и размер данных выставляются в конфиге
  77. 77. mapReduce uber job ● Маленькая задача может выполняться целиком в контейнере application master mapreduce.job.ubertask.enable=true ● Ограничения на объем мапперов и размер данных выставляются в конфиге ● Не более 1го редьюсера
  78. 78. Что еще можно запускать? ● MPI ● Интерактивные spark ● Adhoc запросы impala ● Реал тайм обработчики storm ● Сервисы
  79. 79. MPI ● Требуется библиотека mpich2-yarn ● Пример запуска hadoop --config ./conf jar target/mpich2-yarn-1.0-SNAPSHOT.jar -a mpi_example -M 1024 -m 1024 -n 2
  80. 80. Интерактивные вычисления ● Spark ● Команда запуска pyspark --master yarn --num-executors 3
  81. 81. Долгоживущие сервисы
  82. 82. Долгоживущие сервисы ● hBase на yarn
  83. 83. Долгоживущие сервисы ● hBase на yarn ● Apache Slider
  84. 84. Real time вычисления
  85. 85. Real time вычисления ● Apache Storm
  86. 86. Data operating system
  87. 87. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  88. 88. Планирование задач
  89. 89. Планирование задач
  90. 90. Планирование задач
  91. 91. FIFO scheduler
  92. 92. Capacity scheduler
  93. 93. Fair scheduler
  94. 94. Очереди
  95. 95. Очереди ● Распределение ресурсов происходит между очередями
  96. 96. Очереди ● Распределение ресурсов происходит между очередями ● По умолчанию имя очереди = имени пользователя
  97. 97. Очереди ● Распределение ресурсов происходит между очередями ● По умолчанию имя очереди = имени пользователя ● У очередей есть веса
  98. 98. Очереди ● Распределение ресурсов происходит между очередями ● По умолчанию имя очереди = имени пользователя ● У очередей есть веса ● Дочерние очереди
  99. 99. Очереди ● Распределение ресурсов происходит между очередями ● По умолчанию имя очереди = имени пользователя ● У очередей есть веса ● Дочерние очереди root.dev => root.dev.science
  100. 100. Очереди ● Если в одной очереди 2 задачи?
  101. 101. Очереди ● Если в одной очереди 2 задачи? ● fifo
  102. 102. Очереди ● Если в одной очереди 2 задачи? ● fifo ● fair
  103. 103. Очереди ● Если в одной очереди 2 задачи? ● fifo ● fair ● drf
  104. 104. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 гб 3% 2 cores 2%
  105. 105. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 2 cores
  106. 106. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 3% 2 cores 2%
  107. 107. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 3% 2 cores 2% Контейнеры приложения B 1 Gb 6 cores
  108. 108. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 3% 2 cores 2% Контейнеры приложения B 1 Gb 1% 6 cores 6%
  109. 109. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 3% 2 cores 2% Контейнеры приложения B 1 Gb 1% 6 cores 6%
  110. 110. Dominant resource fairness Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 3% 2 cores 2% Контейнеры приложения B 1 Gb 1% 6 cores 6%
  111. 111. Dominant resource fairness приложение A получит в 2 раза больше контейнеров Кластер 100 Gb 100 Cores Контейнеры приложения А 3 Gb 3% 2 cores 2% Контейнеры приложения B 1 Gb 1% 6 cores 6%
  112. 112. Preemption
  113. 113. Preemption
  114. 114. Preemption
  115. 115. Preemption
  116. 116. Preemption
  117. 117. Preemption
  118. 118. Delay ● Для map задач требуется data locality
  119. 119. Delay ● Для map задач требуется data locality ● Что лучше?
  120. 120. Delay ● Для map задач требуется data locality ● Что лучше? ● Запустить сейчас на свободной машине
  121. 121. Delay ● Для map задач требуется data locality ● Что лучше? ● Запустить сейчас на свободной машине ● Ждать место на машине с данными
  122. 122. Delay ● Для map задач требуется data locality ● Что лучше? ● Запустить сейчас на свободной машине ● Ждать место на машине с данными ● Ждет пока заданный процент машин не пришлет сообщение о готовности
  123. 123. Delay ● Для map задач требуется data locality ● Что лучше? ● Запустить сейчас на свободной машине ● Ждать место на машине с данными ● Ждет пока заданный процент машин не пришлет сообщение о готовности ● По умолчанию 50% машин кластера
  124. 124. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  125. 125. Как защититься от падения Resource Manager ● High Availability! ● Появилось в Hadoop 2.4
  126. 126. План лекции • Архитектура hadoop 1.0 • Архитектура YARN • Работа приложений на YARN • Планировщики • Yarn High Availability • Roadmap
  127. 127. ROADMAP
  128. 128. ROADMAP ● Накатываемые апгрейды
  129. 129. ROADMAP ● Накатываемые апгрейды ● Поддержка Docker контейнеров
  130. 130. ROADMAP ● Накатываемые апгрейды ● Поддержка Docker контейнеров ● Диск как ресурс
  131. 131. ROADMAP ● Накатываемые апгрейды ● Поддержка Docker контейнеров ● Диск как ресурс ● Конфигурируемая топология
  132. 132. ROADMAP ● Накатываемые апгрейды ● Поддержка Docker контейнеров ● Диск как ресурс ● Конфигурируемая топология ● Планирование по лейблам

×