XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ Качалов Дмитрий Леонидович РАЗРАБОТКА ВЕБ-ПРИЛОЖЕНИЯ ДЛЯ ПОИСКА В БОЛЬШИХ ДАННЫХ СОБЫТИЙ С ЗАДАННЫМИ ПАРАМЕТРАМИ ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ Актуальность темы исследования. Сейчаслог-файлы генерируются с рекордной скоростью. Традиционные решения баз данных не подходят для анализа таких логов, потому что они не способны справиться с таким большим объемом логов эффективно. Андрей Пало и Эрик Полсон в 2009 году сравнили SQL СУБД и HadoopMapReduce и предложили, что HadoopMapReduce справляется с задачами быстрее, а также загружает данные быстрее, чем СУБД. Также традиционные СУБД не могут справиться с большими объемами данных. Здесь технологии больших данных приходят на помощь. HadoopMapReduce применим во многих областях для анализа больших данных. Как лог-файлы являются одним из типов больших данных так Hadoop является лучшей подходящей платформой для хранения логов и параллельного выполнения MapReduce программы для анализа их. ApacheHadoop представляет собой новый способ для предприятий для хранения и анализа данных. Hadoop является проектом с открытым исходным кодом, созданным DougCutting, и администрируемый ApacheSoftwareFoundation. Это позволяет приложениям работать с тысячами узлами и петабайтами данных. В то время как он может быть использован на одной машине, его истинная сила заключается в его способности к расширению, чтобы сотни или тысячи компьютеров, каждый из которых будет с несколькими процессорными ядрами. Целью работы является разработка метод для повышения эффективности процесса обработки лог-файлов больших размеров. XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ Для достижения поставленной цели необходимо решить ряд задач: 1) анализ существующих систем обработки и визуализации больших данных; выявление требований к приложению и средствам разработки; 2) подготовка и тестирование серверного программного и аппаратного обеспечения; 3) разработка эффективного метода распределенной обработки лог файлов больших размеров 4) проектирование, реализация приложения; 5) тестирование и обоснование эффективности. Объектом исследования является процесс обработки больших данных. Предметом исследования являются методы обработки больших объёмов данных на кластере. Гипотеза исследования:разрабатываемый метод обработки лог-файлов регистрации геоинформационных событий повысит эффективность обработки данных за счёт уменьшения времени поиска необходимой информации в них. Научная новизна работы заключается в методе, включающим в себя алгоритм обработки лог-файлов больших объемов на основе технологии mapreduce, позволяющий производить поиск информации, собираемых в процессе регистрации данных (на примере событий геоинформационной системы). Практическая значимость работы заключается в том, что профессионалам, которые используют в своей работе большие данные теперь намного быстрее можно получить доступ к необходимым данным, так как анализ больших данных происходит на сервере с помощью специального приложения, а результаты работы доступны через веб-интерфейс в любом месте, где есть Интернет. ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ В начале работы обоснована актуальность темы, сформулированы цели и задачи исследования, определены объект, предмет и гипотеза исследования, научная новизна работы и практическая значимость. В работе представлен обзор предметной области, рассмотрены существующие стандарты и системы обработки больших данных, которые уже активно используются разработчиками по всему миру. Существуют три типа задач связанных с BigData: Первая задача - хранение и управление. Объем данных в сотни терабайт или петабайт не позволяет легко хранить и управлять ими с помощью традиционных реляционных баз данных. Вторая задача - неструктурированная информация. Большинство всех данных BigData являются неструктурированными. Т.е. как можно организовать текст, видео, изображения, и т.д.? Третья задача - анализ BigData. Как анализировать неструктурированную информацию? Как на основе BigData составлять простые отчеты, строить и внедрять углубленные прогностические модели? Эти задачи с разным уровнем успешности решаются современными технологиями больших данных. Типовая модель обработки лог-файлов показана на рисунке 1, в ходе работы разработан метод, позволяющий ускорить и упростить обработку данных (рис. 2). XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ Рисунок 1 – диаграмма AS-IS Рисунок 2 – диаграмма TO-BE процесса «Поиск в больших данных» BigData обычно хранятся и организуются в распределенных файловых системах. В общих чертах, информация хранится на нескольких (иногда тысячах) жестких дисках, на стандартных компьютерах. Так называемая «карта» (map) отслеживает, где (на каком компьютере и/или диске) хранится конкретная часть информации. Для обеспечения отказоустойчивости и надежности, каждую часть информации обычно сохраняют несколько раз, например – трижды. Так, например, предположим, что вы собрали индивидуальные транзакции в большой розничной сети магазинов. XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ Подробная информация о каждой транзакции будет храниться на разных серверах и жестких дисках, а «карта» (map) индексирует, где именно хранятся сведения о соответствующей сделке. С помощью стандартного оборудования и открытых программных средств для управления этой распределенной файловой системой (например, Hadoop), сравнительно легко можно реализовать надежные хранилища данных в масштабе петабайт. В работе рассматриваются основные методы обработки больших данных, а так же разработка собственного метода анализа данных. Все современные методы анализа больших данных строятся на NoSQL системах и методологии MapReduce. MapReduce - это технология параллельной обработки больших объемов сырых данных, например результатов работы краулеров или логов веб запросов, вообще по статистике до 80% задач могут маппится на MapReduce, и именно MapReduce движет NoSQL. Существуют разные реализации MapReduce. Достаточно известна и запатентована реализация этого алгоритма и подхода Google. Возникла технология MapReduce из необходимости обрабатывать данные, которые не вместятся ни в оперативной памяти, ни на жестком диске: технология нацелена на обработку петабайтов (10^15) данных. Поэтому данные обрабатываются на кластере. Данными являются таблицы, содержащие список записей вида (KEY, VALUE). Пользователю достаточно задать функции обработки Map и Reduce (рис. 3), и платформа сама позаботится о сортировке данных, запуске функций обработки, повторном исполнении упавших транзакций и много чем еще. Две функции, которые предлагается реализовать пользователю: – Map - функция, принимающая на вход одну запись вида (KEY, VALUE), и возвращающая по ней любое количество новых записей (KEY1, VALUE1), (KEY2, VALUE2), ... – Reduce - функция, принимающая на вход все записи с данным ключом. XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ Рисунок 3 – Механизм обработки MapReduce. Так же в работе рассмотрен процесс создания инфраструктуры для обработки больших данных. Оптимальные программные параметры вычислительного узла для работы с большими данными следующие: – ОС: Linux CentOS 6.5; – Java 7; – Eclipse; – Cloudera/Apache Hadoop; – Apache Web Server; – Apache Tomcat. В конце работы приводится реализация программного продукта для обработки больших данных на кластере а так же исследование, показывающее эффективность работы с новым продуктом. Разработанная инфраструктура для обработки больших данных, обладает архитектурой, представленной на рисунке 4. XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ Рисунок 4 – Архитектура веб-приложения Целью исследования, которое приводится далее в четвёртой главе работы является доказательство того факта что поиск осуществляемый с помощью разработанной системы действительно более эффективен чем поиск, осуществляемый другими способами до разработки этой системы. Так, до разработки системы, поиск осуществлялся простыми средствами, например MSExcel или утилита grep в ОС Linux для поиска в текстовых файлах. После разработки системы, стало возможно удалённо запускать процесс поиска и осуществлять поиск более быстро и удобно. Для исследования используются открытые данные из системы регистрации преступлений города Чикаго. Для данной предметной области характерны следующие типы задач: - выделять на карте районы по характерному признаку; - ранжировать районы по данному признаку; - ранжировать районы по динамике изменения характерного признака. Результаты исследования для одного сервера и кластера приведены на рисунках 5 – 7. XII ВСЕРОССИЙСКАЯ ШКОЛА-КОНФЕРЕНЦИЯ МОЛОДЫХ УЧЕНЫХ "УПРАВЛЕНИЕ БОЛЬШИМИ СИСТЕМАМИ" _____________________________________________________________________ 10000 сек 1000 Однонодовый кластер 100 Виртуальный кластер 10 1 Мб 1 10 100 1000 10000 100000 Рисунок 5 – Результаты по первой задаче 10000 сек 1000 Однонодовый кластер 100 Виртуальный кластер 10 1 1 10 100 1000 10000 Мб 100000 Рисунок 6 – Результаты по второй задаче сек 100000 10000 Однонодовый кластер 1000 Виртуальный кластер 100 10 1 1 10 100 1000 Мб 10000 100000 Рисунок 7 – Результаты по третьей задаче