Выпуск №9 (Июнь)
V Международная научная конференция "Science and Global Studies", 30 декабря 2020 (Прага, Чехия)

V Международная научная конференция «Научные исследования: парадигма инновационного развития» (Прага, Чехия), «28» декабря 2020 года

IV Международная научная конференция "Science and Global Studies", 30 ноября 2020 (Прага, Чехия)

IV Международная научная конференция «Научные исследования: парадигма инновационного развития» (Прага, Чехия), «27» ноября 2020 года

ІІІ Международная научная конференция "Science and Global Studies", 30 октября 2020 (г. Прага, Чехия)

ІIІ Международная научная конференция «Научные исследования: парадигма инновационного развития» (Братислава - Вена), «26» мая 2020 года

ІІ Международная научная конференция «Научные исследования: парадигма инновационного развития» (Братислава - Вена), «27» апреля 2020 года

Science and Global Studies, 31 марта 2020 (г. Братислава, Словакия)

Международная научная конференция «Научные исследования: парадигма инновационного развития» (Братислава - Вена), «25» марта 2020 года

Science and Global Studies, 30 декабря 2019 (г. Братислава, Словакия)

XLV Международная научно-практическая конференция «Актуальные проблемы современной науки», 28.11.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLIV Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.10.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLIІI Международная научно-практическая конференция «Актуальные проблемы современной науки», 29.08.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLIІI Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.07.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLII Международная научно-практическая конференция «Актуальные проблемы современной науки», 27.06.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XLI Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.05.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XL Международная научно-практическая конференция «Актуальные проблемы современной науки», 28.03.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

МНПК "Цифровая трансформация и инновации в экономике, праве, государственном управлении, науке и образовательных процессах", 18-21.03.2019

XXXIX Международная научно-практическая конференция «Актуальные проблемы современной науки», 27.02.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XIII Международная научно-практическая конференция «Научный диспут: вопросы экономики и финансов», 31.01.2019 (Совместная конференция с Финансово-экономическим научным советом)

XXXVIII Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.01.2019 (Совместная конференция с Международным научным центром развития науки и технологий)

XXXVІI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.12.2018 (Совместная конференция с Международным научным центром)

XXXVI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.11.2018 (Совместная конференция с Международным научным центром)

XIII Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.10.2018 (Совместная конференция с Финансово-экономическим научным советом)

XXXV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.10.2018 (Совместная конференция с Международным научным центром)

XXXIV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.09.2018 (Совместная конференция с Международным научным центром)

ХXXIII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.08.2018 (Совместная конференция с Международным научным центром)

ХXXII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 31.07.2018 (Совместная конференция с Международным научным центром)

XII Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.07.2018 (Совместная конференция с Финансово-экономическим научным советом)

ХXXI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.06.2018 (Совместная конференция с Международным научным центром)

ХІ Международная научно-практическая конференция «Глобальные проблемы экономики и финансов», 31.05.2018 (Совместная конференция с Финансово-экономическим научным советом)

XXХ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.05.2018 (Совместная конференция с Международным научным центром)

XXIХ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.04.2018 (Совместная конференция с Международным научным центром)

ХХVIІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.03.2018 (Совместная конференция с Международным научным центром)

ІІІ МНПК "Экономика, финансы и управление в XXI веке: анализ тенденций и перспективы развития", 19-22.03.2018 (Совместная конференция с Финансово-экономическим научным советом)

X Международная научно-практическая конференция «Глобальные проблемы экономики и финансов», 28.02.2018 (Совместная конференция с Финансово-экономическим научным советом)

ХХVІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 27.02.2018 (Совместная конференция с Международным научным центром)

ХХVІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.01.2018 (Совместная конференция с Международным научным центром)

XІІ Международная научно-практическая конференция «Научный диспут: вопросы экономики и финансов», 29.12.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХХV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.12.2017 (Совместная конференция с Международным научным центром)

ХХІV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.11.2017 (Совместная конференция с Международным научным центром)

XI Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.10.2017 (Совместная конференция с Финансово-экономическим научным советом)

XІ Международная научно-практическая конференция «Научный диспут: вопросы экономики и финансов», 29.09.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХХIІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.09.2017 (Совместная конференция с Международным научным центром)

X Международная научно-практическая конференция «Актуальные проблемы экономики и финансов», 31.07.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХXII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.07.2017 (Совместная конференция с Международным научным центром)

ХXI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.06.2017 (Совместная конференция с Международным научным центром)

IX Международная научно-практическая конференция «Глобальные проблемы экономики и финансов», 31.05.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХX Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.05.2017 (Совместная конференция с Международным научным центром)

"Тенденции развития национальных экономик: экономическое и правовое измерение" 18-19.05.2017 (Совместная конференция с Финансово-экономическим научным советом и ККИБиП)

ХIX Международная научно-практическая конференция: "Актуальные проблемы современной науки", 27.04.2017 (Совместная конференция с Международным научным центром)

IX Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 31.03.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХVIII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.03.2017 (Совместная конференция с Международным научным центром)

МНПК "Экономика, финансы и управление в XXI веке: анализ тенденций и перспективы развития", 20–23.03.2017 (Совместная конференция с Финансово-экономическим научным советом)

VIII Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 28.02.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХVII Международная научно-практическая конференция: "Актуальные проблемы современной науки", 27.02.2017 (Совместная конференция с Международным научным центром)

VIII Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 31.01.2017 (Совместная конференция с Финансово-экономическим научным советом)

ХVI Международная научно-практическая конференция: "Актуальные проблемы современной науки", 30.01.2017 (Совместная конференция с Международным научным центром)

ХV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.12.2016 (Совместная конференция с Международным научным центром)

VIII Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 28.12.2016 (Совместная конференция с Финансово-экономическим научным советом)

VII Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 30.11.2016 (Совместная конференция с Финансово-экономическим научным советом)

ХІV Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.11.2016 (Совместная конференция с Международным научным центром)

VII Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 31.10.2016 (Совместная конференция с Финансово-экономическим научным советом)

ХІІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 28.10.2016 (Совместная конференция с Международным научным центром)

VII Международная научно-практическая конф. «Научный диспут: вопросы экономики и финансов», 30.09.2016 (Совместная конференция с Финансово-экономическим научным советом)

ХІІ Международная научно-практическая конференция: "Актуальные проблемы современной науки", 29.09.2016 (Совместная конференция с Международным научным центром)

XI Международная научно-практическая конференция «Актуальные проблемы современной науки», 30.08.2016 (Совместная конференция с Международным научным центром)

ІV Международная научно-практическая конф. "Экономика и управление в XXI веке: анализ тенденций и перспектив развития", 29.07.2016 (Совместная конференция с Финансово-экономическим научным советом)

X Международная научно-практическая конференция "Актуальные проблемы современной науки", 28.07.2016 (Совместная конференция с Международным научным центром)

VІ Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 30.06.2016 (Совместная конференция с Финансово-экономическим научным советом)

ІX Международная научно-практическая конференция "Актуальные проблемы современной науки", 29.06.2016 (Совместная конференция с Международным научным центром)

VI Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 31.05.2016 (Совместная конференция с Финансово-экономическим научным советом)

VIIІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 30.05.2016 (Совместная конференция с Международным научным центром)

V Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 29.04.2016 (Совместная конференция с Финансово-экономическим научным советом)

VIІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 28.04.2016 (Совместная конференция с Международным научным центром)

VІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 31.03.2016 (Совместная конференция с Международным научным центром)

ІI Международная научно-практическая конф. "Экономика и управление в XXI веке: анализ тенденций и перспектив развития", 30.03.2016 (Совместная конференция с Финансово-экономическим научным советом)

V Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 21-24.03.2016 (Совместная конференция с Финансово-экономическим научным советом)

V Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 26.02.2016 (Совместная конференция с Финансово-экономическим научным советом)

II Международная научно-практическая конференция: "Научный диспут: актуальные вопросы медицины" 20.02.2016 (Совместная конференция с Международным научным центром)

ІV Международная научно-практическая конференция "Актуальные проблемы современной науки", 29.12.2015 (Совместная конференция с Международным научным центром)

IV Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 28.12.2015 (Совместная конференция с Финансово-экономическим научным советом)

IV Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 30.11.2015 (Совместная конференция с Финансово-экономическим научным советом)

IV Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 29.10.2015 (Совместная конференция с Финансово-экономическим научным советом)

Международная научно-практическая конференция: "Научный диспут: актуальные вопросы медицины" 28.10.2015 (Совместная конференция с Международным научным центром)

III Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 30.09.2015 (Совместная конференция с Финансово-экономическим научным советом)

III Международная научно-практическая конференция "Актуальные проблемы экономики и финансов", 31.08.2015 (Совместная конференция с Финансово-экономическим научным советом)

ІІІ Международная научно-практическая конференция "Научный диспут: вопросы экономики и финансов", 30.06.2015 (Совместная конференция с Финансово-экономическим научным советом)

ІІ Международная научно-практическая конференция "Актуальные проблемы современной науки", 29.06.2015 (Совместная конференция с Международным научным центром)

II Международная научно-практическая конференция "Глобальные проблемы экономики и финансов", 28.05.2015 (Совместная конференция с Финансово-экономическим научным советом)

Актуальные проблемы экономики и финансов, 29.04.2015 (Совместная конференция с Финансово-экономическим научным советом)

Научный диспут: вопросы экономики и финансов, 31.03.2015 (Совместная конференция с Финансово-экономическим научным советом)

Актуальные проблемы современной науки, 27.03.2015 (Совместная конференция с Международным научным центром)

Глобальные проблемы экономики и финансов, 27.02.2015 (Совместная конференция с финансово-экономическим научным советом)



Ловчинський С. Б. Обробка та аналіз даних з використанням Apache Spark // Міжнародний науковий журнал "Інтернаука". — 2017. — №9.


Отрасль науки: Технические науки
Скачать статью (pdf)

Технічні науки

УДК 004.852

Ловчинський Сергій Броніславович

студент

Національного технічного університету України

«Київський політехнічний інститут імені Ігоря Сікорського»

Ловчинский Сергей Брониславович

студент

Национального технического университета Украины

«Киевский политехнический институт имени Игоря Сикорского»

Lovchinsky S.

student

National Technical University of Ukraine

“Igor Sikorsky Kyiv Polytechnic Institute”

ОБРОБКА ТА АНАЛІЗ ДАНИХ З ВИКОРИСТАННЯМ APACHE SPARK

ОБРАБОТКА И АНАЛИЗ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ APACHE SPARK

DATA PROCESSING AND ANALYSIS USING APACHE SPARK

Анотація: Аналіз і дослідження вирішення задачі розподіленого оброблення даних за допомогою Apache Spark.

У цій статті представляється дослідження найсучасніших методів оброблення даних та виділено їх переваги і недоліки у контексті вимог до розподіленої системи. Показується підхід Apache Spark до вирішення задач розподіленого оброблення даних. Демонструється на  тестових прикладах використання Apache Spark.

Ключові слова: Розподілені системи, обробка даних, потокова обробка, аналіз даних, великі дані.

Аннотация: Анализ и исследования решения задачи распределенного обработки данных с помощью Apache Spark.

В этой статье представляется исследование современных методов обработки данных и выделены их преимущества и недостатки в контексте требований к распределенной системе. Показывается подход Apache Spark к решению задач распределенной обработки данных. Демонстрируется на тестовых примерах использование Apache Spark.

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

Abstract: Analysis and research of the solution of the problem of distributed data processing with the help of Apache Spark.

This article presents an investigation of modern data processing methods and identifies their advantages and disadvantages in the context of requirements for a distributed system. Apache Spark's approach to solving distributed data processing problems is shown. It is demonstrated on test cases using Apache Spark.

Keywords: Distributed systems, data processing, stream processing, data analysis, large data.

Постановка проблеми. Аналіз сучасних тенденцій розвитку інформаційних систем свідчить про ускладнення використовуваних в них структур даних при одночасному збільшенні оброблюваної інформації, а також кількості інформації, що зберігається. Для обробки дедалі більшого обсягу інформації потрібно нове апаратне і відповідне програмне забезпечення, оскільки існуюче вже не справляється з поставленими завданнями. Таким чином, з’явилася ідея об’єднання обчислювальних потужностей двох і більше комп’ютерів для вирішення складних, непосильних для кожного з них окремо завдань. Поява локальних мереж призвело до розвитку нової галузі розробки програмного забезпечення, а саме створення розподілених систем. [1]

Зі збільшенням обсягу оброблюваної інформації з’явилася необхідність розподіленої обробки даних з використанням сучасних систем управління базами даних. Даний напрямок в даний час дослідження в області розподіленої обробки полягають в створенні і обслуговуванні розподілених баз даних і проектуванні додатків, що дозволяють організувати розподілені обчислення. Основний напрямок використання засобів обчислювальної техніки – зберігання і обробка великих обсягів інформації.

Цей напрямок широко використовується в сучасних інформаційних системах. У найширшому сенсі інформаційна система являє собою програмний комплекс, функції якого полягають у підтримці надійного зберігання інформації в пам'яті комп'ютера, виконанні специфічних для даного застосування перетворень інформації, наданні користувачам зручного і легкого інтерфейсу.

У цій статті визначаються вимоги до побудови розподілених систем для оброблення даних. Вивчаються й описуються архітектурні рішення в галузі обробки великих обсягів даних та підходи до розробки програмного забезпечення, які дозволяють реалізувати платформу таким чином, аби вона задовольняла означені потреби.

Метою статті є аналіз і дослідження вирішення задачі розподіленого оброблення даних за допомогою Apache Spark. Для реалізації цього завдання поставлені наступні задачі:

  1. Дослідити і вивчити основні принципи роботи, виявити ефективні способи і методи розподіленого оброблення даних в прикладних системах.
  2. Проаналізувати існуючі рішення та підходи в даній предметній області.
  3. Розглянути підходи до побудови систем оброблення даних з використанням Apache Spark.
  4. Розробити актуальні тестові приклади, які демонструють використання Apache Spark.

Актуальність задачі. За останні роки в високопродуктивних обчислювальних системах відбулися значні зміни, пов’язані зі зростанням потреби в обчислювальних ресурсах в багатьох прикладних задачах обробки та аналізу даних Сучасні інформаційні системи породжують постійно зростаюче надходження даних у великих об’ємах. На сьогоднішній день навіть невеликі бізнес-системи генерують величезну кількість даних, не кажучи вже про великі і складні системи з таких сфер як медицина, аналіз і моделювання фізичних процесів, криптографія, і т.д. Як наслідок, масштаби даних і складність сучасних алгоритмів аналізу даних і машинного навчання ростуть незрівнянно швидше, ніж обчислювальні потужності комп’ютерів. В зв’язку з цим неминуче з'являються та набувають широкого поширення інструменти для розподіленого аналізу даних. Одним із засобів для побудови таких систем і є Apache Spark.

Виклад основного матеріалу дослідження. Ключовими вимогами до системи розподіленого аналізу даних являються: висока продуктивність, прозорість, відкритість, масштабованість, відмовостійкість. Розглянемо кожну вимогу детальніше.

Комп’ютерна продуктивність це кількісна характеристика швидкості виконання операцій з оброблення та збереження даних на комп’ютері. Розподілені системи програмного забезпечення, які мають властивість продуктивності характеризуються такими основними показниками:

  • Споживання ресурсів центрального процесора
  • Споживання оперативної пам’яті
  • Робота з файловою системою
  • Час виконання операції

Прозорість системи припускає приховування деталей реалізації, структури, факту розподілення ресурсів та процесів між багатьма апаратними та програмними ресурсами, а також деталей координації їх роботи. Тобто розподілена система, яка задовольняє вимогу прозорості працює у вигляді єдиної централізованої інформаційної системи.

Відкрита система – це система, яка реалізує відкриті специфікації на інтерфейси, сервіси (послуги середовища) і підтримувані формати даних, достатні для того, щоб дати можливість належним чином розробленому прикладному програмному забезпечити переносимість в широкому діапазоні систем з мінімальними змінами, взаємодіяти з іншими застосуваннями на локальних і віддалених системах, і взаємодіяти з користувачами в стилі, який полегшує перехід користувачів від системи до системи. [2]

Система називається масштабованою, якщо вона здатна збільшувати продуктивність пропорційно додатковим ресурсам. Масштабованість можна оцінити через ставлення приросту продуктивності системи до приросту використовуваних ресурсів. Чим ближче цей показник до одиниці, тим краще. Також під масштабністю розуміється можливість нарощування додаткових ресурсів без структурних змін центрального вузла системи. [3]

Розглянемо підхід Apache Spark до вирішення задач розподіленого оброблення даних. Apache Spark адресована фахівцям в області аналізу даних або дослідникам і інженерам-програмістам. Саме вони зможуть отримати найбільшу вигоду від залучення фреймворка Spark для вирішення своїх завдань. Багата колекція бібліотек таких як MLlib, GraphX, що входять до складу Spark, допоможе фахівцям в області аналізу даних вирішувати статистичні завдання, непосильні єдиному комп’ютеру. Інженери-програмісти, в свою чергу, зможуть писати розподілені програми на основі Spark і управляти промисловими додатками. Програмісти і дослідники по-різному зможуть задіяти Spark для вирішення великих розподілених завдань в своїх областях. [4]

Apache Spark – це універсальна і високопродуктивна кластерна обчислювальна платформа. [5] Фреймворк створювався з метою охопити якомога ширший діапазон робочих навантажень, які перш вимагали створення окремих розподілених систем, включаючи додатки пакетної обробки, циклічні алгоритми, інтерактивні запити і потокову обробку.

Обробка та аналіз даних вимагає гнучкості, швидкої реакції і постійних інновацій. Apache Spark дозволяє фахівцям з обробки та аналізу даних і розробникам прикладних програм працювати практично з будь-якими типами даних із будь-яких джерел. Завдяки великій кількості компонентів Spark підтримує велике різноманіття видів аналізу даних. Володіючи універсальністю для роботи в багатьох середовищах, Apache Spark надзвичайно зручний для створення алгоритмів, що дозволяють витягати корисну інформацію із складних типів даних. [6]

Нижче проводиться аналіз отриманих результатів, а саме поведінка фреймворку Apache Spark при вирішені різних задач. Демонструються описані типи задач які буде розв’язано засобами Apache Spark, безпосередньо алгоритми розв’язання, а також виведені результати роботи фреймворку.

Підрахунок кількості слів в тексті. У першому прикладі буде вирішено просту задачу підрахунку кількості заданих слів у файлі, використовуючи кілька перетворень для створення набору даних (String, Int) так званих пар підрахунків, після чого результати роботи програми будуть збережені у файл. На початку потрібно створити екземпляр JavaRDD, який буде містити зчитаний текст з файлу.

JavaRDD<String> textFile = sc.textFile("hdfs://...");

Після цього розділити вхідний текст на масив строк зі слів і помістити результат в новий JavaRDD.

JavaRDD words = lines.flatMap(s ->
         Arrays.asList(SPACE.split(s)).iterator());

Створити набір даних (String, Int) пар підрахунків з отриманих строк.

JavaPairRDD<String, Integer> ones =
         words.mapToPair(s -> new Tuple2<>(s, 1));

Далі викликається метод для підрахунку кількості слів.

JavaPairRDD<String, Integer> counts =
         ones.reduceByKey((i1, i2) -> i1 + i2);

Результат роботи тестової програми зберігається на диску за допомогою наступного метода.

counts.saveAsTextFile("hdfs://...");

Вище описана тестова програма також демонструє простоту у створенні прикладних програм використовуючи високорівневий API, який дозволяє сконцентруватися на предметній стороні задачі, а не на її реалізації.

Результати випробувань тестової програми підрахунку слів представлено в порівняльній таблиці 3.1

Таблиця 3.1 – Підрахунок кількості заданого слова

Розмір файлу

100 Мб

1 Гб

5 Гб

Час виконання

5 с

31 с

72 с

За даними таблиці наведено графічні характеристики параметрів на рисунку 3.1

Рисунок 3.1 – Відношення часу виконання від кількості даних

Класифікація спама. Існують різні типи завдань машинного навчання, включаючи класифікацію, регресію або кластеризацію, що мають різні цілі. Як простий приклад розглянемо задачу класифікації, метою якої є визначення приналежності елемента до тієї чи іншої категорії, а саме електронного листа на наявність в ньому спаму, на основі маркованих примірників подібних елементів, електронних листів, про яких точно відомо, містять вони в собі спам чи ні. Всі алгоритми машинного навчання вимагають визначити для кожного елемента набір характеристичних ознак, який буде передаватися функції навчання, в конкретному прикладі, для електронного листа характеристичними ознаками може бути число згадок спам слів. У багатьох випадках визначення правильних характеристичних ознак є найскладнішою частиною машинного навчання. Більшість алгоритмів підтримують тільки числові характерні ознаки, тому потрібно використовувати вектори чисел, що представляють значення ознак, як наслідок, часто важливим кроком є витягнення і перетворення ознак для отримання таких векторів. [7] На рисунку 3.2 показано приклад роботи процесу машинного навчання.

Рисунок 3.2 – Етапи процесу машинного навчання

Для реалізації даної програми буде використано наступні алгоритми із бібліотеки MLlib:

  • HashingTF, який створює вектор частот входження обраних термінів (term frequency) в тексті.
  • LogisticRegressionWithSGD, який реалізує процедуру логістичної регресії (logistic regression) методом стохастичного градієнтного спуску.

Передбачається, що існують два файли, spam.txt і nonspam.txt, кожен з яких містить приклади електронних листів зі спамом і без спаму, по одному в рядку. Кожен електронний лист в кожному файлі перетворюється в вектор ознак з частотами термінів, і проводиться навчання моделі логістичної регресії для поділу повідомлень двох типів.

Логістична регресія – це метод двійкової класифікації, що ідентифікує лінійну площину, яка розділяє позитивні і негативні зразки. У MLlib реалізація логістичної регресії приймає об’єкти LabeledPoint зі значеннями маркерів 0 або 1 і повертає об’єкт моделі LogisticRegressionModel, здатний передбачати значення для нових точок.

Для початку, потрібно створити екземпляр HashingTF для відображення тексту електронних листів в вектори з 1000 ознак.

final HashingTF tf = new HashingTF(1000);

Створити набори даних LabeledPoint для прикладів, що дають позитивну реакцію (спам) і негативну (без спаму).

JavaRDD positiveExamples = spam.map(new Function()
         public LabeledPoint call(String email) {
              return new LabeledPoint(l,
              tf.transform(Arrays.asList(email.split(“ “)
         }
     });

JavaRDD negativeExamples = nonspam.map(new Function()
         public LabeledPoint call(String email) {
              return new LabeledPoint(0,
              tf.transform(Arrays.asList(email.split(“ “)         }
     });

JavaRDD trainData =
         positiveExamples.union(negativeExamples);

Виконати логістичну регресію методом стохастичного градієнтного спуску.

LogisticRegressionModel model =
     new LogisticRegressionWithSGD().run(trainData.rdd());

Після створення моделі за допомогою метода predict() повертається фактично розрахована оцінка для вхідних даних.

model.predict(testData);

Результати випробувань тестової програми класифікації спаму представлено в порівняльній таблиці 3.2

Таблиця 3.2 – Класифікація спаму

Кількість листів 

10000

100000

500000

1000000

Час виконання

26 с

49 с

189 с

297 с

За даними таблиці наведено графічні характеристики параметрів на рисунку 3.3

Рисунок 3.3 – Відношення часу виконання від кількості листів

Висновки та пропозиції. В даній статті було виділено основні вимоги, що висуваються до систем розподіленого оброблення даних; визначено основні підходи до вирішення задач обробки великих за обсягами даних; досліджено існуючі платформи та виокремлено їх особливості.

Проводиться аналіз отриманих результатів, а саме було розроблено програмний продукт, за допомогою якого можна дослідити роботу системи оброки даних Apache Spark на декількох тестових прикладах. Результати роботи даних тестових прикладів були представлені в роботі. Виявилося, що фреймворк у цілому справляється з поставленою задачею. Також, є алгоритми де Apache Spark у зв’язку із специфічним алгоритмом роботи платформи на рівень ефективніше виконує програму.

Використання Apache Spark для побудови розподілених системи обробки великих даних дозволяє забезпечити автоматичне розпаралелювання і зберігання даних на внутрішніх дисках вузлів кластера. Запропонована архітектура приховує від прикладного програміста деталі внутрішнього устрою Apache Spark і надає простий програмний інтерфейс, який дозволяє сконцентруватися на предметній стороні задачі, а не на її реалізації. Apache Spark дозволяє фахівцям з обробки та аналізу даних і розробникам прикладних програм працювати практично з будь-якими типами даних із будь-яких джерел.

Література:

  1. Э. Таненбаум. Распределенные системы. Принципы и парадигмы / Э. Таненбаум, М. Ван. Стеен. – СПб.: Питер, 2003. – C. 807.
  2. Карпов Л. Е. Архитектура распределенных систем программного обеспечения / Карпов Л. Е. – М.: МАКС Пресс, МГУ, ВМК, 2007. – С. 132.
  3. О.А. Литвинов. Розподілена обробка інформації / О.А. Литвинов, В.С. Хандецький – Д.: ТОВ «Баланс-Клуб», 2013. – С. 314.
  4. James A. Scott. Getting Started with Apache Spark / James A. Scott. – USA: MapR technologies Inc, 2015. – C. 88.
  5. .H. Karau. Learning Spark: Lightning-Fast Big Data Analysis / H. Karau, A. Konwinski, P.Wendell, M.Zaharia. – USA: O’Reilly Media Inc, 2015. – C. 257.
  6. Jacek Laskowski. Mastering Apache Spark. – Режим доступа: https://www.gitbook.com/book/jaceklaskowski/mastering-apache-spark/details. – Дата доступа: 25.05.2017.
  7. Офіційна документація Apache Spark. – Режим доступа: https://spark.apache.org/. – Дата доступа: 25.05.2017.