Развитие среды разработки Hadoop

68
Развитие среды разработки Hadoop Hbase/BigTable SQL on Hadoop/Impala Некоторые типичные задачи больших данных Spark/Shark Проблемы больших данных 1

description

Развитие среды разработки Hadoop. Hbase / BigTable SQL on Hadoop/Impala Некоторые типичные задачи больших данных Spark / Shark Проблемы больших данных. HBase: Обзор. HBase – распределенная система хранения данных ориентированная на доступ к данным как к столбцам таблицы (поверх HDFS ) - PowerPoint PPT Presentation

Transcript of Развитие среды разработки Hadoop

Page 1: Развитие среды разработки Hadoop

1

Развитие среды разработки Hadoop Hbase/BigTable SQL on Hadoop/Impala Некоторые типичные задачи больших

данных Spark/Shark Проблемы больших данных

Page 2: Развитие среды разработки Hadoop

2

HBase: Обзор HBase – распределенная система хранения

данных ориентированная на доступ к данным как к столбцам таблицы (поверх HDFS)

HBase - Apache проект с открытым кодом, цель которого – предоставление удобного доступа к данным для вычислений в среде Hadoop

Данные логически объединены в таблицы, строки и столбцы

Page 3: Развитие среды разработки Hadoop

3

HBase: Часть «экосистемы» Hadoop

HBase построена на основе HDFS

HBase файлы

хранятся в HDFS

Page 4: Развитие среды разработки Hadoop

4

Сравнение HBase и HDFS

Обе являются распределенными системами, которые легко расширяются до тысяч узлов

HDFS is хороша для пакетной обработки (полное чтение больших файлов)

Не удобна для поиска конкретной записи Не удобна для добавления небольших объемов данных Не поддерживает обновления

Page 5: Развитие среды разработки Hadoop

5

Сравнение целей разработки HBase и HDFS

HBase разработана для разрешения указанных неудобств

Быстрый поиск конкретной записи Поддержка вставки записей Поддержка обновлений (удаление/вставка, не замещение

на том же месте) Hbase обновления выполняются путем создания

новой версии записи

Page 6: Развитие среды разработки Hadoop

6

Модель данных HBase HBase поcтроена на основе модели Bigtable (от Google)

– пара <ключ>: <значение> Таблицы отсортированы по строкам (ключам) Схема таблицы определяет семейства столбцов.

Каждое семейство состоит из произвольного количества столбцов

Каждый столбец может иметь произвольное количество «версий»

Хранятся только реальные значения столбцов, NULL не хранятся.

Столбцы семейства отсортированы и хранятся вместе Значение представляет из себя массив байтов, byte[] (Строка,Семейство:Cтолбец, Версия) <Значение>

Page 7: Развитие среды разработки Hadoop

7

Пример

Page 8: Развитие среды разработки Hadoop

8

Еще о семействах столбцов• Различные множества столбцов могут иметь

различные свойства и тип доступа • Для каждого семейства можно конфигурировать

• Тип компресии (нет, gzip, LZO)• Стратегию сохранения версий• Кэш-приоритет

• Семейства столбцов хранятся отдельно на диске: доступ к одному семейству не требует ввода-вывода других

• Каждое семейство столбцов HTable разделяется (горизонтально) на регионы по значениям ключа. В определенном смысле регионы являются аналогом HDFS блоков

Page 9: Развитие среды разработки Hadoop

9

Создание таблицы

Таблица “people” создается с 3 семействами столбцов: “personal”, “contactinfo”, “creditcard”

Configuration conf = HBaseConfiguration.create();HBaseAdmin admin = new HBaseAdmin(conf);HTableDescriptor tableDescriptor = newHTableDescriptor(TableName.valueOf("people"));tableDescriptor.addFamily(new HColumnDescriptor("personal"));tableDescriptor.addFamily(new HColumnDescriptor("contactinfo"));tableDescriptor.addFamily(new HColumnDescriptor("creditcard"));admin.createTable(tableDescriptor);

Page 10: Развитие среды разработки Hadoop

10

Добавление данныхConfiguration conf = HBaseConfiguration.create();HTable table = new HTable(conf, "people");Put put = new Put(Bytes.toBytes("doe-john-m-12345"));put.add(Bytes.toBytes("personal"), Bytes.toBytes("givenName"), Bytes.toBytes("John"));put.add(Bytes.toBytes("personal"), Bytes.toBytes("mi"), Bytes.toBytes("M"));put.add(Bytes.toBytes("personal"), Bytes.toBytes("surname"), Bytes.toBytes("Doe"));put.add(Bytes.toBytes("contactinfo"), Bytes.toBytes("email"), Bytes.toBytes("[email protected]"));table.put(put);table.flushCommits();table.close();

Page 11: Развитие среды разработки Hadoop

11

Доступ к даннымGet get = new Get(Bytes.toBytes("doe-john-m-12345"));get.addFamily(Bytes.toBytes("personal"));get.setMaxVersions(3);результат результат = table.get(get);

Scan scan = new Scan(Bytes.toBytes("smith-"));scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("givenName"));scan.addColumn(Bytes.toBytes("contactinfo"), Bytes.toBytes("email"));scan.setFilter(new PageFilter(25));ResultScanner scanner = table.getScanner(scan);for (результат результат : scanner) {// ...}

Page 12: Развитие среды разработки Hadoop

12

Две основных части HBase

Мастер Контролирует серверы регионов Балансирует загрузку для регионов Направляет клиента на нужный сервер региона Может иметь резервную копию

Сервера регионов - роботы Обслуживают запросы клиентов

(чтение/запись/сканирование) Посылают сигналы готовности (HeartBeat) Мастеру Обеспечивают масштабируемость регионов

Page 13: Развитие среды разработки Hadoop

13

Общий вид архитектуры HBase

Page 14: Развитие среды разработки Hadoop

14

ZooKeeper

HBase зависит от ZooKeeper – ПО для конфигурации и управления кластером

По умолчанию HBase управляет ZooKeeper

т.е. стартует и останавливает ZooKeeper

HMaster и HRegionServers регистрируются в сервисах ZooKeeper

Page 15: Развитие среды разработки Hadoop

15

ZooKeeper Apache ZooKeeper это программный проект Apache Software Foundation ,

обеспечивая открытым исходным кодом распределенной службы настройки, службы синхронизации и именования реестра для крупных распределенных систем . ZooKeeper был суб проект Hadoop , но теперь проект верхнего уровня в своем собственном праве.

Архитектура зоопарка поддерживает высокую доступность через избыточных услуг. Таким образом, клиенты могут задать еще один мастер зоопарка, если первый не отвечает. Боец узлы хранят свои данные в иерархическом пространстве имен, так же, как в файловой системе или TRIE DataStructure. Клиенты могут читать и писать из / в узлах и таким образом, имеют общую службу конфигурации. Обновления вполне упорядочено .

Apache ZooKeeper is a software project of the Apache Software Foundation, providing an open source distributed configuration service, synchronization service, and naming registry for large distributed systems. ZooKeeper was a sub project of Hadoop but is now a top-level project in its own right.

ZooKeeper's architecture supports high availability through redundant services. The clients can thus ask another ZooKeeper master if the first fails to answer. ZooKeeper nodes store their data in a hierarchical name space, much like a file system or a trie datastructure. Clients can чтение and запись from/to the nodes and in this way have a shared configuration service. Updates are totally ordered.

Page 16: Развитие среды разработки Hadoop

16

HBase: Соединения

HBase не поддерживает соединения(joins)

Необходимо программировать на уровне приложения

Page 17: Развитие среды разработки Hadoop

17

HBase vs. HDFSHDFS/MapReduce HBASE

Запись Только добавление Выборочная запись,массовое добавление

Чтение Полное сканирование,сканирование раздела

Выборочное чтение, чтение интервала, полное сканирование

Hive/SQLэффективность

Высокая 4-5 раз медленнее

Максимальный размер данных

30+ PB 1 PB

Page 18: Развитие среды разработки Hadoop

18

Когда использовать HBase Необходим произвольный доступ для чтения

и/или записи Требуется большое количество (простых)

операций в секунду над записями больших файлов ( порядка TB)

Тип доступа простой и заранее определен (поиск по ключу, вставка/удаление/обновление отдельной записи, чтение записей с ключом в заданном интервале)

Page 19: Развитие среды разработки Hadoop

19

Cloudera Impala Cloudera - американская компания, разработчик ПО,

выпускающая коммерческую версию программной среды Apache Hadoop

Компания была основана в октябре 2008 года в Бёрлингейме (штат Калифорния) со стартовым капиталом $5 млн, основной целью бизнеса выбрана коммерциализация проекта Hadoop

К середине 2013 года за пять раундов инвестиций компания получила в общей сумме $141 млн, а в очередном раунде в марте 2014 года компания привлекла ещё $900 млн., в том числе $740 млн от Intel, при оценке бизнеса Cloudera приблизительно в $4 млрд., при этом компания Intel отказалась от развития созданного годом ранее собственного дистрибутива Hadoop в пользу продвижения решений от Cloudera

Page 20: Развитие среды разработки Hadoop

20

Impala Современный инструмент обработки SQL

запросов (с открытым кодом). Заменяет MapReduce, который

Ориентирован на пакетную обработку Требует много времени, потому что записывает

промежуточные результаты на диск Рассчитан больше на разработчиков, чем на рядовых

пользователей Как насчет Hive?

Также ориентирован на пакетную обработку Не рассчитан на работу в реальном времени, на

параллельное исполнение нескольких работ

Page 21: Развитие среды разработки Hadoop

21

Impala Impala интегрирована с HDFS и Hbase, не требуя

перемещения данных или преобразования. Используется аналитиками и исследователями данных

(data scientist) для работы с данными хранимыми в форматах Hadoop с привлечением SQL и систем (автоматичести) генерирующих SQL запросы, когда система построена в терминологии бизнес объектов

С начала 2013 года объявлена поддержка столбцового формата Parquet

С декабря 2013 Amazon объявил о поддержке Impala для AWS (Amazon Web Service)

Использует SQL синтакс типа HiveQL

Page 22: Развитие среды разработки Hadoop

22

Impala Общецелевой инструмент обработки SQL

запросов. Обрабатывает достаточно сложные аналитические

запросы Хорошо масштабируется Обрабатывает работы в диапазоне от милли-секунд до

нескольких часов Тысячи параллельно выполняемых работ

Работает напрямую с Hadoop? Может читать различные форматы файлов Использует тот же кластер

Page 23: Развитие среды разработки Hadoop

23

Impala Высокая производительность.

Реальный параллелизм (MPP) обработки запросов C++ вместо Java Генерация машинного кода во время исполнения (LLVM) Новая исполняющая система (не MapReduce)

Полностью открытый код Apache License 2.0 http://github.com/cloudera/impala

Page 24: Развитие среды разработки Hadoop

24

SQL SQL-92 без коррелированных под-запросов Подобен HiveQL ORDER требует LIMIT (в разработке) Нет сложных типов данных (в разработке) Другие удобства

• INSERT INTO SELECT • CREATE TABLE AS SELECT • LOAD INTO

UDF, UDAF (C++ и Java) JOINs должны умещаться в памяти исполняющих

узлов Постоянно добавляются новые (недостающие)

возможности языка SQL

Page 25: Развитие среды разработки Hadoop

25

Некоторые типичные задачи больших данных

Логистическая регрессия Метод K-средних Машинное обучение

Page 26: Развитие среды разработки Hadoop

26

Логистическая регрессияПусть X – вектор независимых переменных, Y – т.наз. классификатор, предположим P(Y|X) – вероятность события, классифицируемого Y

W = (W1, W2, … Wn) – вектор параметров, X=(X1, X2, …, Xn), WX – скалярное произведение

Логистическая функция (сигмоид):

1( 1| )1

P Ye

wxX

Page 27: Развитие среды разработки Hadoop

27

Логистическая регрессия, пример Выборка – пациенты различного возраста (независимая

переменная) Событие - инфаркт (Y, 1 или 0, зависимая переменная) Линейная функция плохо оценивает вероятность инфаркта,

сигмоид – гораздо лучше

Page 28: Развитие среды разработки Hadoop

28

Логистическая регрессия Логистическая регрессия исследует условное

распределение P(y|x) Пусть py(x;w) – наша оценка P(y|x), где w – вектор

настраиваемых параметров Предположим, имеется 2 класса, y = 0 и y = 1 Это эквивалентно

Т.е. логарифм «шансов» попадания в класс 1 является линейной функцией от x

Как подобрать W?

11( ; )

1p

e wxx w 0

1( ; ) 11

pe

wxx w

1

0

( ; )log( ; )

pp

x w wxx w

Page 29: Развитие среды разработки Hadoop

29

Построение обучающего алгоритма

Функция правдоподобия определяется «обучающей выборкой» с соответствующими значениями классификатора. Параметры W определяются путем максимизации функции правдоподобия

где w = <w0,w1 ,…,wn> - вектор оцениваемых параметров (модели), yl – наблюдаемое значение в l-том примере обучения, и xl – значения независимых переменных в l-том примере обучения

argmax ( | , )l l

l

P yw

w = x w

Page 30: Развитие среды разработки Hadoop

30

Построение обучающего алгоритма

Максимизация функции правдоподобия эквивалентна максимизации ее логарифма:

Обозначим это как l(W), что может быть переписано как

Заметим, здесь будет использоваться факт, что Y может принимать только значения 0 или 1, поэтому только одно слагаемое под суммой будет ненулевым для любого конкретного yl

argmax ln ( | , )l l

l

P yw

w = x w

( ) ln ( 1| , ) (1 ) ln ( 0 | , )l l l l l l

l

l y P y y P y w x w x w

Page 31: Развитие среды разработки Hadoop

31

Максимизация функции правдоподобия методом градиентного спуска

Не существует явного решения задачи максимизации (логарифма) функции правдоподобия l(w) по w. Возможный способ решения – использование градиентных методов

i-тая компонента вектора градиента имеет вид

ˆ( ) ( ( 1| , ))l l l li

li

l x y P yw

w x w

Page 32: Развитие среды разработки Hadoop

32

Максимизация функции правдоподобия методом градиентного спуска

Можно использовать простой метод градиентного спуска/подъема.для нахождение приближенного значения для вектора w. Начиная с произвольной начальной точки (например, нулевой) будем итерационно двигаться в направлении градиента с постоянным (или стремящимся к нулю шагом)

Или

ˆ( ( 1| , ))l l l li i i

l

w w x y P y x w

Page 33: Развитие среды разработки Hadoop

33

Метод градиентного спуска

Page 34: Развитие среды разработки Hadoop

Метод Ньютона

Матрица вторых производных

= () = *C*, где С – диагональная матрица Метод Ньютона

Сходится с квадратичной скоростью в окрестности максимума

Page 35: Развитие среды разработки Hadoop

Метод Ньютона

Page 36: Развитие среды разработки Hadoop

36

Логистическая регрессия, итоги Изучает распределение условной

вероятности P(y|x) Методы локального поиска.

Начинаем с начального вектора параметров Максимизируем целевую фукцию итерационным

методом Целевая фукция - логарифм функции правдоподобия

l(w). После оценки параметров по обучающей выборке, можно оценить условную вероятность P(y|x) отнесения (нового) вектора х к классам 1/0

Причем тут большие данные?

Page 37: Развитие среды разработки Hadoop

37

Метод K-средних k-means (метод k-средних) - наиболее популярный

метод кластеризации Задача - минимизировать суммарное квадратичное

отклонение точек кластеров от центров этих кластеров

Алгоритм Штейнгауза/Ллойда Инициализация. Выбираются K начальных точек –

центроидов (случайно, или погружением точек в минимальный куб и размещением начальных точек по его диагонали)

Итерация. Точки разбиваются на кластеры приданием каждой ближайшему центроиду, центроиды пересчитываются как центры кластеров

Итерации повторяются до тех пор пока ни один центроид не изменится

Page 38: Развитие среды разработки Hadoop

38

Метод K-средних, пример Начальное множество точек

Page 39: Развитие среды разработки Hadoop

39

Метод K-средних, пример Выбрать начальные центроиды произвольным

образом

Page 40: Развитие среды разработки Hadoop

40

Метод K-средних, пример Отнести точки к ближайшему центроиду

Page 41: Развитие среды разработки Hadoop

41

Метод K-средних, пример Пересчитать центроиды в полученных

кластерах

Page 42: Развитие среды разработки Hadoop

42

Метод K-средних, пример Переназначить точки новым центроидам

Page 43: Развитие среды разработки Hadoop

43

Метод K-средних, пример Пересчитать центроиды в полученных

кластерах

Page 44: Развитие среды разработки Hadoop

44

Метод K-средних, пример Переназначить точки новым центроидам

Page 45: Развитие среды разработки Hadoop

45

Метод K-средних, пример

Пересчитать центроиды в полученных кластерах

Page 46: Развитие среды разработки Hadoop

46

Метод K-средних, пример Переназначить точки новым центроидам

Нет изменений – конец алгоритма

Page 47: Развитие среды разработки Hadoop

47

Метод K-средних используя SQL Вычисление расстояний

INSERT INTO YDSELECT i, j,sum((YV.val-C.val)**2)FROM YV, C WHERE YV.l = C.l GROUP BY i, j;

Нахождение ближайшего центроидаINSERT INTO YNNSELECT YD.i, YD.jFROM YD, (SELECT i, min(distance) AS mindistFROM YD GROUP BY i) YMINDWHERE D.i = YMIND.iand YD.distance = YMIND.mindist;

Обновление центроидовINSERT INTO W SELECT j,count(*)FROM YNN GROUP BY j;UPDATE W SET w = w/model.n;INSERT INTO CSELECT l, j, avg(Y V.val) FROM YV, YNNWHERE YV.i = YNN.i GROUP BY l, j;INSERT INTO RSELECT C.l, C.j,avg( (YV.val − C.val) 2)∗ ∗FROM C, YV, YNNWHERE YV.i = YNN.iand YV.l = C.l and YNN.j = C.jGROUP BY C.l, C.j;

Может быть очень медленным из-за большого количества создания и обновления больших таблиц

Page 48: Развитие среды разработки Hadoop

48

Машинное обучение Подраздел искусственного интеллекта, изучающий методы

построения моделей, способных обучаться, и алгоритмов для их построения и обучения. Обучение по прецедентам, или индуктивное обучение, основано на выявлении закономерностей в эмпирических данных.

Имеется множество объектов (ситуаций) и множество возможных ответов (откликов, реакций). Существует некоторая зависимость между ответами и объектами, но она неизвестна. Известна только конечная совокупность прецедентов — пар «объект, ответ», называемая обучающей выборкой. На основе этих данных требуется восстановить зависимость, то есть построить алгоритм, способный для любого объекта выдать достаточно точный ответ. Для измерения точности ответов определённым образом вводится функционал качества/потерь

Некоторые классические задачи, решаемые с помощью машинного обучения

Классификация, как правило, выполняется с помощью обучения с учителем на этапе собственно обучения.

Кластеризация, как правило, выполняется с помощью обучения без учителя Для эффективной работы с большими обучающими выборками требуется

специальный инструмент, традиционные РБД и SQL не подходят

Page 49: Развитие среды разработки Hadoop

Что такое Spark? Быстрая вычислительная система на кластере

совместимая с Apache Hadoop Улучшает производтельость путем:

Конструкций для работы в опер.памяти

Общего графа вычислений Удобство использования:

Богатый API для Scala, Java, Python Интерактивная среда (shell)

До 100× быстрее(2-10× с диском)

Часто код короче 5×

Page 50: Развитие среды разработки Hadoop

Почему новая модель программирования?

MapReduce значительно упростил анализ больших данных (для определенных типов приложений)

Но, по мере того, как он приобрел популярность, пользователи захотели большего:

Более сложную (многошаговую) аналитику Произвольные запросы в интерактивном режиме Обработки больших потоков данных в режиме реального

времени Все 3 типа требуют быстрого доступа к общим

данным между параллельными работами

Page 51: Развитие среды разработки Hadoop

Общие данные в MapReduce

итер. 1 итер. 2 . . .

ввод

HDFSчтение

HDFSзапись

HDFSчтение

HDFSзапись

ввод

запрос 1

запрос 2

запрос 3

результат 1

результат 2

результат 3

. . .

HDFSчтение

Медленно из-за дублирования, сериализации, дискового ввода/вывода

Page 52: Развитие среды разработки Hadoop

итер. 1 итер. 2 . . .

ввод

Общие данные в Spark

Распределенная

память

ввод

запрос 1

запрос 2

запрос 3

. . .

Одноразоваяобработка

10-100× быстрее, чем сеть и диск

Page 53: Развитие среды разработки Hadoop

Модель программирования Spark Ключевая идея: эластичные распределенные

наборы данных (resilient distributed datasets, RDDs)

Распределенные наборы объектов, которые могут храниться и обрабатываться в памяти/кэше узлов кластера

Обрабатываются с использованием (специальных) параллельных операторов

Автоматически перевычисляются при отказах Программный интерфейс

Функциональный APIs для Scala, Java, Python Интерактивное использование из оболочки Scala

Page 54: Развитие среды разработки Hadoop

Пример: Анализ журнала ошибокЗагрузить сообщения об ошибках из журнала в память, затем интерактивно искать различные шаблоны

lines = spark.textFile(“hdfs://...”)errors = lines.filter(lambda x: x.startswith(“ERROR”))errors.cache()

блок 1

блок 2

блок 3

робот

робот

робот

Драйвер

errors.filter(lambda x: “foo” in x).counterrors.filter(lambda x: “bar” in x).count. . .

задачи

результатыкэш 1

кэш 2

кэш 3

Базовый набор

Преобразованный набор

действие

результат: масштабируемый до1TB в 5-7 сек. (против 170 сек. для

данных на диске)

Page 55: Развитие среды разработки Hadoop

Поддерживаемые операторы

mapfiltergroupBysortunionjoinleftOuterJoinrightOuterJoin

reducecountfoldreduceByKeygroupByKeycogroupcrosszip

sampletakefirstpartitionBymapWithpipesave...

Page 56: Развитие среды разработки Hadoop

Shark: Hive, использующий Spark вместо MapReduce

Столбцовый SQL аналитический инструмент на основе Spark

Поддерживает и SQL, и сложную аналитику До 100 раз быстрее, чем Hive

Совместим с Hive HiveQL, UDF/UDAF, Scripts Мажет работать на существующих хранилищах данных,

использующих Hive Используется в Yahoo! для быстрого OLAP

анализа в оперативной памяти

Page 57: Развитие среды разработки Hadoop

Архитектура Hive

Мета-данные

HDFS

Клиент

Драйвер

РазборSQL

Оптимизациязапроса

План выпол-нения запроса

выполнение

CLI JDBC

MapReduce

Page 58: Развитие среды разработки Hadoop

Архитектура Shark

Мета-данные

HDFS

Клиент

Драйвер

РазборSQL

План выпол-нения запроса

выполнение

CLI JDBC

Spark

управлениекэшем

Оптимизациязапроса

Page 59: Развитие среды разработки Hadoop

Производительность

1.7 TB Warehouse Data на 100 EC2 узлах

Page 60: Развитие среды разработки Hadoop

Интеграция на основе Spark

Единая система для SQL, обработки графов, машинного обучения

Все используют то же множество роботов и кэшей

Page 61: Развитие среды разработки Hadoop

Заключение Аналитика для больших данных развивается, включая:

Более сложные области применения (например, машинное обучение)

Больше интерактивных специальных запросов Больше потоковой обработки в реальном времени

Spark – это быстрая платформа, которая объединяет такие приложения

Больше информации на: spark.apache.org

Page 62: Развитие среды разработки Hadoop

Проблемы больших данных Первые успехи

Moneyball, 2002, Oakland Athletics, статистический подход к выбору игроков в бейсболе.

Модель Google распространения гриппа, 2009 H1N1, корреляция между определенными запросами и распространением гриппа в пространстве и времени, 450млн моделей, 45 терминов показали сильную корреляцию.

Oren Etszioni, инициировал нескольно компаний, работающих с «большими данными» до того, как сам термин утвердился. Farecast, продажа авиа-билетов, к 2012г. Система давала правильный прогноз в 75% случаев и экономила пользователю, в среднем $50 на билет, MicroSoft купила Farecast за $110 млн.

Page 63: Развитие среды разработки Hadoop

Проблемы больших данных Борьба с ошибками

«Измерить – значит узнать»(Кельвин), «Знание - сила» (Бэкон) Измерения имеют погрешность, больше измерений – больше ошибок, больше задержка в обработке

Проверка текста (по словарю) и грамматики, Microsoft Word, Google Translator

CPI, 90 городов, 80000 ценников, поддержка - $20 млн./год, задержка в 2-3 месяца. 2 экономиста из МИТ разработали модель, получающую данные с Интернета, и позволяющую быстрее реагировать на признаки кризиса

Тенденция в обработке данных - от частичных «очищенных» данных к большему объему или к полным данным, содержащим ошибки и «пустоты»

Page 64: Развитие среды разработки Hadoop

Проблемы больших данных Корреляция

Amazon.com, изменение стратегии рекламы от прошлых покупок, через корреляцию с похожими покупателями, к корреляции между продуктами и вкусами покупателя

Target, аналитика для прогнозирования. Школьница получила купон на детскую одежду и кроватку. Женщины, ожидающие ребенка, регистрируются в программе детских подарков. Их «покупательские корзины» анализируются. Затем анализируются корзины других покупателей и, если корреляция высока, то высылается соответствующая реклама.

Обслуживание смотровых колодцев в Нью Йорке (51 000 колодцев, 150 00 км подземных кабелей). Группа анализировала 106 параметров, влияющих на аварийность. 10% колодцев из составленного списка имели 44% проблем.

Page 65: Развитие среды разработки Hadoop

Проблемы больших данных Корреляция без причины, пример 1

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009

5 4.7 4.6 4.4 4.3 4.1 4.2 4.2 4.2 4.1

8.2 7 6.5 5.3 5.2 4 4.6 4.5 4.2 3.7Корреляция: 0.992558

Разводы на 1000 жителейПотребление маргарина, фунтов

Page 66: Развитие среды разработки Hadoop

Проблемы больших данных Корреляция без причины, пример 2

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009

18,594 19,753 20,734 20,831 23,029 23,597 23,584 25,525 27,731 29,449

5,688 6,198 6,462 6,635 7,336 7,248 7,491 8,161 8,578 9,000

Корреляция: 0.992082

Расходы США нанауку и технологиюСамоубийства путем повешения/удушения

Page 67: Развитие среды разработки Hadoop

Проблемы больших данных Построение 3-х мерной модели протеинов на аснове анализа ДНК

и статического анализа не отменяет необходимости понимания физики и биохимии

Тот же алгоритм анализа больших данных может давить худший результат в изменившихся условиях. Google Flu Trends.

Данные с Web или телефонных опросов могут быть не репрезентативными.

Успехи больших данных – в относительно типичных, хорошо известных областях. Google три-граммы и перевод.

Нарушение прав личности на частную жизнь Навязчивая реклама. Нестотря на определенные успехи,

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

Page 68: Развитие среды разработки Hadoop

70

Ссылки к материалам обзораhttp://static.googleusercontent.com/media/research.google.com/en/us/archive/gfs-sosp2003.pdf http://static.googleusercontent.com/media/research.google.com/en/us/archive/mapreduce-osdi04.pdfhttp://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdfhttp://ru.wikipedia.org/wiki/ACIDhttp://en.wikipedia.org/wiki/Eventual_consistencyhttp://ru.wikipedia.org/wiki/Оптимизация_запросов_СУБД http://vldb.org/pvldb/vol5/p1712_avriliafloratou_vldb2012.pdf http://cs.brown.edu/courses/cs227/archives/2011/slides/mar14-hbase.pdfhttp://en.wikipedia.org/wiki/Cloudera_Impalahttp://2013.berlinbuzzwords.de/sites/2013.berlinbuzzwords.de/files/slides/Impala%20tech%20talk.pdfhttp://ru.wikipedia.org/wiki/Apache_Spark http://spark.apache.orghttp://www.tylervigen.com/view_correlation?id=1597http://madlib.net/Nate Silver. The Signal and the Noise: Why So Many Predictions Fail — but Some Don't. 2012Viktor Mayer-Schonbrger and Kenneth Cukier. Big Data. 2014