Введение

Завершено

MapReduce — это платформа с параллельными данными, созданная корпорацией Google1 для обработки приложений с большими данными на больших наборах компьютеров. Система пытается сократить межпроцессное взаимодействие путем перемещения вычислений к данным. Она также прозрачно устойчива к ошибкам данных и вычислений, которые часто возникают в крупномасштабных облачных средах. Таким образом, разработчики могут использовать MapReduce благодаря его масштабируемости, отказоустойчивости и эластичности. Сейчас существует множество реализаций модели программирования MapReduce, доступных пользователям в облаке, многие из которых используют Apache Hadoop.

С момента выпуска MapReduce часто связывают с Hadoop3, 4 реализацией MapReduce с открытым исходным кодом. Учебные, правительственные и промышленные применения Hadoop набирают популярность2. Например, Yahoo! использует его приблизительно для 80–90 % заданий5. Другие, такие как Facebook и Майкрософт, также предпочитают эту платформу.6 Academia в настоящее время использует Hadoop для симуляции сейсмической активности, обработки естественного языка, интеллектуального анализа данных, а также для других применений.7, 8

Hadoop MapReduce выполняет большую часть работы по реализации облачных программ с помощью трех основных стратегий:

  • Он автоматически разбивает задания на распределенные задачи, чтобы эффективно использовать параллелизм задач.
  • Он учитывает расположение данных и вариации в общих рабочих нагрузках системы для эффективного планирования заданий и задач на участвующих узлах кластера.
  • Он прозрачно отрабатывает сбои данных и задач.

Цели обучения

Изучив этот модуль, вы сможете:

  • Какая модель распределенного программирования лежит в основе MapReduce.
  • Как MapReduce использует параллелизм данных.
  • Какие входные и выходные данные связаны с задачами map и reduce.
  • Что такое эластичность задач и почему она важна для эффективного планирования заданий.
  • Как работают стратегии планирования задач map и reduce в Hadoop MapReduce.
  • Из каких элементов состоит архитектура YARN и какова роль каждого элемента.
  • Общие сведения о жизненном цикле задания MapReduce в YARN.
  • Сравнение архитектур и распределителей ресурсов YARN и предыдущей версии Hadoop MapReduce.
  • Чем планирование заданий и задач отличается в YARN и предыдущей версии Hadoop MapReduce.

Необходимые компоненты

  • Понимание темы облачных вычислений, в том числе знакомство с моделями и некоторыми поставщиками облачных служб.
  • Знание технологий, лежащих в основе облачных вычислений.
  • Представление о том, как поставщики облачных служб управляют оплатой и выставлением счетов за использование облака.
  • Знание понятия центров обработки данных и их назначения.
  • Знания в области настройки, поддержки и подготовки центров обработки данных.
  • Представление о том, как подготавливаются и измеряются облачные ресурсы.
  • Знакомство с понятием виртуализации.
  • Знание различных типов виртуализации.
  • Представление о виртуализации ЦП.
  • Представление о виртуализации памяти.
  • Представление о виртуализации ввода-вывода.
  • Знания различных типов данных и об их хранении
  • Знакомство с распределенными файловыми системами и принципами их работы.
  • Знакомство с базами данных NoSQL и хранилищем объектов, а также с принципами их работы
  • Представление о том, что такое распределенное программирование и почему оно подходит для облачной среды


Ссылки

  1. J. Dean and S. Ghemawat (Dec. 2004). MapReduce: Simplified Data Processing on Large Clusters OSDI
  2. H. Herodotou, H. Lim, G. Luo, N. Borisov, L. Dong, F. B. Cetin, and S. Babu (2011). Starfish: A Self-Tuning System for Big Data Analytics CIDR
  3. Z. Fadika and M. Govindaraju (Dec. 2010). LEMO-MR: Low Overhead and Elastic MapReduce Implementation Optimized for Memory and CPU-Intensive Applications IEEE 2nd Int. Conf. on Cloud Computing Technology and Science (CloudCom)
  4. Hadoop
  5. N. B. Rizvandi, A. Y. Zomaya, A. J. Boloori, and J. Taheri (2011). Preliminary Results: Modeling Relation between Total Execution Time of MapReduce Applications and Number of Mappers/Reducers Tech. R. 679, The University of Sydney
  6. S. Ibrahim, H. Jin, L. Lu, S. Wu, B. He, and L. Qi (Dec. 2010). LEEN: Locality/Fairness-Aware Key Partitioning for MapReduce in the Cloud CloudCom
  7. M. Hammoud and M. F. Sakr (2011). Locality-Aware Reduce Task Scheduling for MapReduce CloudCom
  8. M. Zaharia, A. Konwinski, A. Joseph, R. Katz, and I. Stoica (2008). Improving MapReduce Performance in Heterogeneous Environments OSDI