34
Выбор языка запросов для извлечения фактов из вашего Dataset Зиновьев Алексей

Thumbtack Expertise Days # 5 - Dataset

Embed Size (px)

Citation preview

Page 1: Thumbtack Expertise Days # 5 - Dataset

Выбор языка запросов для извлечения фактов из вашего Dataset

Зиновьев Алексей

Page 2: Thumbtack Expertise Days # 5 - Dataset

Давайте жнакомиться!• отважный житель

солнечного Питербурха

• любитель Pig Latin и Hive

- ненавистник

• вечерами думает как вершина, а по утрам подгружает в память события прошедшего дня

Page 3: Thumbtack Expertise Days # 5 - Dataset

Жила-была задачка

Page 4: Thumbtack Expertise Days # 5 - Dataset

Некая соц.сетьВ целом:● 200 000 000 пользователей● 8 500 000 сообществВ сутки:● 40 000 000 пользователей● 250 000 000 сообщений● 8 000 000 постов● 12 000 000 фотографий● 7 000 000 дружб

Page 5: Thumbtack Expertise Days # 5 - Dataset

Вредоносная деятельность● Нарушение законов этики, морали и статей УК РФ

● Создание “теневой” подсети спам-аккаунтов

● Взлом профилей реальных пользователей

● Рассылка спама со своих и взломанных профилей

● Привлечение внимание при помощи появления в списке

посетивших страницу пользователя

Page 6: Thumbtack Expertise Days # 5 - Dataset

Выгоды соц.сети● Предотвращаем распространение “эпидемий” по взлому

профилей и утечку персональных данных

● Предотвращаем спам до его появления

● Уменьшаем количество жалоб

● Снижаем нагрузку на модераторов

● Сокращаем штат модераторов

Page 7: Thumbtack Expertise Days # 5 - Dataset

Данные● Граф связей (~ 9 * 10^6, 39 Гб)

● Демография

● “Лайки/Классы” пользователей

● История “логинов” (включая неудачные попытки

авторизации) (~ 3,2 * 10^8, 12 Гб)

● Посты в группах

● Жалобы на спам

Page 8: Thumbtack Expertise Days # 5 - Dataset

А что нужно делать-то? Необходимо на основании графа друзей, истории заходов в соц.

сеть, а также анализа иной деятельности предложить мат.модель,

позволяющую с высокой достоверностью (ошибка первого рода не

более 1% и ошибка второго рода не более 10%) определять, что

пользователь является злоумышленником.

Существующее на данный момент решение имеет ошибку первого

рода более 10% и ошибку второго рода более 20%.

Page 9: Thumbtack Expertise Days # 5 - Dataset

Основные признаки● Local feature: степень вершины

● Global feature: значение PageRank для каждой вершины

● Global-local feature: значение локального коэффициента

кластеризации (LCC)

● Количество попыток аутентификации

● Анкетные данные (пол, возраст, регион проживания)

● Удаленность от столицы и от государственных границ

Page 10: Thumbtack Expertise Days # 5 - Dataset

Распределение числа друзей

Page 11: Thumbtack Expertise Days # 5 - Dataset

Набор инструментов

● R 3.0.3 ( прототипирование моделей)

● python 23 + scypi + numpy + pandas (моделирование)

● Hadoop 2.6 (кластерная инфраструктура)

● Pig 14 (вычисление неграфовых признаков)

● Giraph 1.1 (вычисление графовых признаков)

● Cloud Storage + BigQuery для тяжелых агрегатов

● Hive баловства ради

Page 12: Thumbtack Expertise Days # 5 - Dataset

Виды Hadoop - фреймворков

● Универсальные (низкоуровневое API :

MapReduce/Spark/Tez)

● Абстрактные (Pig, Crunch)

● SQL - подобные (Hive, Impala, Shark)

● Процессинг графов (Giraph, GraphX или GraphLab)

● Машинное обучение (Mahout, MLib, Oryx)

● Потоковая обработка (Spark Streaming, Storm)

Page 13: Thumbtack Expertise Days # 5 - Dataset
Page 14: Thumbtack Expertise Days # 5 - Dataset

Spark

● MapReduce в памяти

● Иногда в 100 раз быстрее

MapReduce

● Поддержка Shark (SQL), MLlib

(Machine learning), GraphX

● RDD - базовый строительный блок

(неизменяемая распределнная

коллекция объектов)

Page 15: Thumbtack Expertise Days # 5 - Dataset

MapReduce vs Spark

MapReduce исповедует однопроходную модель вычислений

со множеством чтений/записей с диска, плох в итеративной

обработке

Spark хорош в обработке потоковых данных, число

чтений/записей с диска уменьшено по сравнению с

MapReduce

Page 16: Thumbtack Expertise Days # 5 - Dataset

Свинья везде грязь найдет● Режим MapReduce и local

● Легкие настройки hadoop - кластера

● Ленивое исполнение и возможность пошаговой отладки

● 10 строк вместо 10 джоб

● Встроенные команды работы с HDFS

● Работа со сложными иерархическими схемами данных

● Возможность написания пользовательских функций

Page 17: Thumbtack Expertise Days # 5 - Dataset

Стадии обработки и выполнения вашего скрипта

Page 18: Thumbtack Expertise Days # 5 - Dataset

Операторы Pig превращаются в цепочку map/reduce - задач

Page 19: Thumbtack Expertise Days # 5 - Dataset

Свинья везде грязь найдет● Можно написать свою процедуру парсинга/загрузки

● Множественные способы группировки и объединения

данных (JOIN, CROSS, COGROUP, GROUP, UNION,

SPLIT)

● Полноценный FOREACH

● Подробная пошаговая инструкция трансформации ваших

данных

Page 20: Thumbtack Expertise Days # 5 - Dataset

Старый друг лучше новых двухПриходит время, когда вам нужно обрабатывать большие, но

однородные, плоские, данные с постоянной структурой.

Вы не готовы писать на “среднеуровневом” Pig и хотите

применить свой опыт в SQL.

Hive - спасение для аналитиков из Facebook

Page 21: Thumbtack Expertise Days # 5 - Dataset

Старый друг лучше новых двух● У вас появляется метахранилище со схемами таблиц

● Вы обнаружите у себя в HDFS много всего интересного

● Вам придется повозиться с настройками

● У вас появляются индексы и возможность не сканировать

всю таблицу при поиске пары записей

● и даже какие-то транзакции!!!!

● Обилие форматов хранения данных

Page 22: Thumbtack Expertise Days # 5 - Dataset

Разный подход к параллелизации

Page 23: Thumbtack Expertise Days # 5 - Dataset

На плечах титанов

Page 24: Thumbtack Expertise Days # 5 - Dataset

Почему Giraph?

● Open-source воплощение Pregel

● Запускалось на уже имеющейся инфраструктуре Hadoop

● Вычисления происходят в памяти (а ее было достаточно)

● Простая возможность для проведения итерационных

вычислений (важно при вычислении PageRank)

Page 25: Thumbtack Expertise Days # 5 - Dataset
Page 26: Thumbtack Expertise Days # 5 - Dataset

А что происходит на самом деле?

Page 27: Thumbtack Expertise Days # 5 - Dataset

Ну если совсем лень...

Page 28: Thumbtack Expertise Days # 5 - Dataset

Google Cloud Platform● App Engine

● Big Query

● Cloud SQL

● Cloud Storage

● Compute Engine

Page 29: Thumbtack Expertise Days # 5 - Dataset

Пластиковые вилки для макарон

Page 30: Thumbtack Expertise Days # 5 - Dataset

Compute Engine● Инфраструктура как сервис

● Linux VM вместе с дисками и айпишниками

● От 1 слабенького ядра до серьезного кластера

● Особенно приятно на таком масштабируется Hadoop

● И да, это очень напоминает Amazon

Page 31: Thumbtack Expertise Days # 5 - Dataset

Cloud Storage

● Объекты хранятся в бакетах - неизменяемых

структурированных кучках данных размером до 5ТБ

● Хорошо подходит для хранения сырых датасетов и логов

● Интегрируется со всеми другими гугловыми сервисами (и

не только с ними)

Page 32: Thumbtack Expertise Days # 5 - Dataset

Big Query

● Похож на SQL с небольшой примесью самописных

функций

● Может обрабатывать данные, хранящиеся в Cloud

Storage

● Пробегает по таблице в 1 Тб за секунды

● Опирается на мощь движка Dremel

Page 33: Thumbtack Expertise Days # 5 - Dataset

Пример

Page 34: Thumbtack Expertise Days # 5 - Dataset

Почему-то я задаю вопросы...

1. Можно ли запустить Pig не на Hadoop - кластере?

2. Можно ли задавать разный уровень параллелизма в Pig для разных операторов?

3. Можно ли было обойтись без Giraph при вычислении графовых фич в моей задаче?