лекция. Lektsii_ПКТ. Конспект лекций по дисциплине прикладные компьютерные технологии Направление подготовки 09. 03. 01 Информатика и вычислительная техника
Скачать 7.93 Mb.
|
Разница подходов
Функции и задачи, связанные с Big Data Когда говорят о Big Data, упоминают правило VVV — три признака или свойства, которыми большие данные должны обладать: Volume — объем (данные измеряются по величине физического объема документов). Velocity — данные регулярно обновляются, что требует их постоянной обработки. Variety — разнообразные данные могут иметь неоднородные форматы, быть неструктурированными или структурированными частично. В России под Big Data подразумевают также технологии обработки, а в мире — лишь сам объект исследования.
В 2007 году стал популярен новый тип машинного обучения — Deep learning (Глубокое обучение). Он позволил усовершенствовать нейронные сети до уровня ограниченного искусственного интеллекта. При обычном машинном обучении компьютер извлекал опыт через примеры программиста, а при Deep Learning система уже сама создает многоуровневые вычисления и делает выводы. Хранение и управление Big Data Big Data обычно хранятся и организуются в распределенных файловых системах. В общих чертах, информация хранится на нескольких (иногда тысячах) жестких дисках, на стандартных компьютерах. Так называемая «карта» (map) отслеживает, где (на каком компьютере и/или диске) хранится конкретная часть информации. Для обеспечения отказоустойчивости и надежности, каждую часть информации обычно сохраняют несколько раз, например – трижды. Так, например, предположим, что вы собрали индивидуальные транзакции в большой розничной сети магазинов. Подробная информация о каждой транзакции будет храниться на разных серверах и жестких дисках, а «карта» (map) индексирует, где именно хранятся сведения о соответствующей сделке. С помощью стандартного оборудования и открытых программных средств для управления этой распределенной файловой системой (например, Hadoop), сравнительно легко можно реализовать надежные хранилища данных в масштабе петабайт. Неструктурированная информация Большая часть собранной информации в распределенной файловой системе состоит из неструктурированных данных, таких как текст, изображения, фотографии или видео. Это имеет свои преимущества и недостатки. Преимущество состоит в том, что возможность хранения больших данных позволяет сохранять “все данные”, не беспокоясь о том, какая часть данных актуальна для последующего анализа и принятия решения. Недостатком является то, что в таких случаях для извлечения полезной информации требуется последующая обработка этих огромных массивов данных. Хотя некоторые из этих операций могут быть простыми (например, простые подсчеты, и т.д.), другие требуют более сложных алгоритмов, которые должны быть специально разработаны для эффективной работы на распределенной файловой системе. В то время как объем данных может расти в геометрической прогрессии, возможности извлекать информацию и действовать на основе этой информации, ограничены и будут асимптотически достигать предела. Важно, чтобы методы и процедуры для построения, обновления моделей, а также для автоматизации процесса принятия решений были разработаны наряду с системами хранения данных, чтобы гарантировать, что такие системы являются полезными и выгодными для предприятия. Анализ Big Data Это действительно большая проблема, связанная с анализом неструктурированных данных Big Data. Для упрощения анализа были разработан алгоритм map-reduce. При анализе сотни терабайт или петабайт данных, не представляется возможным извлечь данные в какое-либо другое место для анализа. Процесс переноса данных по каналам на отдельный сервер или сервера (для параллельной обработки) займет слишком много времени и требует слишком большого трафика. Вместо этого, аналитические вычисления должны быть выполнены физически близко к месту, где хранятся данные. MapReduce – это модель распределенной обработки данных, предложенная компанией Google для обработки больших объёмов данных на компьютерных кластерах. MapReduce неплохо иллюстрируется следующей картинкой (взято по ссылке): M apReduce предполагает, что данные организованы в виде некоторых записей. Обработка данных происходит в 3 стадии: Стадия Map. На этой стадии данные предобрабатываются при помощи функции map(), которую определяет пользователь. Работа этой стадии заключается в предобработке и фильтрации данных. Работа очень похожа на операцию map в функциональных языках программирования – пользовательская функция применяется к каждой входной записи. Функция map() примененная к одной входной записи и выдаёт множество пар ключ-значение. Множество – т.е. может выдать только одну запись, может не выдать ничего, а может выдать несколько пар ключ-значение. Что будет находится в ключе и в значении – решать пользователю, но ключ – очень важная вещь, так как данные с одним ключом в будущем попадут в один экземпляр функции reduce. Стадия Shuffle. Проходит незаметно для пользователя. В этой стадии вывод функции map «разбирается по корзинам» – каждая корзина соответствует одному ключу вывода стадии map. В дальнейшем эти корзины послужат входом для reduce. Стадия Reduce. Каждая «корзина» со значениями, сформированная на стадии shuffle, попадает на вход функции reduce(). Функция reduce задаётся пользователем и вычисляет финальный результат для отдельной «корзины». Множество всех значений, возвращённых функцией reduce(), является финальным результатом MapReduce-задачи. Таким образом, скажем, для вычисления итоговой суммы, алгоритм будет параллельно вычислять промежуточные суммы в каждом из узлов распределенной файловой системы, и затем суммировать эти промежуточные значения. Несколько дополнительных фактов про MapReduce: 1) Все запуски функции map работают независимо и могут работать параллельно, в том числе на разных машинах кластера. 2) Все запуски функции reduce работают независимо и могут работать параллельно, в том числе на разных машинах кластера. 3) Shuffle внутри себя представляет параллельную сортировку, поэтому также может работать на разных машинах кластера. Пункты 1-3 позволяют выполнить принцип горизонтальной масштабируемости. 4) Функция map, как правило, применяется на той же машине, на которой хранятся данные – это позволяет снизить передачу данных по сети (принцип локальности данных). 5) MapReduce – это всегда полное сканирование данных, никаких индексов нет. Это означает, что MapReduce плохо применим, когда ответ требуется очень быстро. Для составления простых отчетов BI (Business Intelligence), существует множество продуктов с открытым кодом, позволяющих вычислять суммы, средние, пропорции и т.п. с помощью map-reduce. Таким образом, получить точные подсчеты и другие простые статистики для составления отчетов очень легко. На первый взгляд может показаться, что построение прогностических моделей в распределенной файловой системой сложнее, однако это совсем не так. Рассмотрим предварительные этапы анализа данных: Подготовка данных. Важно, что, несмотря на то, что наборы данных могут быть очень большими, информация, содержащаяся в них, имеет значительно меньшую размерность. Например, в то время как данные накапливаются ежесекундно или ежеминутно, многие параметры (температура газов и печей, потоки, положение заслонок и т.д.) остаются стабильными на больших интервалах времени. Иначе говоря, данные, записывающиеся каждую секунду, являются в основном повторениями одной и той же информации. Таким образом, необходимо проводить “умное” агрегирование данных, получая для моделирования и оптимизации данные, которые содержат только необходимую информацию о динамических изменениях, влияющих на эффективность работы электростанции и количество выбросов. Классификация текстов и предварительная обработка данных. Большие наборы данных могут содержать гораздо меньше полезной информации. Для увеличения ценности их можно классифицировать и агрегировать. Существует множество инструментов для проведения такого агрегирования данных в распределенной файловой системе, что позволяет легко осуществлять данный аналитический процесс. Построение моделей. Часто задача состоит в том, чтобы быстро построить точные модели для данных, хранящихся в распределенной файловой системе. Существуют реализации map-reduce для различных алгоритмов data mining, прогностической аналитики, подходящих для масштабной параллельной обработки данных в распределенной файловой системе. Однако, именно из-за того, что вы обработали очень большое количество данных, уверенности, что итоговая модель является действительно более точной – нет. На самом деле, удобнее строить модели для небольших сегментов данных в распределенной файловой системе. Статистическая и математическая точность заключается в том, что модель линейной регрессии, включающая, например, 10 предикторов, основанных на правильно сделанной вероятностной выборке из 100 000 наблюдений, будет так же точна, как модель, построенная на 100 миллионах наблюдений. В вероятностной выборке каждый элемент совокупности имеет определенную, заранее заданную вероятность быть выбранным. Причем для каждого элемента совокупности вероятность попадания в выборку одинакова. В действительности, точность модели зависит от качества выборки (каждое наблюдение в популяции должно иметь известную вероятность выбора) и её размер связан со сложностью модели. Размер популяции не имеет значения. Именно по этой причине, например, выборка, состоящая всего из нескольких тысяч голосов, может позволить построить очень точные прогнозы реальных результатов голосования. Использование всего объема данных для сегментации и кластеризации позволит эффективно строить большое количество моделей для небольших кластеров. Например, можно ожидать, что модели, основанные на широкой сегментации (20-30 лет), будут менее точными, чем большое число моделей, построенных на более детальной сегментации (например, 20-21-летние студенты, проживающие в общежитии, и учащиеся на факультете бизнеса). Таким образом, один из способов получения преимуществ Big Data заключается в том, чтобы использовать доступную информацию для построения большого количества моделей для большого числа сегментов и, затем, по соответствующей модели строить прогнозы. В предельном случае, каждый отдельный «человек» в большом хранилище данных клиентов может иметь свою собственную модель для прогнозирования будущих покупок. Критика Big Data Хранение Big Data не всегда приводит к получению выгоды. Хранение огромного количества данных, описывающих некоторые легко наблюдаемые события, не всегда приводит к выгодному понимаю реальности. Это в равной мере относится к анализу акций, каналов twitter, медицинских данных, данных CRM, или мониторингу комплекса оборудования для диагностического обслуживания. Например, достоверный список потенциальных покупателей товаров, наряду с демографической информацией, а также информацией о чистой стоимости товаров, могут быть гораздо более ценными для поставщиков, чем массивное хранилище данных о кликах на различных сайтах онлайн-магазинов. Скорость обновления данных и «актуальный» временной интервал. Может случиться, что необходимо построить модель на производстве, предсказывающую неполадки на одну секунду вперед на основе непрерывного потока данных для тысяч параметров. Однако если это требует, чтобы инженер два часа детализировал результат и «что-то делал», то такая система может быть бессмысленной. Для поставщиков домашней фурнитуры, было бы важнее получить “сигнал” за месяц или два перед тем, как осуществится покупка жилья, вместо информации в режиме реального времени уже после покупки, когда потенциальный клиент просматривает различные Интернет-сайты в поисках фурнитуры. В целом, следует начинать с четкого определения необходимых параметров и стратегии того, как добиться успехов в той или иной области. После этого уже будет очевиден необходимый временной интервал обновления данных, а, следовательно, и требования к оптимальному плану сбора данных, их хранению и анализу. Применение Big Data Активнее всего большие данные используют в финансовой и медицинской отраслях, высокотехнологичных и интернет-компаниях, а также в государственном секторе. Всех, кто имеет дело с большими данным, можно условно разделить на несколько групп: Поставщики инфраструктуры — решают задачи хранения и предобработки данных. Например: IBM, Microsoft, Oracle, Sap и другие. Датамайнеры — разработчики алгоритмов, которые помогают заказчикам извлекать ценные сведения. Среди них: Yandex Data Factory, «Алгомост», Glowbyte Consulting, CleverData и др. Системные интеграторы — компании, которые внедряют системы анализа больших данных на стороне клиента. К примеру: «Форс», «Крок» и др. Потребители — компании, которые покупают программно-аппаратные комплексы и заказывают алгоритмы у консультантов. Это «Сбербанк», «Газпром», «МТС», «Мегафон» и другие компании из отраслей финансов, телекоммуникаций, ритейла. Разработчики готовых сервисов — предлагают готовые решения на основе доступа к большим данным. Они открывают возможности Big Data для широкого круга пользователей. Основные поставщики больших данных в России — поисковые системы. Они имеют доступ к массивам данных, а кроме того, обладают достаточной технологической базой для создания новых сервисов: Google. На рынке бизнес-аналитики с 2012 года, когда компания запустила Google BigQuery — облачный сервис для анализа Big Data в режиме реального времени. Через год его интегрировали в Google Analytics Premium — платную версию счетчика. Недавно Google представила Cloud Bigtable — масштабируемый, облачный сервис баз данных. «Яндекс». Большинство сервисов компании построено на анализе больших данных: поисковый алгоритм на основе нейросетей «Палех», машинный перевод, фильтрация спама, таргетинг в контекстной рекламе, предсказание пробок и погоды, распознавание речи и образов, управление беспилотными автомобилями. Некоторое время в «Яндексе» существовало отдельное подразделение Yandex Data Factory, которое оказывало консультационные услуги крупным компаниям. Но впоследствии эта структура была внедрена в отдел поиска. Mail.Ru Group. Система веб-аналитики «Рейтинг Mail.Ru» — первый проект, который начал применять технологии обработки больших данных. Сейчас Big Data используется практически во всех сервисах компании — «Таргет.Mail.Ru», «Почта Mail.Ru», «Одноклассники», «Мой Мир», «Поиск Mail.Ru» и других. С помощью анализа больших данных Mail.Ru таргетирует рекламу, оптимизирует поиск, ускоряет работу техподдержки, фильтрует спам, изучает поведение пользователей и т. д. «Рамблер». Сначала медиахолдинг использовал большие данные только в поиске, а затем в компании появилось направление датамайнинга. «Рамблер» применяет технологии для персонализации контента, блокировки ботов и спама, обработки естественного языка. Выгоды использования технологии в бизнесе: Упрощается планирование. Увеличивается скорость запуска новых проектов. Повышаются шансы проекта на востребованность. Можно оценить степень удовлетворенности пользователей. Проще найти и привлечь целевую аудиторию. Ускоряется взаимодействие с клиентами и контрагентами. Оптимизируются интеграции в цепи поставок. Повышается качество клиентского сервиса, скорость взаимодействия. Повышается лояльность текущих клиентов. Интерес к технологиям больших данных в России растет, но у Big Data есть как драйверы, так и ограничители.
Общая информация о Hadoop Hadoop – программный стек для работы с большими данными. Изначально Hadoop был, в первую очередь, инструментом для хранения данных и запуска MapReduce-задач, сейчас же Hadoop представляет собой большой стек технологий, так или иначе связанных с обработкой больших данных (не только при помощи MapReduce). Основными (core) компонентами Hadoop являются: Hadoop Distributed File System (HDFS) – распределённая файловая система, позволяющая хранить информацию практически неограниченного объёма. Hadoop YARN – фреймворк для управления ресурсами кластера и менеджмента задач, в том числе включает фреймворк MapReduce. Hadoop common Также существует большое количество проектов непосредственно связанных с Hadoop, но не входящих в Hadoop core: Hive – инструмент для SQL-like запросов над большими данными (превращает SQL-запросы в серию MapReduce–задач); Pig – язык программирования для анализа данных на высоком уровне. Одна строчка кода на этом языке может превратиться в последовательность MapReduce-задач; Hbase – колоночная база данных, реализующая парадигму BigTable; Cassandra – высокопроизводительная распределенная key-value база данных; ZooKeeper – сервис для распределённого хранения конфигурации и синхронизации изменений этой конфигурации; Mahout – библиотека и движок машинного обучения на больших данных. Отдельно хотелось бы отметить проект Apache Spark, который представляет собой движок для распределённой обработки данных. Apache Spark обычно использует компоненты Hadoop, такие как HDFS и YARN для своей работы, при этом сам в последнее время стал популярнее, чем Hadoop. |