Apache Storm 2.0 paylanmış hesablama sistemi mövcuddur

işığı gördü paylanmış hadisə emal sisteminin əhəmiyyətli buraxılışı Apache Fırtınası 2.0, əvvəllər istifadə edilən Clojure dili əvəzinə Java-da həyata keçirilən yeni arxitekturaya keçidi ilə diqqət çəkir.

Layihə real vaxt rejimində müxtəlif hadisələrin zəmanətli işlənməsini təşkil etməyə imkan verir. Məsələn, Storm real vaxt rejimində məlumat axınlarını təhlil etmək, maşın öyrənmə tapşırıqlarını yerinə yetirmək, davamlı hesablamaları təşkil etmək, RPC, ETL və s. həyata keçirmək üçün istifadə edilə bilər. Sistem klasterləşdirməni, xətaya dözümlü konfiqurasiyaların yaradılmasını, zəmanətli məlumatların işlənməsi rejimini dəstəkləyir və bir klaster qovşağında saniyədə bir milyondan çox sorğunun işlənməsi üçün kifayət qədər yüksək performansa malikdir.

Müxtəlif növbə emal sistemləri və verilənlər bazası texnologiyaları ilə inteqrasiya dəstəklənir. Fırtına arxitekturası hesablamaların müxtəlif mərhələləri arasında bölmək imkanı olan ixtiyari mürəkkəb prosessorlardan istifadə edərək strukturlaşdırılmamış, daim yenilənən məlumat axınlarının qəbulunu və emalını nəzərdə tutur. Twitter əvvəlcə çərçivəni hazırlayan şirkət olan BackType-ı əldə etdikdən sonra layihə Apache icmasına təhvil verildi. Təcrübədə, Storm-dan BackType-da hadisələrin mikrobloqlarda əksini təhlil etmək üçün, yeni tvitləri və onlarda istifadə olunan keçidləri dərhal müqayisə etmək üçün istifadə edilmişdir (məsələn, Twitter-də dərc olunan xarici keçidlərin və ya elanların digər iştirakçılar tərəfindən necə təkrar yayımlandığı qiymətləndirilmişdir. ).

Storm-un funksionallığı Hadoop platforması ilə müqayisə edilir, əsas fərq verilənlərin anbarda saxlanmaması, xaricdən qəbul edilməsi və real vaxt rejimində işlənməsidir. Storm-un daxili saxlama təbəqəsi yoxdur və analitik sorğu ləğv edilənə qədər daxil olan məlumatlara tətbiq olunmağa başlayır (Hadoop sonlu müddətli MapReduce işlərindən istifadə edərkən, Storm davamlı olaraq işləyən "topologiyalar" ideyasından istifadə edir). İşləyicilərin icrası bir neçə server arasında paylana bilər - Storm avtomatik olaraq müxtəlif klaster qovşaqlarında mövzularla işi paralelləşdirir.

Sistem əvvəlcə Clojure-da yazılmışdır və JVM virtual maşınının içərisində işləyir. Apache Fondu Storm-u Java-da yazılmış, nəticələri Apache Storm 2.0-ın buraxılışında təklif olunan yeni nüvəyə köçürmək təşəbbüsü ilə çıxış edib. Platformanın bütün əsas komponentləri Java-da yenidən yazılmışdır. Clojure-da yazı işləyiciləri üçün dəstək saxlanılıb, lakin indi bağlamalar şəklində təklif olunur. Storm 2.0.0 Java 8 tələb edir. Çox yivli emal modeli tamamilə yenidən işlənib və imkan verir ki, nail olmaq performansda nəzərəçarpacaq artım (bəzi topologiyalar üçün gecikmələr 50-80% azaldı).

Apache Storm 2.0 paylanmış hesablama sistemi mövcuddur

Yeni versiya həmçinin funksional proqramlaşdırma tərzi əməliyyatlarından istifadə edərək işləyiciləri müəyyən etməyə imkan verən yeni tipli Streams API təklif edir. Yeni API standart baza API-nin üzərində həyata keçirilir və onların işlənməsini optimallaşdırmaq üçün əməliyyatların avtomatik birləşməsini dəstəkləyir. Pəncərə əməliyyatları üçün Windowing API arxa planda vəziyyəti saxlamaq və bərpa etmək üçün dəstək əlavə etdi.

Bununla məhdudlaşmayan qərarlar qəbul edərkən əlavə resursların nəzərə alınmasına dəstək
Şəbəkə və GPU parametrləri kimi CPU və yaddaş. Platforma ilə inteqrasiyanı təmin etmək üçün çox sayda təkmilləşdirmələr edilmişdir Kafka. Girişə nəzarət sistemi administrator qrupları yaratmaq və tokenləri təmsil etmək imkanı daxil etmək üçün genişləndirilib. SQL və ölçü dəstəyi ilə bağlı əlavə təkmilləşdirmələr. Klaster vəziyyətini sazlamaq üçün administrator interfeysində yeni əmrlər peyda oldu.

Fırtına üçün tətbiq sahələri:

  • Real vaxt rejimində yeni məlumat axınının və ya verilənlər bazası yeniləmələrinin işlənməsi;
  • Davamlı Hesablama: Fırtına davamlı sorğular həyata keçirə və davamlı axınları emal edə, emal nəticələrini real vaxt rejimində müştəriyə çatdıra bilər.
  • Paylanmış Uzaqdan Prosedur Zəngi (RPC): Storm resurs tələb edən sorğuların paralel icrasını təmin etmək üçün istifadə edilə bilər. Storm-da iş (“topologiya”) emal edilməli olan mesajların gəlməsini gözləyən qovşaqlar arasında paylanmış funksiyadır. Mesajı aldıqdan sonra funksiya onu yerli kontekstdə emal edir və nəticəni qaytarır. Paylanmış RPC-dən istifadə nümunəsi axtarış sorğularını paralel olaraq emal etmək və ya böyük dəstlər dəstində əməliyyatlar yerinə yetirmək ola bilər.

Fırtına Xüsusiyyətləri:

  • Real vaxt rejimində məlumatların işlənməsini xeyli asanlaşdıran sadə proqramlaşdırma modeli;
  • İstənilən proqramlaşdırma dilləri üçün dəstək. Java, Ruby və Python üçün modullar var, dəstəklənməsi üçün təxminən 100 sətir kod tələb edən çox sadə rabitə protokolu sayəsində digər dillərə uyğunlaşma çətin deyil;
  • Arızaya dözümlülük: məlumatların işlənməsi işini yerinə yetirmək üçün kodu olan jar faylı yaratmalısınız. Storm bu jar faylını müstəqil olaraq klaster qovşaqları arasında paylayacaq, onunla əlaqəli işləyiciləri birləşdirəcək və monitorinq təşkil edəcək. İş başa çatdıqda, kod bütün qovşaqlarda avtomatik olaraq söndürüləcək;
  • Üfüqi miqyaslılıq. Bütün hesablamalar paralel rejimdə aparılır, yük artdıqca yeni qovşaqları klasterə qoşmaq kifayətdir;
  • Etibarlılıq. Fırtına hər gələn mesajın ən azı bir dəfə tam işlənməsini təmin edir. Mesaj yalnız bütün işləyicilərdən keçərkən heç bir səhv olmadıqda bir dəfə işlənəcək; problem yaranarsa, uğursuz emal cəhdləri təkrarlanacaq.
  • Sürət. Storm kodu yüksək performans nəzərə alınmaqla yazılmışdır və sistemdən sürətli asinxron mesajlaşma üçün istifadə edir. ZeroMQ.

Mənbə: opennet.ru

Добавить комментарий