URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 117518
[ Назад ]

Исходное сообщение
"Доступна система распределённых вычислений Apache Storm 2.0"

Отправлено opennews , 03-Июн-19 10:47 
Увидел свет (http://storm.apache.org/2019/05/30/storm200-released.html) значительный выпуск системы распределённой обработки событий Apache Storm 2.0 (http://storm.apache.org/), примечательный переходом на новую архитектуру, реализованную на языке Java, вместо ранее применяемого языка Clojure.


Проект позволяет организовать гарантированную обработку различных событий в режиме реального времени. Например, Storm можно применять для анализа потоков данных в режиме реального времени, выполнения задач для машинного обучения, организации непрерывных вычислений, реализации RPC, ETL и т.п. Система поддерживает кластеризацию, создание отказоустойчивых конфигураций, режим гарантированной обработки данных и обладает высокой производительностью, достаточной для обработки более миллиона запросов в секунду на одном узле кластера.


Поддерживается интеграция с различными системами обработки очередей и технологиями баз данных. Архитектура Storm подразумевает приём и обработку неструктурированных постоянно обновляемых потоков данных с использование произвольных сложных обработчиков с возможностью секционирования между различными стадиями вычислений. Проект был передан сообществу Apache после поглощения Twitter компании BackType, изначально разработавшей фреймворк.  На практике Storm применялся в BackType для анализа отражения событий в микроблогах, путём сопоставления на лету новых твитов и используемых в них ссылок (например, производилась оценка, как внешние ссылки или публикуемые в Twitter анонсы, ретранслируются другими участниками).


Функциональность Storm сравнивается с платформой Hadoop, при этом ключевым отличием является то, что данные не размещены в хранилище, а поступают извне и обрабатываются в режиме реального времени. В Storm нет встроенной прослойки для организации хранилища и аналитический запрос начинает применяться к поступающим данным до тех пор, пока не будет отменен (если в Hadoop используются занимающие конечное время MapReduce-работы, то в Storm применяется идея непрерывно выполняемых "топологий"). Выполнение обработчиков может быть распределено на несколько серверов - Storm автоматически распараллеливает работу с потоками на разные узлы кластера.

Изначально система была написана на языке Clojure и выполняется внутри виртуальной машины JVM. В фонде Apache была запущена инициативы по переводу Storm на новое ядро, написанное на Java, результаты которой предложены в выпуске Apache Storm 2.0. Все базовые компоненты платформы переписаны на Java. Поддержка написания обработчиков на Clojure  сохранена, но теперь предлагается в виде биндингов. Для работы  Storm 2.0.0 требуется наличие Java 8. Полностью переработана модель многопоточной обработки, что позволило добиться (https://yahoodevelopers.tumblr.com/post/185258393008/apache-...) заметного прироста производительности (для некоторых топологий задержки сократились на 50-80%).


В новой версии также предложен новый типизированный API Streams, позволяющий задавать обработчики, используя операции в стиле функционального программирования. Новый API реализован поверх штатного базового API и поддерживает автоматическое объединение операций для оптимизации их обработки. В API Windowing для оконных операций добавлена поддержка сохранения и восстановления состояния в бэкенде.


В планировщик запуска обработчиков добавлена поддержка учёта дополнительных ресурсов при принятии решений,  не ограничивающихся
CPU и памятью, таких как параметры сети и GPU. Внесено большое число улучшений, связанных с обеспечением интеграции с платформой Kafka (http://kafka.apache.org/). Расширена система контроля доступа, в которой появилась возможность создания групп администраторов и делегирования токенов. Добавлены улучшения, связанные с поддержкой SQL и метрик. В интерфейсе администратора  появились новые команды  для отладки состояния кластера.


Области применения Storm:


-  Обработка потоков новых данных или обновлений БД в реальном времени;

-  Непрерывные вычисления: Storm может выполнять непрерывные запросы и обрабатывать непрерывные потоки, передавая  результаты обработки клиенту в режиме реального времени.


-  Распределенный удаленный вызов процедур (RPC): Storm может быть использован для обеспечения параллелизма выполнения ресурсоёмких запросов. Задание ("топология") в Storm представляет собой распределенную по узлам функцию, которая ожидает поступления сообщений, которые нужно обработать. После приёма сообщения, функция обрабатывает его в локальном контексте и возвращает результат. Примером использования распределенного RPC может быть параллельная обработка поисковых запросов или выполнение операций над большим набором множеств.


Особенности Storm:


-  Простая модель программирования, значительно упрощающая обработку данных в режиме реального времени;


-  Поддержка любых языков программирования. Имеются модули для языков Java, Ruby и Python, адаптация для других языков не вызывает сложности благодаря очень простому коммуникационному протоколу, для реализации поддержки которого требуется около 100 строк кода;


-  Отказоустойчивость: для запуска задания по обработке данных требуется сформировать jar-файл с кодом. Storm самостоятельно распространит данный jar-файл по узлам кластера, подключит связанные с ним обработчики и организует мониторинг. При завершении задания код будет автоматически отключен на всех узлах;


-  Горизонтальная масштабируемость. Все вычисления производятся в параллельном режиме, при возрастании нагрузки к кластеру достаточно просто подключить новые узлы;


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


-  Скорость. Код Storm написан с оглядкой на высокую производительность и использует для быстрого асинхронного обмена сообщениями систему ZeroMQ (https://www.opennet.ru/opennews/art.shtml?num=27137).

URL: http://storm.apache.org/2019/05/30/storm200-released.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=50796


Содержание

Сообщения в этом обсуждении
"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Вася , 03-Июн-19 10:47 
Наконец-то на норм язык переписали, Java годный язык.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 11:17 
$2,50 за рабочее место в месяц. Спасибо, не нужно.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 11:24 
Если рабочее место не приносит даже 2.5$ дохода в месяц, то скорее всего рабочие процессы организованы неправильно.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Michael , 03-Июн-19 13:40 
а как же швободно, открыто и для всех?

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 14:02 
> не приносит даже 2.5$ дохода в месяц

Под 2.5$ вы, конечно, подразумеваете 2.5$+работа бухгалтера по оформлению этих оплат, возможные консультации юристов по оформлению договора, постоянный мониторинг, сколько сотрудников появилось а сколько уволилось, постоянная головная боль на тему того, когда заканчивается месяц и пора оплачивать, работу админов по взаимодействию с ними по поводу предоставления новых лицензий/отключения ненужных старых и по поводу ввода этих ключей сотрудникам.


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено jOKer , 03-Июн-19 14:46 
Вообще-то в IT, при сравнении различных реализаций одной и той же системы, принято оперировать общей стоимостью владения, а вовсе даже не стоимостью одного рабочего места.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 04-Июн-19 10:19 
Это если вам сертификат нужен, и бумажка что-бы снять с себя ответственность на случай "если что-то пойдёт не так", но в таком варианте 2.5$ это очень не дорого...

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено MVK , 05-Июн-19 16:14 
OpenJDK бесплатно

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Анонимус2 , 03-Июн-19 10:54 
>ZeroMQ

Оно ещё шевелится? Вроде никому оказалось не нужным и загнулось.


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено загибатор , 03-Июн-19 11:32 
Ну судя по википедии, последний релиз был ажно в январе сиего года. Пациент скорее жив, чем мёртв.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Anonymoustus , 03-Июн-19 10:56 
> реализованную на языке Java, вместо ранее применяемого языка Clojure

А что ж так? Не зашла хипсторам модная, стильная, молодёжная Clojure?


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Ordu , 03-Июн-19 11:06 
clojure -- это лисп-машина в jvm, на фоне него java выглядит детским хипстерством.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено freehck , 03-Июн-19 13:03 
Скорее всего, просто пользователи не осилили кложу -- и шторм переориентировали на массового пользователя. Оно так часто с лиспами бывает. )

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Anonymoustus , 03-Июн-19 14:51 
> Скорее всего, просто пользователи не осилили кложу -- и шторм переориентировали на
> массового пользователя. Оно так часто с лиспами бывает. )

Это-то понятно: всякому работодателю надо, чтобы кумары работу работали, а не в лиспы игрались в рабочее время. Видимо, на пресловутом рынке труда таки нет нужного количества специалистов нужной квалификации, что бы это ни значило в каждом конкретном случае.


Ага, вот и ссылочку ниже в комментах пишут и статью цитируют. Всё так и есть.


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 04-Июн-19 11:57 
На нём пишет 2 с половиной задр..та.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Anonymoustus , 04-Июн-19 15:03 
> На нём пишет 2 с половиной задр..та.

«…язык Clojure требует изменить взгляды на разработку и в итоге это окупится» — так они говорят.


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 11:00 
> гарантированную обработку различных событий в режиме реального времени

Если на тачку поставить, хруста или кеглю распознать успеет?


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено пох. , 03-Июн-19 13:14 
угу, и выведет тебе на экран ачивку.


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено proninyaroslav , 03-Июн-19 11:16 
Интересна причина перехода с clojure.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 11:29 
В статье написано, что Clojure долгие годы работал исправно и реальная причина смены языка разработки - привлечь больше контрибьюторов.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Wilem , 03-Июн-19 14:52 
Надо обладать специфическим устройством головы, что бы писать на чём-либо лиспоподобном. Другими словами, никому это не нужно.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Junior frontend developer , 03-Июн-19 15:54 
Логика понятна, но на практике как-то сомнительно, что переход на джаву заинтересует кого-то.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено proninyaroslav , 03-Июн-19 20:06 
Ну позиции явы в корпоративной разработке всё ещё сильны, на то и расчитано.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 11:39 
Взято отсюда: https://yahoodevelopers.tumblr.com/post/185258393008/apache-...

Один из главных разработчиков Storm пишет, что кложа лучше  java по множественным параметрам.

Clojure is a wonderful language with many advantages over pure Java, but its prevalence in Storm became a hindrance for many developers who weren’t very familiar with it and didn’t have the time to learn it. Due to this, the community decided to port all of the daemon processes over to pure Java.


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 11:55 
> didn’t have the time to learn it

Теперь я знаю, как по-английски будет "уяк-уяк и в продакшон"


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Смузийная , 03-Июн-19 13:18 
Надо было на JS переписать.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено anonymous , 03-Июн-19 13:44 
похоже головастым ребятам, которые поднимали проект используя продвинутый инструмент, стало неинтересно, или может даже их попросили
а теперь передают обычным энтерпрайз-обезьянкам на зарплате, которым никакая clojure очевидно неинтересна

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Wilem , 03-Июн-19 14:56 
Нормальные разработчики пишут не на жаве конечно, а на котлине. Лисп это из разряда brainfuck, никому кроме энтузиастов не нужный.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 04-Июн-19 12:10 
т.е. только на андроиде есть нормальные разработчики, я вас правильно понял?

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Аноним , 03-Июн-19 12:49 
>реализованную на языке Java, вместо ранее применяемого языка Clojure

Что-то подсказывает, что от перестановки слагаемых...


"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено Антонио , 03-Июн-19 15:59 
"Сумма" меняется от перестановки слагаемых - Теорема Римана. Это общее правило, напр. действует в химии и т.д... От перестановки слагаемых "сумма" не меняется в частных случаях, напр. в школьной математике.

"Доступна система распределённых вычислений Apache Storm 2.0"
Отправлено InuYasha , 04-Июн-19 12:31 
> реализованную на языке Java
> организовать гарантированную обработку различных событий в режиме реального времени
> реализованную на языке Java
> в режиме реального времени
> Java
> реального времени

nnnnnnnoooooooooooooo........wav