Your SlideShare is downloading. ×
0
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Lapan 20.04 hadoop h-base
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Lapan 20.04 hadoop h-base

2,650

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,650
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Использование Hadoop и HBase в поискеwww.mail.ru
  • 2. Hadoop: что это? Хранение и обработка больших объемов данных (петабайты) 1 PiB = 250 Bytes ~ 1015 BytesПользователи: Twitter, Yahoo, Facebook,LinkedInПрименение: логи, аналитика, data mining/machine learning
  • 3. Hadoop: point 1 - Sequential IOПример: 1010 записей по 100 байт (1 ТБ), изменяем 1% записей (одна машина, один диск).Случайный доступ: 1 месяц, линейное чтение-запись: 5.5 часов. Ускорение в 120 раз.
  • 4. Hadoop: point 2&3 - Data locality & ReplicationТиповой сервер: ● 1-2 GiGE ports = 120-240 MB/s ● 4-10 Disks = 320-800 MB/sВывод: обрабатывать данные нужно там же где и хранить.Время наработки на отказ диска 500k часов (57 лет).Если в системе 1000 дисков - 2 мертвых диска в месяц.Вывод: репликация - обязательна.
  • 5. Hadoop: HDFSРаспределенное, отказоустойчивоехранилище данных. ● Отсутствует операция перезаписи данных ● Блоки большого размера (128- 256 МБ)
  • 6. MapReduceСпособ организации вычислений.1. Map(key1, value1) → [{key2, value2}]2. Shuffle([{key2,value2}] → [{key2,[value2]}]3. Reduce(key2, [value2]) → [value3]Бенефиты:● масштабируемость по данным● концентрация на логике обработки
  • 7. Hadoop: MapReduceДанные логически делятся на записи, которыемогут обрабатываться независимо →автоматическое распараллеливание задачи.
  • 8. HBaseРаспределенное key-value хранилище поверх HDFS.Пространство ключей разбивается на регионы, распределяемые междунесколькими серверами и хранящиеся в HDFS. Значения группируются посемействам колонок (CF).Поддерживаемые операции: ● scan - проход по подмножеству ключей и значений ● put - запись нового значения ● delete
  • 9. HBase: архитектура
  • 10. Hadoop в поиске Фетчер: обработка заданий на закачку Контент● хранение и обработка логов (0.5 Задания ПБ) Логи● данные хранилище скачанных данных перед импортом в HBase Hadoop● промежуточные результаты Контент,● данные для индексирования флаги, ранки, зоны, и т.п.● бэкапы готовых баз Индексаторы: готовят поисковый индексГлавное: хранилище HBase
  • 11. HBase в поиске: webpagesКлюч: ссылка вида com.vk:http/help.php?page=aboutСемейства колонок: flags, crawl, link, rf, imgjoin, parsed, snapДанные: всё о страницах ● состояние фетчера - когда качали/будем качать, что получили, и т.д. ● флаги - стопицот классификаторов ● ссылки - кто ссылается, на кого ссылается ● ранжирование - стопицот параметров ● картинки ● оригинальный контент ● обработанный контентСамая толстая таблица, 230 ТБ, 20 млрд ссылок, 10 млрд страниц с контентом.Количество значений ~500 млрд.В таблице 7000 регионов, средний размер региона 31 Гб.
  • 12. HBase в поиске: queries & websitesQueries: информация о запросах пользователей, используется в опечаточнике иранжировании. Используются фичи HBase: версионность и TTL.Размер 5.3 ТБ, 7 млрд строк.Websites: данные о сайтах. Хранится состояние фетчера и ранжирования.Размер 85 Гб, 200 млн строк.
  • 13. Основные процессыFetcher - закачка интернетов:● Подготовка заданий● Закачка (отдельные сервера)● Заливка данных в HBase● Чистка базы от старых записей● Заливка URLов● Дамп контента в индексаторы● Прочее: sitemaps, robots, etc.
  • 14. ТТХ160 машин, 8 ТБ памяти, 2.5 ПБ диски. За последние полгода выросли в 8 раз.Типовая конфигурация: 16 ядер, 50 ГБ, 8-14 дисков по 2 ТБ. Сеть - 2*GiGE.
  • 15. Грабли: compactionsCompact - процесс слияния нескольких файлов с данными в один. Minor - сливаются нескольконебольших файлов. Major - все файлы семейства колонок объединяются в один.Ошибка HBase - все minor compact превращались в major.В результате, каждая заливкавыливалась в перелопачиваниесотен терабайт данных.Решение: https://github.com/Shmuma/hbase/commits/compact-promotionПосле исправления,интенсивность ввода-выводауменьшилась в 8 раз.
  • 16. Грабли: деление регионовДля эффектвного выполнения сканов, обработка всех регионов должна занимать примерно одновремя. Однако, в случае сложной схемы данных, этот критерий разный для разных задач.Возможные критерии деления: 1. размер региона (реализована в HBase) 2. количество записей в регионе/колонке 3. отклонение размера колонки региона от среднего 4. время обработки региона неким набором задачТекущее решение - №3. Проблемы: ● временные всплески в размере регионов, вызывающие их необратимое деление ● неточность деления (много пустых ссылок занимают такой же объем что и мало больших документов)Решение: переход на хэшированые ключи. Недостаток: сложно удалять опрометчиво залитые данные.
  • 17. Грабли: быстрые сканыВезде в литературе по HBase рекомендуют заводить не более 1-2 CF. На самомделе все не так. В случае разнородных данных и разнообразия методов ихобработки, много CF - способ повышения производительности.Проблема: при скане, по признакам из маленькой колонки (флаги) отбираютсяредкие данные из большой колонки (snap). При этом hbase читает все данныеиз обеих CF.Решение: https://issues.apache.org/jira/browse/HBASE-5416Ускорение сканов ~20 раз.
  • 18. Тайные знания● dfs.datanode.socket.write.timeout = 300000 (5 мин). Везде рекомендуют выставлять в 0. Ноль ведет к залипанию потоков RS.● mapred.reduce.parallel.copies = 2. Везде рекомендуют поставить побольше. Копирование ускоряется, но одновременные копии валят RS.● io.sort.factor = 10. Рекомендации - чем больше, тем лучше. Это бред - большие значения ведут к превращению последовательных операций в случаные и отстрелу RS.● mapred.job.tracker.handler.count = 20. Связано с parallel.copies - ставить сильно много тоже плохо.● hbase.server.versionfile.writeattempts = 10.
  • 19. Итоги и перспективыВ целом, итоги использования Hadoop и HBaseположительные.Основной позитивный момент - предоставление командеразработчиков поиска эффективного инструмента дляработы с полной копией рунета.
  • 20. СПАСИБО! Максим ЛапаньВедущий разработчик, Поиск@mail.ru lapan@corp.mail.ru

×