Apache Storm 2.0 таратылған есептеу жүйесі қол жетімді

жарық көрді таратылған оқиғаларды өңдеу жүйесінің маңызды шығарылымы Apache Storm 2.0, бұрын қолданылған Clojure тілінің орнына Java-да енгізілген жаңа архитектураға көшуімен ерекшеленеді.

Жоба нақты уақыт режимінде әртүрлі оқиғаларды кепілдендірілген өңдеуді ұйымдастыруға мүмкіндік береді. Мысалы, Storm нақты уақыт режимінде деректер ағынын талдау, машиналық оқыту тапсырмаларын орындау, үздіксіз есептеулерді ұйымдастыру, RPC, ETL және т.б. енгізу үшін пайдаланылуы мүмкін. Жүйе кластерлеуді, қатеге төзімді конфигурацияларды құруды, деректерді өңдеудің кепілдендірілген режимін қолдайды және бір кластер түйінінде секундына миллионнан астам сұрауларды өңдеуге жеткілікті жоғары өнімділікке ие.

Кезекті өңдеудің әртүрлі жүйелерімен және дерекқор технологияларымен интеграцияға қолдау көрсетіледі. Storm архитектурасы есептеулердің әртүрлі кезеңдері арасында бөлу мүмкіндігі бар ерікті күрделі процессорларды пайдалана отырып, құрылымдалмаған, үнемі жаңартылатын деректер ағындарын қабылдауды және өңдеуді қамтиды. Twitter бастапқыда құрылымды әзірлеген BackType компаниясын сатып алғаннан кейін жоба Apache қауымдастығына берілді. Іс жүзінде Storm жаңа твиттер мен оларда пайдаланылған сілтемелерді салыстыру арқылы микроблогтардағы оқиғалардың көрінісін талдау үшін BackType қолданбасында қолданылды (мысалы, Twitter-де жарияланған сыртқы сілтемелер немесе хабарландырулар басқа қатысушылармен қалай қайта таратылғаны бағаланды. ).

Storm функционалдығы Hadoop платформасымен салыстырылады, негізгі айырмашылығы деректер қоймада сақталмайды, бірақ сырттан қабылданады және нақты уақытта өңделеді. Storm-да кірістірілген сақтау қабаты жоқ және аналитикалық сұрау кіріс деректерге ол жойылғанға дейін қолданыла бастайды (Hadoop соңғы уақыттық MapReduce тапсырмаларын пайдаланса, Storm үздіксіз жұмыс істейтін «топологиялар» идеясын пайдаланады). Өңдеушілердің орындалуы бірнеше серверлер бойынша таратылуы мүмкін - Storm әртүрлі кластер түйіндеріндегі ағындармен жұмысты автоматты түрде параллельді етеді.

Жүйе бастапқыда Clojure тілінде жазылған және JVM виртуалды машинасының ішінде жұмыс істейді. Apache Foundation Storm-ды Java тілінде жазылған жаңа ядроға көшіру бастамасын көтерді, оның нәтижелері Apache Storm 2.0 шығарылымында ұсынылған. Платформаның барлық негізгі компоненттері Java тілінде қайта жазылған. Clojure-де жазу өңдеушілерін қолдау сақталды, бірақ қазір байланыстыру түрінде ұсынылады. Storm 2.0.0 Java 8-ді қажет етеді. Көп ағынды өңдеу моделі толығымен қайта жасалды, бұл мүмкіндік береді жету өнімділіктің айтарлықтай артуы (кейбір топологиялар үшін кідіріс 50-80%-ға азайды).

Apache Storm 2.0 таратылған есептеу жүйесі қол жетімді

Жаңа нұсқа сонымен қатар функционалды бағдарламалау стиліндегі операцияларды пайдаланып өңдеушілерді анықтауға мүмкіндік беретін жаңа терілген Streams API ұсынады. Жаңа API стандартты базалық API үстіне енгізілген және өңдеуді оңтайландыру үшін операцияларды автоматты түрде біріктіруді қолдайды. Терезе әрекеттеріне арналған Windowing API серверінде күйді сақтау және қалпына келтіру үшін қолдауды қосты.

Шешім қабылдау кезінде қосымша ресурстарды есепке алуды қолдау
Желі және GPU параметрлері сияқты процессор және жад. Платформамен интеграцияны қамтамасыз ету үшін көптеген жақсартулар жасалды Кафка. Қол жеткізуді басқару жүйесі әкімші топтарын құру және таңбалауыштарды беру мүмкіндігін қамту үшін кеңейтілді. SQL және көрсеткіштерді қолдауға қатысты жақсартулар қосылды. Кластер күйін түзету үшін әкімші интерфейсінде жаңа пәрмендер пайда болды.

Сторм қолдану аймақтары:

  • Нақты уақытта жаңа деректер ағындарын немесе дерекқор жаңартуларын өңдеу;
  • Үздіксіз есептеу: Storm үздіксіз сұрауларды іске қосып, үздіксіз ағындарды өңдей алады, өңдеу нәтижелерін клиентке нақты уақытта жеткізе алады.
  • Бөлінген қашықтағы процедураны шақыру (RPC): Storm ресурсты көп қажет ететін сұраулардың параллель орындалуын қамтамасыз ету үшін пайдаланылуы мүмкін. Storm жүйесіндегі жұмыс («топология») өңдеуді қажет ететін хабарлардың келуін күтетін түйіндер арасында таратылған функция. Хабарламаны алғаннан кейін функция оны жергілікті контексте өңдейді және нәтижені қайтарады. Бөлінген RPC пайдаланудың мысалы іздеу сұрауларын параллельді өңдеу немесе жиындардың үлкен жиынында операцияларды орындау болуы мүмкін.

Дауылдың ерекшеліктері:

  • Нақты уақытта деректерді өңдеуді айтарлықтай жеңілдететін қарапайым бағдарламалау моделі;
  • Кез келген бағдарламалау тілдерін қолдау. Модульдер Java, Ruby және Python үшін қол жетімді, қолдау үшін 100-ге жуық код жолын қажет ететін өте қарапайым байланыс протоколының арқасында басқа тілдерге бейімделу оңай;
  • Қатеге төзімділік: деректерді өңдеу жұмысын орындау үшін кодпен jar файлын жасау керек. Storm бұл jar файлын кластер түйіндері бойынша дербес таратады, онымен байланысты өңдеушілерді қосады және бақылауды ұйымдастырады. Тапсырма аяқталған кезде код барлық түйіндерде автоматты түрде өшіріледі;
  • Көлденең масштабтау. Барлық есептеулер параллельді режимде орындалады, жүктеме артқан сайын кластерге жаңа түйіндерді қосу жеткілікті;
  • Сенімділік. Storm әрбір кіріс хабардың кем дегенде бір рет толық өңделуін қамтамасыз етеді. Хабарлама барлық өңдеушілер арқылы өту кезінде қателер болмаса ғана бір рет өңделеді; егер проблемалар туындаса, сәтсіз өңдеу әрекеттері қайталанады.
  • Жылдамдық. Storm коды жоғары өнімділікті ескере отырып жазылған және жылдам асинхронды хабар алмасу үшін жүйені пайдаланады. ZeroMQ.

Ақпарат көзі: opennet.ru

пікір қалдыру