SlideShare a Scribd company logo
Методы распределенной обработки
больших объемов данных в Hadoop
Москва 2014
Лекция 14: Hadoop в Поиск@Mail.Ru
Немного истории…
• Компоненты поиска
– Поисковый робот (Web Spider)
– Индексаторы
– Поисковый кластер
– Ранжирование
– Вертикальный поиск
• Картинки
• Видео
• Новости
– Статистика
Мотивация
Общее
хранилище
данных
Единый
вычислительный
кластер
Hadoop
• Джентльменский набор
– HDFS
– MapReduce
– HBase
– Oozie
– Pig
• Статистика
– Ganglia
– Hdpstat
Почему Hadoop?
• Production-ready
• Open-source
• Активное сообщество
• Коммерческая поддержка
• Но были и сомнения...
JAVA!
Почему HBase?
• Распределенный, многомерный, отсортированный map
– Быстрая произвольная запись (put)
– Хорошая скорость последовательного чтения (scan)
• Хранение данных по колонкам
• Есть из коробки
– Шардинг
– Репликация
– Отказоустойчивость
• Работает поверх HDFS
– Локальность данных
• Поддержка MapReduce
Поисковый робот
Old school
Fetching
Parsing
Dump to Idx
DB
Local FS
Spider 1
Fetching
Parsing
Dump to Idx
DB
Local FS
Spider N
Поисковый робот
• Плюсы
– Простота архитектуры и стабильность работы!
• Недостатки
– Процесс обкачки и обработки синхронный
• Снижение общей производительности
– Нет общей базы у спайдеров
• Невыполнимость ряда задач
– Сложность подключения данных от других
компонент
– Сложность получения данных от спайдера для
других компонент
Поисковый робот
New generation H
Fetcher 1
HDFS
HBase
Fetcher N
Parsing
Dump to Idx
MR jobs
Urls upload
Что мы храним в HBase
• Копия рунета + лучшая часть иностранного
интернета
– Скаченный контент
– Метаинформация по сайтам и страницам
– Ссылки
– Статусы
• Флаги, ранки
• Логи
• Поисковые запросы
Работа с Hadoop
Hadoop
HBase
Spider Indexer Ranking
ImageLink GraphAnalytics
HDFS
MapReduce
Трудности перевода
• Разработка: С++ vs Java
– Много старого С++ кода
• Java Native Interface
– Java разработчики
• Тестирование MapReduce задач
– Minicluster (локально)
– MRUnit
– Тестовый кластер
• Тестовые данные
– Отладка и профилирование в распределенной среде
• Shared данные
– Protocol Buffers
Трудности перевода 2
• Разделение ресурсов
– Кривая задача не должна «убивать» кластер
– Контроль свободных ресурсов
• Обновление и новая конфигурация
– Рестарт кластера
• Подводные камни в эксплуатации
Эксплуатация: Ganglia
Эксплуатация: Ganglia
Эксплуатация: Ganglia
Полезные уроки Hadoop
• Скорость задачи равна скорости самого медленного
маппера/редьюсера
• Много файлов – зло!
• Много мелких файлов – двойное зло!
– CombineInputFormat
• Место в hdfs
– Минимум 10-15% должно быть свободно
• Счетчики и логирование для профилирования и отладки
задач
• Пулы для групп задач
– Распределение ресурсов, FairScheduler
• Квоты на место в HDFS
Полезные уроки HBase
• Распределение данных имеет большое
значение
– Равномерное распределение ключей по таблице
• Используйте bulkload при массовой загрузки
данных
• Много get’ов – зло!
– Читайте данные последовательно
– Используйте reduce join
• Минимальная длина имени
– CF, keys, qualifiers
Немного статистики
• Три Hadoop-кластера
– Большой, быстрый и тестовый
• Размер всех кластеров
– ~500 серверов
– ~10000 CPUs
• Объем хранилища ~11 Пб
• Размер HBase ~1.5 Пб
• 45 млрд урлов
• 20 млрд скачанных урлов
Вопросы к экзамену
Вопросы к экзамену
1. Распределенные системы, проблемы и способы решения,
подход MapReduce
2. Архитектура MapReduce, сплит данных, таски map и reduce,
плюсы и минусы, combiner, shuffle и sort, failover, streaming,
примеры задач
3. Обработка графов на MapReduce, подход к реализации, плюсы
и минусы
4. Архитектура HDFS, плюсы и минусы, блоки, операции
read/write, репликация, failover
5. Архитектура HBase, плюсы и минусы, таблицы и регионы,
compactions, failover
6. Архитектура Pig и Hive, основные операции и API, сравнение,
плюсы и минусы
7. Дизайн и архитектура ZooKeeper, примитивы, znode, failover,
примеры использования
Вопросы к экзамену
8. NoSQL, шардинг, CAP-теорема, eventual consistency, schema-
less DB, consistent hashing
9. Архитектура YARN, управление ресурсами, контейнеры,
реализация MapReduce
10. Архитектура Spark, RDD, Dependencies, Fault Tolerance,
реализация WordCount
11. Mahout, алгоритмы классификации, кластеризации и
рекомендаций
12. Обработка больших графов и вычислительная модель Pregel,
пример реализации Apache Giraph
Вопросы к экзамену (Реализация)
1. Вычисления среднего значения на MapReduce
2. CrossCorrelation на MapReduce
3. Реляционных паттернов на на MapReduce
4. WordCount на MapReduce
5. TF-IDF на MapReduce
6. BFS на MapReduce
7. PageRank на MapReduce
8. WordCount на Pig
9. WordCount на Hive
10. Simple lock на ZooKeeper
11. Leader election на ZooKeeper
Вопросы?

More Related Content

What's hot

Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
Vasil Remeniuk
 
02 - Hadoop. Архитектура HDFS
02 - Hadoop. Архитектура HDFS02 - Hadoop. Архитектура HDFS
02 - Hadoop. Архитектура HDFS
Roman Brovko
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Антон Шестаков
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)Andrew Panfilov
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
Technopark
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop Vladimir Klimontovich
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Alexey Zinoviev
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
Alexey Zinoviev
 
HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)
Irina Fedulova
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
DotNetConf
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядов
Max Lapshin
 
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
Roman Brovko
 
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3
Евгений Плакса
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахAlexander Mezhov
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
Roman Zykov
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
Alexander Tivelkov
 
Thumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - DatasetThumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - Dataset
Alexey Remnev
 
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системахDrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalSPB
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
Alexey Zinoviev
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
Andrei Nikolaenko
 

What's hot (20)

Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
02 - Hadoop. Архитектура HDFS
02 - Hadoop. Архитектура HDFS02 - Hadoop. Архитектура HDFS
02 - Hadoop. Архитектура HDFS
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядов
 
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
 
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системах
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
 
Thumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - DatasetThumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - Dataset
 
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системахDrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
DrupalCafe #1: Екатерина Маршалкина - Права на файлы Drupal в Unix-системах
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
 

Viewers also liked

Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Technopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
Technopark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
Technopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
Technopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
Technopark
 
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Technopark
 

Viewers also liked (7)

Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 

Similar to Лекция 14. Hadoop в Поиске Mail.Ru

С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
Badoo Development
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
Ontico
 
Big Data и ArcGIS
Big Data и ArcGISBig Data и ArcGIS
Big Data и ArcGIS
Vitaly Zagorovskiy
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6Technopark
 
Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?
aragozin
 
Apache Hadoop
Apache HadoopApache Hadoop
Apache Hadoop
Ivan Blinkov
 
Практика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему HadoopПрактика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему Hadoop
Yury Petrov
 
Блеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшейБлеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшей
aragozin
 
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)Ontico
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
IT Event
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High Availability
Badoo Development
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ontico
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
Slach
 
Apache Hive
Apache HiveApache Hive
Apache Hive
Anatoliy Nikulin
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusOntico
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
Sveta Bozhko
 
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
JSC “Arcadia Inc”
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
Vladd Ev
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
Yuri Yashkin
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
HappyDev
 

Similar to Лекция 14. Hadoop в Поиске Mail.Ru (20)

С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
 
Big Data и ArcGIS
Big Data и ArcGISBig Data и ArcGIS
Big Data и ArcGIS
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
 
Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?
 
Apache Hadoop
Apache HadoopApache Hadoop
Apache Hadoop
 
Практика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему HadoopПрактика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему Hadoop
 
Блеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшейБлеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшей
 
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High Availability
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
Apache Hive
Apache HiveApache Hive
Apache Hive
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
 
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
 

More from Technopark

СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
Technopark
 
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
Technopark
 
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
Technopark
 
СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"
Technopark
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8
Technopark
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7
Technopark
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6
Technopark
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
Technopark
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3
Technopark
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
Technopark
 
Java осень 2014 занятие 2
Java осень 2014 занятие 2Java осень 2014 занятие 2
Java осень 2014 занятие 2
Technopark
 

More from Technopark (17)

СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
 
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
 
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
 
СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
 
Java осень 2014 занятие 2
Java осень 2014 занятие 2Java осень 2014 занятие 2
Java осень 2014 занятие 2
 

Лекция 14. Hadoop в Поиске Mail.Ru

  • 1. Методы распределенной обработки больших объемов данных в Hadoop Москва 2014 Лекция 14: Hadoop в Поиск@Mail.Ru
  • 2. Немного истории… • Компоненты поиска – Поисковый робот (Web Spider) – Индексаторы – Поисковый кластер – Ранжирование – Вертикальный поиск • Картинки • Видео • Новости – Статистика
  • 4. Hadoop • Джентльменский набор – HDFS – MapReduce – HBase – Oozie – Pig • Статистика – Ganglia – Hdpstat
  • 5. Почему Hadoop? • Production-ready • Open-source • Активное сообщество • Коммерческая поддержка • Но были и сомнения...
  • 7. Почему HBase? • Распределенный, многомерный, отсортированный map – Быстрая произвольная запись (put) – Хорошая скорость последовательного чтения (scan) • Хранение данных по колонкам • Есть из коробки – Шардинг – Репликация – Отказоустойчивость • Работает поверх HDFS – Локальность данных • Поддержка MapReduce
  • 8. Поисковый робот Old school Fetching Parsing Dump to Idx DB Local FS Spider 1 Fetching Parsing Dump to Idx DB Local FS Spider N
  • 9. Поисковый робот • Плюсы – Простота архитектуры и стабильность работы! • Недостатки – Процесс обкачки и обработки синхронный • Снижение общей производительности – Нет общей базы у спайдеров • Невыполнимость ряда задач – Сложность подключения данных от других компонент – Сложность получения данных от спайдера для других компонент
  • 10. Поисковый робот New generation H Fetcher 1 HDFS HBase Fetcher N Parsing Dump to Idx MR jobs Urls upload
  • 11. Что мы храним в HBase • Копия рунета + лучшая часть иностранного интернета – Скаченный контент – Метаинформация по сайтам и страницам – Ссылки – Статусы • Флаги, ранки • Логи • Поисковые запросы
  • 12. Работа с Hadoop Hadoop HBase Spider Indexer Ranking ImageLink GraphAnalytics HDFS MapReduce
  • 13. Трудности перевода • Разработка: С++ vs Java – Много старого С++ кода • Java Native Interface – Java разработчики • Тестирование MapReduce задач – Minicluster (локально) – MRUnit – Тестовый кластер • Тестовые данные – Отладка и профилирование в распределенной среде • Shared данные – Protocol Buffers
  • 14. Трудности перевода 2 • Разделение ресурсов – Кривая задача не должна «убивать» кластер – Контроль свободных ресурсов • Обновление и новая конфигурация – Рестарт кластера • Подводные камни в эксплуатации
  • 18. Полезные уроки Hadoop • Скорость задачи равна скорости самого медленного маппера/редьюсера • Много файлов – зло! • Много мелких файлов – двойное зло! – CombineInputFormat • Место в hdfs – Минимум 10-15% должно быть свободно • Счетчики и логирование для профилирования и отладки задач • Пулы для групп задач – Распределение ресурсов, FairScheduler • Квоты на место в HDFS
  • 19. Полезные уроки HBase • Распределение данных имеет большое значение – Равномерное распределение ключей по таблице • Используйте bulkload при массовой загрузки данных • Много get’ов – зло! – Читайте данные последовательно – Используйте reduce join • Минимальная длина имени – CF, keys, qualifiers
  • 20. Немного статистики • Три Hadoop-кластера – Большой, быстрый и тестовый • Размер всех кластеров – ~500 серверов – ~10000 CPUs • Объем хранилища ~11 Пб • Размер HBase ~1.5 Пб • 45 млрд урлов • 20 млрд скачанных урлов
  • 22. Вопросы к экзамену 1. Распределенные системы, проблемы и способы решения, подход MapReduce 2. Архитектура MapReduce, сплит данных, таски map и reduce, плюсы и минусы, combiner, shuffle и sort, failover, streaming, примеры задач 3. Обработка графов на MapReduce, подход к реализации, плюсы и минусы 4. Архитектура HDFS, плюсы и минусы, блоки, операции read/write, репликация, failover 5. Архитектура HBase, плюсы и минусы, таблицы и регионы, compactions, failover 6. Архитектура Pig и Hive, основные операции и API, сравнение, плюсы и минусы 7. Дизайн и архитектура ZooKeeper, примитивы, znode, failover, примеры использования
  • 23. Вопросы к экзамену 8. NoSQL, шардинг, CAP-теорема, eventual consistency, schema- less DB, consistent hashing 9. Архитектура YARN, управление ресурсами, контейнеры, реализация MapReduce 10. Архитектура Spark, RDD, Dependencies, Fault Tolerance, реализация WordCount 11. Mahout, алгоритмы классификации, кластеризации и рекомендаций 12. Обработка больших графов и вычислительная модель Pregel, пример реализации Apache Giraph
  • 24. Вопросы к экзамену (Реализация) 1. Вычисления среднего значения на MapReduce 2. CrossCorrelation на MapReduce 3. Реляционных паттернов на на MapReduce 4. WordCount на MapReduce 5. TF-IDF на MapReduce 6. BFS на MapReduce 7. PageRank на MapReduce 8. WordCount на Pig 9. WordCount на Hive 10. Simple lock на ZooKeeper 11. Leader election на ZooKeeper