Изменения

Перейти к: навигация, поиск

Обучение на больших данных

3784 байта добавлено, 20:45, 19 января 2021
Нет описания правки
== Работа с комплексом Apache Spark для обучения на больших данных ==
 
=== Об инструментах Apache Spark ===
 
Многие компании на сегодняшний день уже столкнулись с необходимостью обработки больших массивов данных. Для этой цели они начали использовать проекты экосистемы [https://hadoop.apache.org/ Apache Hadoop]. Данная экосистема базируется на [https://ru.wikipedia.org/wiki/MapReduce#:~:text=MapReduce%20%E2%80%94%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%20%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9%2C%20%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F,%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D0%BC%D0%B8%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%20%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85%20%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0%D1%85. MapReduce], парадигме параллельного программирования, разработанного компанией Google.
Основные достоинства MapReduce:
* Масштабируемость;
* Устойчивость к сбоям;
* Простота использования.
Но при всех достоинствах данного инструмента, наблюдалась низкая производительность на итеративных алгоритмах (например, алгоритмы машинного обучения). Решение проблемы было найдено в университете Беркли: была разработана модель распределенных вычислений, которая имеет устойчивость к сбоям при пользовании распределенной коллекцией данных (англ. resilient distributed dataset, RDD).
На основе RDD по сей день развивается система [https://spark.apache.org/ Apache Spark], которая обладает сравнительно высокой эффективностью при работе итеративных алгоритмов за счет кэширования результатов в памяти. На основе концепции распределенных коллекций разрабатываются распределенные системы:
* [https://spark.apache.org/docs/1.0.0/sql-programming-guide.html Shark] – хранилище данных;
* [https://spark.apache.org/docs/latest/graphx-programming-guide.html GraphX] – система обработки графовых данных;
* [https://spark.apache.org/docs/latest/streaming-programming-guide.html Spark Streaming] – система обработки потоковых данных;
* [https://spark.apache.org/docs/latest/ml-guide.html Spark MLlib] – библиотека алгоритмов машинного обучения.
Все из перечисленных систем совместимы со стеком технологий Hadoop.
MLlib – основная библиотека Spark. Она предоставляет множество служебных программ, полезных для задач машинного обучения:
* Классификация;
* Регрессия;
* Кластеризация;
* Моделирование;
* Сингулярное разложение и анализ по методу главных компонент;
* Проверка гипотез и статистической выборки.
=== Примеры реализации алгоритмов с использованием Spark MLlib ===
59
правок

Навигация