Real Time MapReduce. Как ускорить что-то очень большое
Некоторое время назад мы рассказывали на Хабре о том, что наш поиск стал более персонализированным. Он учитывает не только постоянные, но и сиюминутные интересы пользователя, ориентируясь на последние несколько запросов и действий. Сегодня мы хотим рассказать о технологии Real Time MapReduce, благодаря которой всё это стало возможно. Она обеспечивает передачу и обработку огромных объёмов данных, необходимых для этой задачи, и чтобы сделать это нам даже не пришлось переписывать код для MapReduce, который у нас уже использовался. Чтобы персонализировать поисковую выдачу, нужно определить круг интересов пользователя, для чего мы отслеживаем его поведение на странице поиска. Данные о действиях пользователя записываются в логи, а затем обрабатываются при помощи специальных алгоритмов, которые позволяют нам составить наиболее релевантную выдачу по запросу для каждого отдельно взятого пользователя. Сначала обработка логов запускалась раз в сутки, для чего очень хорошо подходила технология распределенных вычислений MapReduce. Она прекрасно справляется с анализом значительных объемов данных.Читать дальше →