Федеральное государственное автономное образовательное учреждение
высшего образования
КАЗАНСКИЙ (ПРИВОЛЖСКИЙ) ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
ВЫСШАЯ ШКОЛА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И
ИНФОРМАЦИОННЫХ СИСТЕМ
Направление подготовки: 09.03.03 – Прикладная информатика
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Кластерная потоковая обработка данных для Интернета Вещей
Работа завершена:
«___»_____________2017 г.
Студент группы 11-511 ____________________
Работа допущена к защите:
Научный руководитель
старший научный сотрудник, к. н.
«___»_____________2017 г. ____________________ С. Дистефано
Директор Высшей школы ИТИС
«___»_____________2017 г. __________________
Казань – 2017 г.
Содержание
ВВЕДЕНИЕ 3
1. ПОТОКОВАЯ ОБРАБОТКА ДАННЫХ 6
1.1. Основные определения 6
1.2. Обзор инструментов (фреймворков) потоковой обработки данных 8
1.3. Выводы и выбор фреймворка 11
2. ВВЕДЕНИЕ В APACHE NIFI 12
2.1. Описание Apache NiFi и его возможностей 12
2.2. Основные концепции NiFi 12
2.3. Преимущества NiFi 14
2.4. Архитектура NiFi 15
2.5. Кластер Apache NiFi 17
2.6. Безопасность в Apache NiFi 23
3. ЗАПУСК КЛАСТЕРА APACHE NIFI В РАЗЛИЧНЫХ ОКРУЖЕНИЯХ 25
3.1. Запуск в виртуальной среде 25
3.2. Запуск кластера на граничных устройствах 26
3.3. Рекомендации запуска NiFi на Raspberry Pi 27
4. ДИНАМИЧЕСКОЕ ФОРМИРОВАНИЕ КЛАСТЕРА APACHE NIFI 30
4.1. Обнаружение устройств в локальной сети 30
4.2. Выбор способа поиска устройств 33
4.3. Возможности Apache Zookeeper для создание кластера 33
4.3. Программа для обнаружение и подключение устройств к кластеру 35
4.4. Формирование списка кандидатов кластера 37
ЗАКЛЮЧЕНИЕ 38
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 39
ВВЕДЕНИЕ
По прогнозам CISCO, к 2020 году общее число подключенных к интернету устройств достигнет 50 млрд [1]. Объем трафика устройств передающих информацию в центрально место или облако будет только расти. Если принять, что среднее подключенное к сети устройство к 2020г. будет выдавать в 10 раз больше данных (например, 100 МБ на устройство ежемесячно в сравнении с текущими 10 МБ ежемесячно), то для 50 млрд. устройств объем данных вырастет до 50 трлн. ГБ [2].
Быстрый рост и распространение технологий Интернета вещей и Всеобъемлющего Интернета представляются неизбежными [1]. Возникают задачи, как обрабатывать все эти данные и понимать их. В связи с этим растет потребность в анализе потока данных на границе сети [52], так как многократный рост трафика может оказать негативное влияние на архитектуры сетей, к которым подключатся огромное количество различных IoT устройств [2]. Чтобы извлечь из этого максимальную пользу, необходимо обрабатывать и анализировать данные, которые генерируют все эти объекты, в реальном времени. Для такого рода приложений, работающих в реальном времени и генерирующий больший объем трафика, необходима новая распределенная модель, в которой функционал облачных вычислений, сетевого взаимодействия и хранения спускается с облака на землю, на самую границу сети [52][53], формируя новый слой – туманных вычислений [52].
Туманные вычисления решают ряд самых распространенных сегодня проблем, среди которых [52]:
- высокая задержка в сети; трудности, связанные с подвижностью конечных узлов; потеря связи; высокая стоимость интернет трафика.
Туманные вычисления не требуют использование мощных серверов, которые требуются в облачных технологиях. В основном, такие вычисления выполняются на маломощных и рассредоточенных устройствах вроде тех, что в последнее время стали использоваться в автомобилях, городских системах, электроснабжении — в целом, практически всюду. Без необходимости эти устройства не обмениваются данными с облаком [52].
Интернет вещей способствует сдвигу архитектуры к границе сети, приближая аналитик, обработку и даже приложения к источникам данных и делая возможным в реальном времени реагировать на информацию поступающую в реальном времени [53][54][55].
Актуальность данной работы обусловлена необходимостью высокоуровневого подхода к управлению взаимодействия Интернета вещей и обработки данных на устройствах находящихся ближе к источнику данных [48][49], включая мобильные устройства [50], с возможностью объединения и распределения обработки данных на границе сети, обеспечивающие пользователям доступ в реальном времени к данным, прогнозам и трендам [51].
Основной целью данной работы является разработка подходов к кластерной потоковой обработки данных при взаимодействии Интернета Вещей и реализация решений на основании данных подходов.
Объектом исследования является процесс создания и разработки кластерной потоковой обработки данных для Интернета Вещей в парадигме Туманных вычислений.
Предметом исследования является платформа для кластерной обработки потоковых данных для Интернета Вещей.
Для достижения поставленной цели необходимо решить следующие задачи:
Обзор и анализ существующих решений и инструментов. Определить среду разработки и инструменты. Настроить среду разработки для симуляций и тестирования платформы. Разработка решений для кластерной потоковой обработки и их проверка на различных устройствах.1. ПОТОКОВАЯ ОБРАБОТКА ДАННЫХ
1.1. Основные определения
Определения используемые в данной работе приведены в таблице 1.
Таблица 1. Основные термины и определения.
Термин | Определение |
Большие данные (big data) | в информационных технологиях - совокупность подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов и значительного многообразия для получения воспринимаемых человеком результатов, эффективных в условиях непрерывного прироста, распределения по многочисленным узлам вычислительной сети [3]. |
Встраиваемая система (embedded system) | специализированная микропроцессорная система управления, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет [4]. |
Виртуальная машина (VM) | аппаратная и/или программная система, эмулирующая аппаратное обеспечение некоторой платформы и исполняющая программы для целевой платформы на хост платформе или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы или операционные системы [5]. |
VirtualBox | программный продукт виртуализации для различных операционных систем [6]. |
Вагрант (Vagrant) | свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации [7]. |
Интернет вещей (Internet of Things, IoT) | концепция построения вычислительных сетей из физических объектов (иначе – «вещей»), обладающих возможностями взаимодействия с окружающей средой или друг с другом [8]. |
Кворум (quorum) | Минимальное количество голосов, которое должна получить распределенная транзакция, чтобы иметь возможность выполнять операцию в распределенной системе [9]. |
Кластер | слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой [10] . |
Координатор кластеров NiFi (Cluster Coordinator) | Координатор кластеров кластера NiFi является узлом кластера NiFi, который отвечает за выполнение задач по управлению узлами в кластере и обеспечивает актуальный поток (flow) для новых узлов соединения [11]. |
Облачные вычисления (cloud computing) | информационно-технологическая концепция, подразумевающая обеспечение повсеместного и удобного сетевого доступа по требованию к общему пулу (англ. pool) конфигурируемых вычислительных ресурсов (например, сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам — как вместе, так и по отдельности), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами или обращениями к провайдеру [12]. |
Поток данных - Stream (streaming) | является парадигмой компьютерное программирование, программирование потоковой обработки событий и реактивного программирования, что позволяет создавать приложения с использованием параллельной обработки [13]. |
Провизия в vagrant (vagrant provision) | Провизия позволяет устанавливать приложения и осуществлять автоматическую настройку конфигурации прямо при запуске виртуальной машины [14]. |
Программирование потоков данных (FBP, Flow-based programming) | Представляет собой парадигму программирования, которая определяет приложения как сети процессов «черного ящика», которые обмениваются данными через предопределенные соединения путем передачи сообщений [15]. |
Первичный узел | Каждый кластер имеет один первичный узел. Если по какой-либо причине этот узел отключается от кластера, автоматически выбирается новый первичный узел [11]. |
Распределённая хеш-таблица (DHT) | это класс децентрализованных распределённых систем поисковой службы, работающей подобно хэш-таблице. Как структура данных, хэш-таблица может представлять собой ассоциативный массив, содержащий пары (ключ-значение) [16]. |
Сердцебиение (Heartbeats ) | используется для обнаружения сбоев и управления ресурсами кластера [11]. |
Туманные вычисления (Fog computing) | платформа с высоким уровнем виртуализации, предоставляющая вычислительные службы, службы хранения информации, а также сетевые службы между оконечными устройствами и центрами облачных вычислений, не обязательно расположенных на крайних уровнях сети [17] |
Узел (Node) | Каждый кластер состоит из одного или нескольких узлов. Узлы выполняют фактическую обработку данных [11]. |
1.2. Обзор инструментов (фреймворков) потоковой обработки данных
Потоковая обработка данных необходима для работы с IoT, так как во многих случаях важно предоставлять своевременную информацию. В настоящее время наблюдается многообразие потоковых фреймворков [18]. В данной работе рассматриваются только потоковые фреймворки с открытым исходным кодом.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


