Apache Hadoop Презентацию подготовил Иван Блинков
История развития проектов Apache Software Foundation Tomcat
Hadoop - это... <ul><li>платформа для построения распределенных приложений, реализованная на Java. </li></ul><ul><li>Основ...
Компоненты Hadoop <ul><li>MapReduce Framework </li></ul><ul><li>HBase </li></ul><ul><li>HDFS </li></ul>
HDFS = Hadoop Distributed File System <ul><li>Она разрабатывалась с учетом: </li></ul><ul><ul><li>потенциальных сбоев в об...
Архитектура HDFS Блоки данных Datanodes (узлы данных ) Datanodes (узлы данных ) Rack 1 (группа узлов) Rack 2 (группа узлов...
HBase представляет собой... <ul><li>систему структурированного хранения данных на базе HDFS. Основные ее особенности: </li...
HBase  не  является... <ul><li>традиционной SQL базой данных: </li></ul><ul><ul><li>никаких операций JOIN; </li></ul></ul>...
Традиционные СУБД столбцы строки
HBase столбцы строки
HBase строки столбцы время
Традиционные СУБД значения не указаны NULL NULL
HBase значения не указаны
Логически Физически HRegion (Tablet)
HRegion HRegion ограничение по объему
HRegion HRegion ограничение по объему
HRegion HRegion
Архитектура HBase HRegion Server HRegion Server HRegion HRegion HRegion Server HRegion Server HRegion HRegion Операции с д...
MapReduce Framework <ul><li>MapReduce представляет собой модель проведения распределенных вычислений. </li></ul><ul><li>Ha...
Входные данные Часть 1 Часть 2 . . . . . .  . . . . . . Часть N map() map() map() map() reduce() reduce() reduce() reduce(...
При необходимости: перераспределение и сортировка Входные данные Часть 1 Часть 2 . . . . . .  . . . . . . Часть N map() ma...
С точки зрения разработчика <ul><li>Для построения MapReduce приложения достаточно лишь разработать несколько функций: </l...
Подведем черту <ul><li>Использование данной платформы позволяет: </li></ul><ul><ul><li>избежать изобретения массы «велосип...
Ложка дегтя <ul><li>Но ситуация на самом деле не настолько радужна: </li></ul><ul><ul><li>в системе присутствует несколько...
Спасибо за внимание! Остались вопросы?
Upcoming SlideShare
Loading in...5
×

Apache Hadoop

5,292

Published on

Автор: Иван Блинков
http://www.insight-it.ru

Актуально на 1 июня 2008г.

Published in: Technology, Education
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,292
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "Apache Hadoop"

  1. 1. Apache Hadoop Презентацию подготовил Иван Блинков
  2. 2. История развития проектов Apache Software Foundation Tomcat
  3. 3. Hadoop - это... <ul><li>платформа для построения распределенных приложений, реализованная на Java. </li></ul><ul><li>Основные ее положительные стороны: </li></ul><ul><ul><li>масштабируемость; </li></ul></ul><ul><ul><li>экономичность; </li></ul></ul><ul><ul><li>эффективность; </li></ul></ul><ul><ul><li>надежность; </li></ul></ul><ul><ul><li>кроссплатформенность. </li></ul></ul>
  4. 4. Компоненты Hadoop <ul><li>MapReduce Framework </li></ul><ul><li>HBase </li></ul><ul><li>HDFS </li></ul>
  5. 5. HDFS = Hadoop Distributed File System <ul><li>Она разрабатывалась с учетом: </li></ul><ul><ul><li>потенциальных сбоев в оборудовании; </li></ul></ul><ul><ul><li>работоспособности на обычном оборудовании; </li></ul></ul><ul><ul><li>предоставления высокоскоростного потокового доступа к данным; </li></ul></ul><ul><ul><li>предстоящей работы с большими файлами; </li></ul></ul><ul><ul><li>простой модели работы с данными: write once, read many; </li></ul></ul><ul><ul><li>того, что переместить вычисления проще, чем переместить данные. </li></ul></ul>
  6. 6. Архитектура HDFS Блоки данных Datanodes (узлы данных ) Datanodes (узлы данных ) Rack 1 (группа узлов) Rack 2 (группа узлов) Репликация Чтение Операции с метаданными Операции с блоками Запись Namenode (узел имен) Клиент Метаданные (имя, копии, ...): /home/foo/bar, 3, ... Клиент
  7. 7. HBase представляет собой... <ul><li>систему структурированного хранения данных на базе HDFS. Основные ее особенности: </li></ul><ul><ul><li>данные хранятся в виде обычных таблиц; </li></ul></ul><ul><ul><li>физически данные расположены по столбцам; </li></ul></ul><ul><ul><li>несколько записей могут одновременно находиться в одной ячейке таблицы; </li></ul></ul><ul><ul><li>незаполненные ячейки таблиц отсутствуют; </li></ul></ul><ul><ul><li>специальный язык запросов HQL. </li></ul></ul><ul><ul><li>предоставляются API: Java, Jython, REST, Thrift. </li></ul></ul>
  8. 8. HBase не является... <ul><li>традиционной SQL базой данных: </li></ul><ul><ul><li>никаких операций JOIN; </li></ul></ul><ul><ul><li>никаких транзакций; </li></ul></ul><ul><ul><li>никаких типов данных; </li></ul></ul><ul><ul><li>никакого интерпретирования данных; </li></ul></ul><ul><ul><li>о SQL/ODBC/JDBC можно смело забыть. </li></ul></ul><ul><li>Она даже не позиционируется как полноценная замена реляционным СУБД. </li></ul>
  9. 9. Традиционные СУБД столбцы строки
  10. 10. HBase столбцы строки
  11. 11. HBase строки столбцы время
  12. 12. Традиционные СУБД значения не указаны NULL NULL
  13. 13. HBase значения не указаны
  14. 14. Логически Физически HRegion (Tablet)
  15. 15. HRegion HRegion ограничение по объему
  16. 16. HRegion HRegion ограничение по объему
  17. 17. HRegion HRegion
  18. 18. Архитектура HBase HRegion Server HRegion Server HRegion HRegion HRegion Server HRegion Server HRegion HRegion Операции с данными: чтение и запись Определение местанахождения данных - перераспределение данных - восстановление в случае сбоев - работа с метаданными HMaster Server HStore HMemcache HStore HMemcache HStore HMemcache Клиент HLog HStore HMemcache HLog
  19. 19. MapReduce Framework <ul><li>MapReduce представляет собой модель проведения распределенных вычислений. </li></ul><ul><li>Hadoop предоставляет набор средств для выполнения вычислений в соответствии с данной моделью. </li></ul><ul><li>Она состоит из двух основных этапов: </li></ul><ul><ul><li>map(k,v) -> <k',v'> </li></ul></ul><ul><ul><li>reduce(k',<v'>) -> <k',v''> </li></ul></ul><ul><li>Помимо этого возможны и дополнительные этапы: compare(), partition() и так далее. </li></ul>
  20. 20. Входные данные Часть 1 Часть 2 . . . . . . . . . . . . Часть N map() map() map() map() reduce() reduce() reduce() reduce() reduce() map() Часть 1 Результат 1 Результат 2 . . . . . . . . . . . . Результат N Результат вычисления
  21. 21. При необходимости: перераспределение и сортировка Входные данные Часть 1 Часть 2 . . . . . . . . . . . . Часть N map() map() map() map() reduce() reduce() reduce() reduce() reduce() map() Часть 1 Результат 1 Результат 2 . . . . . . . . . . . . Результат N Результат вычисления Произвольные системы хранения данных, чаще всего: HDFS или HBase Алгоритмы распределения данных можно задать вручную. По-умолчанию используется просто разбиение на части фиксированного объема.
  22. 22. С точки зрения разработчика <ul><li>Для построения MapReduce приложения достаточно лишь разработать несколько функций: </li></ul><ul><ul><li>Input reader — чтение входных данных; </li></ul></ul><ul><ul><li>Map — реализация преобразования данных в пары ключ/значение; </li></ul></ul><ul><ul><li>Partition — распределение промежуточных значений по reduce заданиям; </li></ul></ul><ul><ul><li>Compare — используется для сравнения и сортировки промежуточных значений; </li></ul></ul><ul><ul><li>Reduce — аггрегация промежуточных пар ключ/значение; </li></ul></ul><ul><ul><li>Output writer — запись результата. </li></ul></ul>
  23. 23. Подведем черту <ul><li>Использование данной платформы позволяет: </li></ul><ul><ul><li>избежать изобретения массы «велосипедов»; </li></ul></ul><ul><ul><li>сосредоточиться на реализации самого приложения, а не низлежащей системы; </li></ul></ul><ul><ul><li>распределить вычисления и данные на большом количестве машин при минимуме затрат; </li></ul></ul><ul><ul><li>сэкономить на дорогостоящем оборудовании; </li></ul></ul><ul><ul><li>не привязываться к провайдеру аналогичных сервисов: Google App Engine, Amazon EC2+S3+SimpleDB или Sun Grid Engine. </li></ul></ul>
  24. 24. Ложка дегтя <ul><li>Но ситуация на самом деле не настолько радужна: </li></ul><ul><ul><li>в системе присутствует несколько уязвимых мест - «single points of failure», но это исправимо сторонними средствами, в частности HeartBeat+DRBD ; </li></ul></ul><ul><ul><li>последняя версия проекта — 0.17.0, проект еще далек от полноценного стабильного релиза, но разработка ведется очень активно и система уже успела успешно показать себя на практике; </li></ul></ul><ul><ul><li>полноценно реализован только Java интерфейс, все остальные ограничены в функциональности и/или производительности. </li></ul></ul>
  25. 25. Спасибо за внимание! Остались вопросы?

×