10 happydev-lite'14 Иван Погудин, Анатолий Никулин. Решение...
DESCRIPTION
Большие объемы данных и огромное число запросов в единицу времени - особенности систем, о которых рассказано в докладе.TRANSCRIPT
![Page 1: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/1.jpg)
Обзор технологий и подходов для решения задач связанных с
высокой нагрузкой и обработкой больших объёмов данных
Анатолий Никулин и Иван Погудин
![Page 2: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/2.jpg)
Как справиться с возрастающей нагрузкой
• Вертикальное масштабирование• Горизонтальное масштабирование
![Page 3: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/3.jpg)
Вертикальное масштабирование
• Утилизация множества ядер (многопоточность)• Часто не требует изменение приложения• Малый предел масштабирования
![Page 4: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/4.jpg)
Горизонтальное масштабирование
• Увеличивается количество элементов• Возрастает вероятность отказа• Усложняются механизмы взаимодействия• Дешевле чем вертикальное после достижения
определённого масштаба
![Page 5: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/5.jpg)
CAP теорема (Брюер)
![Page 6: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/6.jpg)
Фреймворки и системы
• Finagle (https://twitter.github.io/finagle/)• Hadoop (http://hadoop.apache.org/)• Storm (http://storm.incubator.apache.org)
![Page 7: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/7.jpg)
Finagle
• Scala• Примитивы: сервера и клиенты• Thrift, Http, Mux• Future• Трекинг запросов• Мониторинг производительности• Java-API в планах
![Page 8: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/8.jpg)
Hadoop
• Java• Map/reduce• HDFS - распределённая файловая система• HBase - база данных• Де-факто стандарт для обработки больших данных
![Page 9: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/9.jpg)
Storm
• Сlojure• Stream processing• Топология (Topology)• Краны (spouts) и изгибы (bolts)• Java-API и другие языки
![Page 10: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/10.jpg)
Базы данных (NoSQL)
• Memcached (http://memcached.org)• Redis (http://redis.io)• Cassandra (http://cassandra.apache.org/)• MongoDB (http://www.mongodb.org/)• Aerospike (http://www.aerospike.com/)
![Page 11: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/11.jpg)
Memcached
• Хэш таблица с доступом по ключу• Распределённый• Данные только в памяти• set, add, replace, append, prepend, cas, get, gets,
delete, incr, decr
![Page 12: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/12.jpg)
Redis
• key-value cache and store• strings, hashes, lists, sets, sorted sets, bitmaps• persistence (snapshots)• репликация (master-slave)• redis cluster в процессе
![Page 13: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/13.jpg)
Cassandra
• Колонко-ориентированная (Column-oriented)• Log-structured merge-tree• Очень быстрая запись• Thrift интерфейс, CQL3
![Page 14: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/14.jpg)
MongoDB
• Master/slave репликация• Sharding (mongos, mongo configsrv)• Документ-ориентированная• JavaScript• Map/reduce
![Page 15: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/15.jpg)
Aerospike
• SSD + memory• Сложные структуры данных (списки, хэш таблицы и
т.д.)• aql
![Page 16: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/16.jpg)
Дьявол в деталях
• Оптимизации (мелкое в рамках одной операции становится крупным при большом их числе)
• Необходимость поиска компромисса (память, процессор, диск, сеть)
• Механизмы взаимодействия элементов распределённой системы
• Отказоустойчивость• И многое многое другое
![Page 17: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/17.jpg)
BigData
Мир больших массивов данных
![Page 18: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/18.jpg)
Общее количество данных в мире
2 Zettabyte
это: 1000000000000000000000 bytesили 1 миллиард терабайт
![Page 19: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/19.jpg)
Закон Мура для данных
Каждые два года количество данных увеличивается в
двое
![Page 20: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/20.jpg)
![Page 21: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/21.jpg)
Bolid F1 6GB per 90 min
![Page 22: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/22.jpg)
Boeing-787 500 GB per fly*
![Page 23: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/23.jpg)
Large Hadron Collider 40TB per day
![Page 24: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/24.jpg)
Users:
• Количество интернет пользователей: 3 млрд.
• Количество смартфонов: 1.3 млрд.
• Количество СМС в день: 25 млрд.
![Page 25: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/25.jpg)
Hadoop - наше всё
Платформа для:
Хранения и распределенной обработки данных
(распределенных вычислений).
Hadoop is a large-scale distributed batch processing
infrastructure
![Page 26: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/26.jpg)
BigData - а это сколько?
![Page 27: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/27.jpg)
А у вас нет столько данных для Hadoop
![Page 28: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/28.jpg)
Hadoop сложно разворачивать
![Page 29: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/29.jpg)
Игроки рынка
![Page 30: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/30.jpg)
Наконец Hadoop это целая экосистема
![Page 31: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/31.jpg)
Скилы
IF { компьютерная графика == линейная алгебра}THEN { большие данные == статистика и теория вероятности}
![Page 32: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/32.jpg)
Рынок труда РФ
• Обработка пользовательских данных.Реклама, банки
• Обработка сенсорных данных
![Page 33: 10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных с высокими нагрузками и обработкой](https://reader033.vdocuments.pub/reader033/viewer/2022061205/548043a4b37959a22b8b5a33/html5/thumbnails/33.jpg)
Греют воздух большими даннымиИ.Погудин и А.Никулин
(ведущие кочегары)