Пряжа спарк семеновская отзывы: фабрика, производство, продажа, интернет магазин

Пряжа Семеновская Softness / Нежность — Отзывы



Оценка пользователя





Ольга


23 июля 2020 13:27


Несоответствие цвета

Комментарий:


Просьба передать производителю,что не все цвета соответствуют названию. Я заказывала два цвета: олива-30235,розовый кварц-31118. К оливе вопросов нет. Но розовый кварц оказался ярко розового цвета. Согласовала с оператором обмен на молочный шоколад (подумала что тут то не будет сюрприза). А нет! Шоколад оказался светло пыльно-розовым. Решила оставить. Спасибо Вам что идете на встречу с обменом!




Оценка пользователя





Татьяна Серафимовна


5 мая 2020 22:05


Печальный опыт

Комментарий:


Связала мужу футболку из Нежности,красиво лёг узор и смотрелось супер, после ВТО тоже ничего плохого не предвещало, но после нескольких часов носки футболка превратилась в широкое платье, вязала крючком 2,25 ,все расчёты были правильные, не думала что такое случится,даже перевязываться не стала, выкинула, такой печальный опыт




Оценка пользователя





Марина78


16 апреля 2018 19:05


Re: Вопрос

Комментарий:


Здравствуйте, Светлана! В апреле поставки не будет, о дате поставки в мае мы сообщим дополнительно)




Оценка пользователя





Светлана


14 апреля 2018 12:00


Вопрос

Комментарий:


Добрый день ! Когда ожидается пополнение ассортимента? Очень богатая цветовая гамма, а в наличии нет тех цветов, какие понравились. Спасибо!




Оценка пользователя





Нежность


6 марта 2018 02:17


косит ли нитка

Комментарий:


связала второе платье, точнее 3-е, два на взрослого человека, 1 на девочку 6-ти лет, крючком в одну нитку, ни разу не косила ниточка, всё супер!




Оценка пользователя





Марина78


30 октября 2017 20:27


Re: вязаное полотно

Комментарий:


Здравствуйте, Ирина) если взять указанные номера спиц, то вполне можно вязать в 1 ниточку) полотно в лицевой глади не косит, но по кругу мы бы вязать не стали, только отдельными деталями, на всякий случай)




Оценка пользователя





Ирина


29 октября 2017 11:55


вязаное полотно

Комментарий:


Здравствуйте. Вы не рекомендуете вязать в одну нить, а если вязать спицами №2 или 1,5 лицевой гладью, будет ли полотно «косить»? Люблю тонкую лицевую гладь, но сложно подобрать нитки с правильной скруткой. Почти все нитки «косят». И еще , нитки предпочитаю :хлопок с вискозой, тогда полотно и тонкое , и тяжелое одновременно. Но такие нитки подобрать еще труднее. Спасибо. Извините за отступление., жду ответа на мой вопрос.




Оценка пользователя





Марина78


7 февраля 2017 19:29


Re: заказ

Комментарий:


Здравствуйте, Наталья) Если цвет отсутствует в выпадающем списке. то заказать его нельзя( Он отсутствует на складе.




Оценка пользователя





Наталья


6 февраля 2017 21:26


заказ

Комментарий:


как заказать нитки,если на фото они есть, а в списке нет




Оценка пользователя





Марина78


7 ноября 2016 09:38


Re: вопрос

Комментарий:


Здравствуйте. Ольга! Мы перепроверим данную информацию, спасибо за внимательность)




Показать ещё
Свернуть

Общие сведения об Apache Spark на YARN · Суджит Джей Наир

24 июля 2018 г. •

APACHE-SPARK   YARN  

Введение

Apache Spark требует много внимания; запуск его на YARN тем более. Эта статья является вводным справочником по Apache Spark в YARN. Поскольку наша платформа данных в Logistimo работает на этой инфраструктуре, крайне важно, чтобы вы (мой коллега-инженер) имели о ней представление, прежде чем вы сможете внести в нее свой вклад. В этой статье предполагается базовое знакомство с концепциями Apache Spark, и мы не будем задерживаться на их обсуждении.

Обзор YARN

YARN — это общая структура управления ресурсами для распределенных рабочих нагрузок; другими словами, операционная система кластерного уровня. Хотя YARN является частью экосистемы Hadoop, он может поддерживать множество различных вычислительных платформ (таких как Tez и Spark) в дополнение к MapReduce.

Основной темой YARN является разделение функций управления ресурсами на глобальный ResourceManager (RM) и ApplicationMaster (AM) для каждого приложения. Приложение — это единица планирования в кластере YARN; это либо одно задание, либо набор заданий DAG (здесь под заданиями может подразумеваться задание Spark, запрос Hive или любые подобные конструкции).

Рис. 1: Архитектура YARN [1]

ResourceManager и NodeManager формируют структуру вычислений данных. ResourceManager — это высшая инстанция, которая распределяет ресурсы между всеми приложениями в системе. NodeManager — это агент для каждой машины, который отвечает за контейнеры, отслеживая использование их ресурсов (процессор, память, диск, сеть) и сообщая об этом диспетчеру ресурсов/планировщику [1].

ApplicationMaster для каждого приложения, по сути, представляет собой библиотеку, специфичную для платформы, и ему поручено согласовывать ресурсы от ResourceManager и работать с NodeManager(ами) для выполнения и мониторинга задач [1].

Глоссарий

Первым препятствием для понимания рабочей нагрузки Spark на YARN является понимание различной терминологии, связанной с YARN и Spark, и понимание того, как они связаны друг с другом. Ниже я представлю и дам определение словаря:

Приложение

Приложение Spark — это единица вычислений самого высокого уровня в Spark. Приложение Spark можно использовать для одного пакетного задания, интерактивного сеанса с несколькими заданиями или долгоживущего сервера, постоянно удовлетворяющего запросы. Задание Spark может состоять не только из одной карты и сокращения. С другой стороны, приложение YARN — это единица планирования и распределения ресурсов. Между этими двумя терминами существует однозначное соответствие в случае рабочей нагрузки Spark на YARN; т. е. приложение Spark, отправленное в YARN, преобразуется в приложение YARN.

Драйвер Spark

Чтобы понять драйвер, давайте на мгновение отвлечемся от YARN, поскольку понятие драйвера является универсальным для развертываний Spark независимо от используемого диспетчера кластера.

Рис. 2: Обзор кластера Spark [4]

Приложения Spark координируются объектом SparkContext (или SparkSession) в основной программе, который называется Driver. Проще говоря, код, инициализирующий SparkContext, является вашим драйвером. Процесс драйвера управляет потоком заданий и планирует задачи и доступен в течение всего времени работы приложения (т. е. программа драйвера должна прослушивать и принимать входящие соединения от своих исполнителей на протяжении всего своего жизненного цикла. Таким образом, программа драйвера должна иметь сетевую адресацию). с рабочих узлов) [4].

Клиент YARN

Программа, которая отправляет приложение в YARN, называется клиентом YARN, как показано на рисунке в разделе YARN. Достаточно просто.

Понятие драйвера и его связь с концепцией клиента важны для понимания взаимодействия Spark с YARN. В частности, расположение драйвера относительно клиента и ApplicationMaster определяет режим развертывания, в котором работает приложение Spark: режим клиента YARN или режим кластера YARN.

Режим клиента:
Программа-драйвер в этом режиме работает на клиенте YARN. Таким образом, драйвер не управляется как часть кластера YARN.

Обратите внимание, что, поскольку драйвер является частью клиента и, как упоминалось выше в разделе «Драйвер Spark», программа драйвера должна прослушивать и принимать входящие соединения от своих исполнителей в течение всего времени своего существования, клиент не может выйти до завершения приложения.

Рис. 3: Режим клиента YARN [2]

Кластерный режим:
Программа-драйвер в этом режиме запускается в ApplicationMaster, который сам запускается в контейнере в кластере YARN. Клиент YARN просто извлекает статус из ApplicationMaster. В этом случае клиент мог выйти после подачи заявки.

Рис. 4: Режим кластера YARN [2]

Исполнитель и контейнер

Первый факт, который необходимо понять: каждый исполнитель Spark работает как контейнер YARN [2]. Это и тот факт, что исполнители Spark для приложения фиксированы, а также ресурсы, выделенные каждому исполнителю, приложение Spark занимает ресурсы на все время своего существования. Это отличается от приложения MapReduce, которое постоянно возвращает ресурсы в конце каждой задачи и снова выделяет их в начале следующей задачи.

Кроме того, поскольку каждый исполнитель Spark работает в контейнере YARN, конфигурации YARN и Spark имеют небольшой эффект помех. Я проиллюстрирую это в следующем сегменте.

Конфигурация и настройка ресурсов

С нашим словарным запасом и концепциями давайте переключим внимание на ручки и циферблаты, которые мы должны настроить, чтобы запустить Spark на YARN. Мы рассмотрим только несколько важных конфигураций (как Spark, так и YARN) и отношения между ними.

Сначала мы сосредоточимся на некоторых конфигурациях YARN и поймем их значение независимо от Spark.

  • пряжа.nodemanager.resource.memory-mb

    Это объем физической памяти в МБ, который может быть выделен для контейнеров в узле. Это значение должно быть меньше памяти, доступной на узле.

     yarn.nodemanager. resource.memory-mb
    16384 
     
  • планировщик пряжи.минимальное распределение-mb

    Это минимальное выделение для каждого запроса контейнера в ResourceManager в МБ. Другими словами, ResourceManager может выделять контейнеры только с приращением этого значения. Таким образом, это дает руководство о том, как разделить ресурсы узла на контейнеры. Запросы памяти ниже этого значения вызовут исключение InvalidResourceRequestException.

     yarn.scheduler.minimum-allocation-mb
    2048
     
  • пряжа.планировщик.максимальное-распределение-mb

    Максимальное выделение для каждого запроса контейнера в ResourceManager в МБ. Запросы памяти выше этого значения вызовут исключение InvalidResourceRequestException.

     yarn.scheduler.maximum-allocation-mb
    8192
     

Таким образом, приведенные выше конфигурации означают, что ResourceManager может выделять память контейнерам только с шагом yarn. scheduler.minimum-allocation-mb и не более yarn.scheduler.maximum-allocation-mb , и он не должен превышать общую выделенную память узла, как определено в yarn.nodemanager.resource.memory-mb .

Мы будем ссылаться на вышеприведенное утверждение в дальнейших обсуждениях как на Аксиома коробочной памяти 9.0052 (просто причудливое название для облегчения обсуждения). Аналогичную аксиому можно сформулировать и для ядер, хотя в этой статье мы не будем ее распространять.

Теперь перейдем к некоторым конфигурациям Spark. В частности, мы рассмотрим эти конфигурации с точки зрения запуска задания Spark в YARN.

  • искра.исполнитель.память

    Поскольку каждый исполнитель работает как контейнер YARN, он связан аксиомой коробочной памяти. Однако источником путаницы среди разработчиков является то, что исполнители будут использовать выделение памяти, равное искра.исполнитель.память . По сути, запрос памяти равен сумме spark. executor.memory + spark.executor.memoryOverhead . Таким образом, именно это значение ограничивается нашей аксиомой.

  • искра.драйвера.память

    В режиме развертывания кластера, поскольку драйвер запускается в ApplicationMaster, которым, в свою очередь, управляет YARN, это свойство определяет объем памяти, доступный для ApplicationMaster, и оно связано с аксиомой коробочной памяти. Но как и в случае с spark.executor.memory , фактическое связанное значение равно spark.driver.memory + spark.driver.memoryOverhead .

    В случае клиентского режима развертывания память драйвера не зависит от YARN и аксиома к ней неприменима. В свою очередь, это значение spark.yarn.am.memory + spark.yarn.am.memoryOverhead , которое связано с аксиомой коробочной памяти.

Я надеюсь, что эта статья послужит кратким изложением общих причин путаницы при использовании Apache Spark в YARN. Более подробную информацию можно найти в ссылках ниже. Пожалуйста, оставьте комментарий для предложений, мнений или просто поздороваться. До скорого!

Ссылки

[1] «Apache Hadoop 2.9.1 — Apache Hadoop YARN». hadoop.apache.org, 2018 г., доступно по адресу: ссылка. По состоянию на 23 июля 2018 г.

[2] Рыза, Сэнди. «Управление ресурсами Apache Spark и модели приложений YARN — инженерный блог Cloudera». Блог Cloudera Engineering, 2018 г., доступно по адресу: ссылка. По состоянию на 22 июля 2018 г.

[3] «Конфигурация — документация Spark 2.3.0». spark.apache.org, 2018 г., доступно по адресу: ссылка. По состоянию на 22 июля 2018 г.

[4] «Обзор режима кластера — документация Spark 2.3.0». spark.apache.org, 2018 г., доступно по адресу: ссылка. По состоянию на 23 июля 2018 г.

Включите JavaScript для просмотра комментариев с помощью Disqus.

Обзор

: Искра зажигает огонь при обработке больших данных

Apache Spark обеспечивает высокоскоростную аналитику в памяти для кластеров Hadoop, обрабатывая крупномасштабные наборы данных за минуты, а не за часы

org/Person» itemprop=»author»>

Стивен Нуньес

пишущий редактор,

Информационный Мир |

Pixabay

Apache Spark был запущен в 2009 году в лаборатории AMPLab Калифорнийского университета в Беркли как способ выполнять аналитику в памяти больших наборов данных. В то время Hadoop MapReduce был ориентирован на крупномасштабные конвейеры данных, которые не носили итеративный характер. Построение аналитических моделей на MapReduce в 2009 г.был очень медленным процессом, поэтому AMPLab разработал Spark, чтобы помочь разработчикам выполнять интерактивный анализ больших наборов данных и запускать итерационные рабочие нагрузки, такие как алгоритмы машинного обучения, которые многократно обрабатывают одни и те же наборы данных в оперативной памяти.

Spark не заменяет Hadoop. Скорее, он предлагает альтернативный механизм обработки для рабочих нагрузок с высокой итеративностью. Избегая дорогостоящей записи на диск, задания Spark часто выполняются на много порядков быстрее, чем Hadoop MapReduce. «Живя» внутри кластера Hadoop, Spark использует уровень данных Hadoop (HDFS, HBase и т. д.) для конечных точек конвейера данных, считывая необработанные данные и сохраняя окончательные результаты.

Написание приложений Spark

Spark, написанный на Scala, обеспечивает унифицированный уровень абстракции для обработки данных, что делает его отличной средой для разработки приложений данных. Spark поставляется с выбором языковых привязок Scala, Java и Python, которые по большей части эквивалентны, за исключением передового края, где доступны только реализации Scala.

Одной из приятных особенностей Spark является возможность интерактивной работы из консоли Scala или Python. Это означает, что вы можете опробовать код и сразу увидеть результаты его выполнения. Это удобно как для отладки, когда вы можете изменить значение и продолжить, не выполняя шаг компиляции, так и для исследования данных, где типичный процесс состоит из узких циклов проверки-визуализации-обновления.

Основная структура данных Spark — это набор устойчивых распределенных данных (RDD). В Spark программы-драйверы записываются как последовательность преобразований RDD с последующими действиями над ними. Преобразования, как следует из названия, создают новые RDD из существующих, изменяя их каким-либо образом, например, фильтруя данные в соответствии с некоторыми критериями. Действия работают на самих RDD. Действие может заключаться в подсчете количества экземпляров типа данных или сохранении RDD в файл.

Еще одним приятным преимуществом Spark является простота совместного использования RDD с другими проектами Spark. Поскольку RDD используются во всем стеке Spark, вы можете свободно смешивать SQL, машинное обучение, потоки и графики в одной программе.

Разработчики, использующие другие языки функционального программирования, такие как LISP, Haskell или F#, без труда адаптируются к программированию на Spark, если не считать изучения API. Благодаря превосходной системе коллекций Scala приложения, написанные с помощью Spark Scala API, могут быть удивительно четкими и лаконичными. Адаптация к программированию Spark в основном включает в себя учет распределенного характера системы и знание того, когда объект и функции должны быть сериализуемыми.

Программистам, имеющим опыт работы с процедурными языками, такими как Java, может оказаться не так просто освоить функциональную парадигму. Поиск хороших Scala и функциональных программистов — одна из самых больших проблем для организаций, которые думают о внедрении Spark (или Hadoop, если уж на то пошло).

Поскольку RDD Spark могут быть общими для всей системы, вы можете свободно сочетать SQL, машинное обучение, потоковую обработку и обработку графов в одной программе.

Устойчивые распределенные наборы данных

Однородное использование RDD во всем стеке — одна из особенностей, делающих Spark таким мощным. Как концептуально, так и в реализации RDD довольно просты; длина большинства методов класса RDD не превышает 20 строк. По сути, RDD представляют собой набор распределенных записей, поддерживаемых некоторой формой постоянного хранилища, а также ряд преобразований.

СДР неизменяемы. Вы не можете изменить RDD, но вы можете легко создать новый с другими значениями. Неизменяемость — важное свойство распределенных наборов данных; это означает, что нам не нужно беспокоиться о том, что другой поток или процесс изменит значение RDD, когда мы не смотрим — традиционная проблема в многопоточном программировании. Это также означает, что мы можем распределять RDD по всему кластеру для выполнения, не беспокоясь о синхронизации изменений в RDD на всех узлах.

Неизменяемость RDD также играет роль в отказоустойчивости приложений Spark. Поскольку каждый RDD хранит историю вычислений для достижения своего текущего значения, и ни один другой процесс не мог внести изменения, повторное вычисление RDD, которое вышло из строя с потерянным узлом, — это просто вопрос возврата к исходному разделу постоянных данных и повторного запуска. вычисления на другом узле. (Большинство разделов в Hadoop сохраняются на нескольких узлах.)

RDD могут быть созданы из нескольких типов разделов данных. В большинстве случаев данные поступают из HDFS, где термин «раздел» является буквальным. Однако RDD также могут быть созданы из других постоянных хранилищ, таких как HBase, Cassandra, базы данных SQL (через JDBC), файлы Hive ORC (оптимизированные столбцы строк) и другие системы хранения, которые предоставляют API Hadoop InputFormat. Независимо от источника RDD поведение одинаково.

Последнее замечание о преобразованиях Spark: они ленивы, что означает, что никакие вычисления не выполняются до тех пор, пока действие не потребует возврата результата драйверу. В большей степени это актуально при работе в интерактивной оболочке Scala. Поскольку RDD преобразовываются поэтапно, никаких затрат нет до тех пор, пока не будет выполнено действие. Именно тогда все значения вычисляются и результаты возвращаются пользователю. Кроме того, поскольку RDD можно кэшировать в памяти, часто используемые результаты не нужно каждый раз пересчитывать.

Преобразования Spark являются ленивыми, что означает, что никакие результаты не вычисляются до тех пор, пока действие не потребует возврата результатов пользователю.

Выполнение приложений Spark

Чтобы отправить задание Spark в кластер, разработчик должен выполнить программу-драйвер и подключить ее к диспетчеру кластера (также известному как мастер кластера). Менеджер кластера предоставляет драйверу согласованный интерфейс, поэтому одно и то же приложение можно запустить на любом поддерживаемом типе кластера.

В настоящее время Spark поддерживает выделенные кластеры Spark (автономные), Mesos и YARN. Каждая программа-драйвер, работающая в кластере, выделяет ресурсы и планирует задачи независимо друг от друга. Обеспечивая изоляцию приложений, эта архитектура затрудняет эффективное управление кластером оперативной памятью, самым ценным ресурсом Spark. Одновременное выполнение нескольких заданий с большим объемом памяти может привести к нехватке ресурсов. Хотя автономный менеджер кластера реализует простой планировщик ресурсов, он предлагает только планирование FIFO для приложений и не учитывает ресурсы.

Вообще говоря, разработчики Spark должны быть гораздо ближе к металлу, чем аналитики данных, использующие приложения более высокого уровня, такие как Hive или Pig. Например, поскольку драйвер планирует задачи на исполнителях, он должен работать рядом с этими рабочими узлами, чтобы избежать задержки в сети.

Драйвер и менеджер кластера HA важны. Если водитель умрет, работа остановится. Если мастер кластера умирает, новые задания не могут быть отправлены, но существующие этапы будут продолжать выполняться. Начиная со Spark 1.1, основная доступность доступна только с автономными кластерами Spark через ZooKeeper. Драйвера HA нет.

Выжимание максимальной производительности из кластера Spark может быть своего рода черной магией, включая экспериментирование с различными комбинациями параметров для драйвера, исполнителей, памяти и ядер и измерение результатов для оптимизации использования ЦП и ОЗУ для конкретного диспетчера кластера. Для таких оперативных задач существует мало документации, и вам, вероятно, придется прибегнуть к просмотру списков рассылки и чтению исходного кода.

Архитектура приложения Spark. В настоящее время Spark можно развернуть в автономном кластере Spark, YARN или Mesos. Обратите внимание, что каждая программа-драйвер, работающая в кластере, выделяет и планирует задачи независимо друг от друга.

Мониторинг и операции

Каждый драйвер имеет веб-интерфейс, обычно на порту 4040, который отображает всевозможную полезную информацию о запущенных задачах, планировщиках, исполнителях, этапах, использовании памяти и хранилища, RDD и т. д. Этот пользовательский интерфейс в первую очередь является информационным инструментом, а не средством управления приложением или кластером Spark. Тем не менее, это удобный инструмент для отладки и настройки производительности — здесь есть почти все, что вам нужно для понимания того, что происходит в вашем приложении.

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

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

Spark против Tez

Помимо того факта, что Spark и Tez используют направленные ациклические графы (DAG), эти две платформы похожи как яблоки и апельсины, различающиеся как своей аудиторией, так и своим дизайном. Тем не менее, я видел много путаницы в ИТ-отделах по поводу различий между этими двумя фреймворками.

Tez — это платформа приложений, разработанная для разработчиков приложений, которым необходимо создавать эффективные многоэтапные задания MapReduce. Например, в Hive 0.13 (см. мой обзор) HQL (язык запросов Hive) анализируется компилятором языка и отображается как Tez DAG, который сопоставляет поток данных с обрабатывающими узлами для эффективного выполнения. Tez DAG создается приложением край за краем, вершина за вершиной. Пользователям никогда не понадобится знать, как создать Tez DAG, или даже знать о его существовании.

Настоящая разница между Spark и Tez заключается в реализации. В приложениях Spark одни и те же рабочие узлы повторно используются в разных итерациях, что устраняет затраты на запуск JVM. Рабочие узлы Spark также кэшируют переменные, что устраняет необходимость повторного считывания и повторного вычисления значений между итерациями. Именно поэтому Spark хорошо подходит для итеративного программирования. Недостатком является то, что приложения Spark потребляют ресурсы кластера, даже если кэш устарел. Трудно оптимизировать потребление ресурсов, когда Spark работает в кластере.

Tez, хотя и поддерживает многоэтапное выполнение заданий, не имеет реальной формы кэширования. Переменные кэшируются до такой степени, что планировщик будет планировать задания, требующие значений из предыдущих этапов на тех же узлах, если это возможно, но в Tez нет хорошо спланированного механизма перекрестной итерации или широковещательной передачи переменных. Кроме того, задания Tez несут накладные расходы на запуск JVM. Таким образом, Tez лучше всего подходит для обработки очень больших наборов данных, когда время запуска составляет небольшую часть общего времени обработки задания.

Как это часто бывает, в сообществе Hadoop происходит обмен идеями, и многие из лучших находят применение в других проектах. Например, YARN-1197 позволит динамически изменять размеры исполнителей Spark, чтобы они могли возвращать ресурсы в кластер, когда они больше не нужны. Точно так же Stinger.next принесет преимущества кэширования перекрестных запросов в традиционные приложения Hadoop, такие как Hive.

Интегрированная аналитическая экосистема

Лежащая в основе RDD абстракция Spark формирует основную структуру данных для всей экосистемы Spark. Благодаря модулям для машинного обучения (MLlib), запроса данных (Spark SQL), анализа графов (GraphX) и потоковой передачи (Spark Streaming) разработчик может беспрепятственно использовать библиотеки каждого из них в одном приложении.

Например, разработчик может создать RDD из файла в HDFS, преобразовать этот RDD в SchemaRDD, запросить его с помощью Spark SQL, а затем передать результаты в библиотеку MLlib. Наконец, полученный RDD можно подключить к Spark Streaming, чтобы применить прогнозное моделирование к ленте сообщений. Выполнение всего этого вне Spark потребует использования нескольких библиотек, маршалинга и преобразования структур данных, а также большой работы по их развертыванию. Возиться с тремя или четырьмя отдельными приложениями, не предназначенными для совместной работы, не для слабонервных.

Интегрированный стек делает Spark уникальным инструментом для интерактивного исследования данных и многократного применения функций к одному и тому же набору данных. Машинное обучение — это приятное место для Spark, а возможность прозрачно обмениваться RDD в экосистеме значительно упрощает написание и развертывание современных приложений для анализа данных.

Однако за эти преимущества приходится платить. Едва перейдя в 1.x, система имеет ряд шероховатостей. Отсутствие безопасности (Spark не работает в кластерах с Kerberos и не имеет контроля над заданиями), отсутствие операционных функций корпоративного уровня, плохая документация и требование редких навыков означают, что сегодня Spark лучше всего подходит для первых пользователей или организаций, которые предъявляют особые требования к крупномасштабным моделям машинного обучения и готовы инвестировать все необходимое для их создания.

Решение о развертывании Spark сводится к «лошадям на курсы». Для некоторых преимущества внедрения высокоскоростного аналитического механизма в памяти сегодня будут настолько убедительными, что окупаемость инвестиций может быть оправдана. Для других лучше подходят более зрелые инструменты, возможно, немного медленнее, с готовыми к работе предприятиями и людьми, способными заботиться о них и кормить их.

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

Система показателей InfoWorld

Простота разработки

(20%)

Масштабируемость

(20%)

Менеджмент

(15%)

Производительность

(15%)

Документация

(10%)

Безопасность

(10%)

Значение

(10%)

Общий балл

Apache Spark 1.1.0 9 9 6 9 5 5 8