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

advertisement
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 – Результаты по третьей задаче
Download