Электронная коммерция: от Hadoop к Spark Scala
-
Upload
roman-zykov -
Category
Technology
-
view
1.981 -
download
4
Transcript of Электронная коммерция: от Hadoop к Spark Scala
Платформа для мультиканальной персонализации интернет-‐магазина на основе big data
retailrocketНа пути к Apache Spark
Роман Зыков Со-‐основатель и директор по аналитике 12 ноября 2014, Москва
Платформа для мультиканальной персонализации интернет-‐магазина на основе big data
Как работает Retail Rocket
retailrocket
1. Наш сервис собирает всю информацию о пользователях и их поведении на сайте магазина.
2. Мощный аналитический аппарат превращает огромное количество данных в рекомендации.
3. Персональные рекомендации через виджеты или серверный API размещаются на сайте
магазина, в персональных email-‐сообщениях, в CRM у операторов колл-‐центра и в любых других
каналах коммуникации. Система постоянно самообучается и увеличивает эффективность.
1
2
3
Мы используем сложную big data модель для формирования товарных рекомендаций
Платформа для мультиканальной персонализации интернет-‐магазина на основе big data
Что дает Retail Rocket
retailrocket
Что дает Retail Rocket?
+ Персонализация сайта
– Более 10 сценариев, разработанных создателями рекомендательных систем
Ozon.ru и Wikimart.ru
– Рост продаж от 10% до 50% (по результатам независимых А/Б тестов)
– Месяц на бесплатное тестирование
+ Персонализация email – Полностью автоматизированные рассылки без затрат на персонал
– Средняя конверсия из переходов в заказы – >10% (!)
– Оплата только за результат (CPO или Revenue Share)
Платформа для мультиканальной персонализации интернет-‐магазина на основе big data * Согласно независимому исследованию InSales от 30.10.2014
Платформа для мультиканальной персонализации интернет-‐магазина на основе big data
Архитектура Retail Rocket
retailrocket
• CDH 5.1.2 • Spark 1.1 • High Availability: 2 Namenodes, 3 Journalnodes • 18 Datanodes • 100 Tb несжатых данных • 100 млн новых событий в сутки
retailrocket
retailrocket
Проблемы!!!
• Зоопарк языков программирования • Сложность реализации итеративных алгоритмов • Инвестиции в железо
Платформа для мультиканальной персонализации интернет-‐магазина на основе big data
Apache Spark
retailrocket
Решение
• Один язык программирования -‐ Scala • Расчеты в памяти – поддержка итеративных алгоритмов • Производительность (в 3-‐5 раз) • Лучше использует память • Spark SQL вместо Hive • Spark Streaming • Parquet
retailrocket
Переезд хуже пожара – нужен Yarn
Old cluster
Name nodes
Journal nodes
Name nodes
Journal nodes
New cluster
CDH 4.5
CDH 5.1 Yarn
Puppet
hzps://github.com/RetailRocket/puppet-‐cdh5
retailrocket
Spark Scala
• Проблема «мелких» файлов • Капризен к опциям параллелизации (reduce) • Нет удобного notebook • Лучше писать свои сериализаторы на базе Kryo
retailrocket
Проблема мелких файлов
• По-‐умолчанию Hadoop: 1 маппер на файл • org.apache.hadoop.hive.ql.io.CombineHiveInputFormat • Pig:
• pig.splitCombina�on = true • pig.maxCombinedSplitSize
• Hive: • hive.input.format =
org.apache.hadoop.hive.ql.io.CombineHiveInputFormat • hive.hadoop.supports.splizable.combineinpu�ormat=true
• Spark/Scala • hzps://github.com/RetailRocket/SparkMul�Tool
Retail Rocket: 100000 файлов -‐ 100000(ДО), 3000(после) Скорость чтения выросла в «три» раза
retailrocket
Ссылки
• Книга Learning on Spark (hzp://shop.oreilly.com/product/0636920028512.do) • Курс Coursera курс по Scala (hzps://www.coursera.org/course/progfun) • Видео Spark Summit 2014 (hzp://spark-‐summit.org/2014) • Spark should be bezer than MapReduce (if only it worked) • Retail Rocket Public GitHub (hzps://github.com/RetailRocket)