Введение
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 и хранилищем объектов, а также с принципами их работы
- Представление о том, что такое распределенное программирование и почему оно подходит для облачной среды
Ссылки
- J. Dean and S. Ghemawat (Dec. 2004). MapReduce: Simplified Data Processing on Large Clusters OSDI
- 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
- 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)
- Hadoop
- 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
- 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
- M. Hammoud and M. F. Sakr (2011). Locality-Aware Reduce Task Scheduling for MapReduce CloudCom
- M. Zaharia, A. Konwinski, A. Joseph, R. Katz, and I. Stoica (2008). Improving MapReduce Performance in Heterogeneous Environments OSDI