Достапен е дистрибуиран компјутерски систем Apache Storm 2.0

Ја видов светлината значително ослободување на систем за обработка на дистрибуирани настани Apache Storm 2.0, забележлив по својата транзиција кон нова архитектура имплементирана во Јава, наместо претходно користениот јазик Clojure.

Проектот ви овозможува да организирате загарантирана обработка на различни настани во реално време. На пример, Storm може да се користи за анализа на потоци на податоци во реално време, извршување задачи за машинско учење, организирање континуирано пресметување, имплементација на RPC, ETL, итн. Системот поддржува кластерирање, создавање на конфигурации толерантни за грешки, гарантиран режим на обработка на податоци и има високи перформанси, доволни за обработка на повеќе од милион барања во секунда на еден јазол на кластерот.

Поддржана е интеграција со различни системи за обработка на редици и технологии за бази на податоци. Архитектурата Storm вклучува примање и обработка на неструктурирани, постојано ажурирани текови на податоци користејќи произволни сложени процесори со можност за поделба помеѓу различни фази на пресметки. Проектот беше префрлен во заедницата Apache откако Twitter ја купи BackType, компанијата која првично ја разви рамката. Во пракса, Storm се користеше во BackType за да се анализира одразот на настаните во микроблоговите, со споредување на нови твитови и врските користени во нив (на пример, беше оценето како надворешните врски или објавите објавени на Твитер се реемитуваат од други учесници ).

Функционалноста на Storm се споредува со платформата Hadoop, со клучната разлика што податоците не се складираат во складиште, туку се внесуваат надворешно и се обработуваат во реално време. Storm нема вграден слој за складирање и аналитичкото барање почнува да се применува на дојдовните податоци додека не се откажат (додека Hadoop користи конечни работни задачи на MapReduce, Storm ја користи идејата за постојано извршување на „топологии“). Извршувањето на управувачите може да се дистрибуира низ неколку сервери - Storm автоматски ја паралелизира работата со нишки на различни јазли на кластерот.

Системот првично беше напишан во Clojure и работи во виртуелната машина JVM. Фондацијата Apache покрена иницијатива за мигрирање на Storm на ново јадро напишано на Java, чии резултати се предложени во изданието на Apache Storm 2.0. Сите основни компоненти на платформата се препишуваат во Java. Поддршката за ракувачи со пишување во Clojure е задржана, но сега се нуди во форма на врзување. Storm 2.0.0 бара Java 8. Моделот за обработка со повеќе нишки е целосно редизајниран, овозможувајќи постигне забележително зголемување на перформансите (за некои топологии, доцнењата беа намалени за 50-80%).

Достапен е дистрибуиран компјутерски систем Apache Storm 2.0

Новата верзија нуди и ново отчукувано Streams API што ви овозможува да дефинирате ракувачи користејќи операции во функционален стил на програмирање. Новиот API е имплементиран на врвот на стандардното основно API и поддржува автоматско спојување на операции за да се оптимизира нивната обработка. АПИ-то за прозорци за операции на прозорци додаде поддршка за зачувување и враќање на состојбата во задниот дел.

Поддршка за земање предвид на дополнителни ресурси при донесување одлуки не ограничувајќи се на
Процесорот и меморијата, како што се поставките за мрежа и графички процесор. Направени се голем број подобрувања за да се обезбеди интеграција со платформата Кафка. Системот за контрола на пристап е проширен за да ја вклучи можноста за креирање администраторски групи и делегирање токени. Додадени подобрувања поврзани со поддршката за SQL и метрика. Во администраторскиот интерфејс се појавија нови команди за дебагирање на состојбата на кластерот.

Области на примена за Бура:

  • Обработка на текови на нови податоци или ажурирања на бази на податоци во реално време;
  • Континуирано пресметување: Storm може да извршува континуирани барања и да обработува континуирани текови, доставувајќи резултати од обработката на клиентот во реално време.
  • Повик за дистрибуирана далечинска процедура (RPC): Storm може да се користи за да се обезбеди паралелно извршување на барања со интензивни ресурси. Работа („топологија“) во Storm е функција дистрибуирана низ јазли што чека да пристигнат пораки кои треба да се обработат. Откако ќе прими порака, функцијата ја обработува во локален контекст и го враќа резултатот. Пример за користење на дистрибуиран RPC би бил паралелно да се обработуваат барањата за пребарување или да се вршат операции на голем сет на множества.

Карактеристики на бура:

  • Едноставен програмски модел кој во голема мера ја поедноставува обработката на податоците во реално време;
  • Поддршка за сите програмски јазици. Модулите се достапни за Java, Ruby и Python, адаптацијата за други јазици е лесна благодарение на многу едноставен протокол за комуникација кој бара околу 100 линии код за поддршка;
  • Толеранција на грешки: за да извршите работа за обработка на податоци, треба да генерирате датотека jar со код. Storm независно ќе ја дистрибуира оваа jar-датотека низ јазлите на кластерот, ќе ги поврзе ракувачите поврзани со него и ќе организира мониторинг. Кога работата ќе заврши, кодот автоматски ќе се оневозможи на сите јазли;
  • Хоризонтална приспособливост. Сите пресметки се вршат во паралелен режим; како што се зголемува оптоварувањето, доволно е едноставно да се поврзат нови јазли во кластерот;
  • Доверливост. Storm гарантира дека секоја дојдовна порака е целосно обработена барем еднаш. Пораката ќе се обработи еднаш само ако нема грешки при поминување низ сите управувачи; ако се појават проблеми, тогаш ќе се повторат неуспешни обиди за обработка.
  • Брзина. Кодот на Storm е напишан со високи перформанси и го користи системот за брзо асинхроно испраќање пораки ZeroMQ.

Извор: opennet.ru

Додадете коментар