Apache Storm 2.0 taqsimlangan hisoblash tizimi mavjud

nurni ko'rdi tarqatilgan hodisalarni qayta ishlash tizimining sezilarli darajada chiqarilishi Apache Storm 2.0, ilgari qo'llanilgan Clojure tili o'rniga Java-da joriy qilingan yangi arxitekturaga o'tishi bilan ajralib turadi.

Loyiha real vaqt rejimida turli hodisalarni kafolatlangan qayta ishlashni tashkil etish imkonini beradi. Masalan, Storm real vaqtda ma'lumotlar oqimini tahlil qilish, mashinani o'rganish vazifalarini bajarish, uzluksiz hisoblashni tashkil qilish, RPC, ETL va boshqalarni amalga oshirish uchun ishlatilishi mumkin. Tizim klasterlashni, xatoga chidamli konfiguratsiyalarni yaratishni, ma'lumotlarni qayta ishlashning kafolatlangan rejimini qo'llab-quvvatlaydi va bitta klaster tugunida soniyasiga milliondan ortiq so'rovlarni qayta ishlash uchun etarli bo'lgan yuqori unumdorlikka ega.

Turli navbatlarni qayta ishlash tizimlari va ma'lumotlar bazasi texnologiyalari bilan integratsiya qo'llab-quvvatlanadi. Storm arxitekturasi hisob-kitoblarning turli bosqichlari o'rtasida bo'linish qobiliyatiga ega bo'lgan o'zboshimchalik bilan murakkab protsessorlar yordamida tizimlashtirilmagan, doimiy yangilanadigan ma'lumotlar oqimlarini qabul qilish va qayta ishlashni o'z ichiga oladi. Twitter dastlab ramkani ishlab chiqqan BackType kompaniyasini sotib olganidan keyin loyiha Apache hamjamiyatiga topshirildi. Amalda, Storm BackType-da voqealarning mikrobloglardagi aksini tahlil qilish uchun, yangi tvitlar va ulardagi havolalarni bir vaqtning o'zida taqqoslash uchun ishlatilgan (masalan, Twitterda chop etilgan tashqi havolalar yoki e'lonlar boshqa ishtirokchilar tomonidan qanday qayta translyatsiya qilinganligi baholandi. ).

Stormning funksionalligi Hadoop platformasi bilan taqqoslanadi, asosiy farqi shundaki, ma’lumotlar omborda saqlanmaydi, balki tashqaridan qabul qilinadi va real vaqtda qayta ishlanadi. Storm o'rnatilgan saqlash qatlamiga ega emas va analitik so'rov kiruvchi ma'lumotlarga ular bekor qilinmaguncha qo'llanila boshlaydi (Hadoop cheklangan vaqtli MapReduce ishlaridan foydalansa, Storm doimiy ravishda ishlaydigan "topologiyalar" g'oyasidan foydalanadi). Ishlovchilarning bajarilishi bir nechta serverlar bo'ylab taqsimlanishi mumkin - Storm avtomatik ravishda turli klaster tugunlarida iplar bilan ishlashni parallellashtiradi.

Tizim dastlab Clojure-da yozilgan va JVM virtual mashinasida ishlaydi. Apache jamg'armasi Storm-ni Java-da yozilgan yangi yadroga ko'chirish tashabbusi bilan chiqdi, uning natijalari Apache Storm 2.0 versiyasini chiqarishda taklif etiladi. Platformaning barcha asosiy komponentlari Java-da qayta yozilgan. Clojure-da yozish ishlov beruvchilarini qo'llab-quvvatlash saqlanib qoldi, ammo endi bog'lash shaklida taqdim etiladi. Storm 2.0.0 Java 8-ni talab qiladi. Ko'p tarmoqli ishlov berish modeli butunlay qayta ishlab chiqilgan va bu erishish ishlashning sezilarli o'sishi (ba'zi topologiyalar uchun kechikishlar 50-80% ga kamaydi).

Apache Storm 2.0 taqsimlangan hisoblash tizimi mavjud

Yangi versiya, shuningdek, funktsional dasturlash uslubidagi operatsiyalar yordamida ishlov beruvchilarni aniqlash imkonini beruvchi yangi yozilgan Streams API-ni taklif etadi. Yangi API standart tayanch API ustida amalga oshiriladi va ularni qayta ishlashni optimallashtirish uchun operatsiyalarni avtomatik birlashtirishni qo'llab-quvvatlaydi. Oyna operatsiyalari uchun Windowing API backend holatini saqlash va tiklash uchun qo'shimcha qo'llab-quvvatladi.

Qarorlar qabul qilishda qo'shimcha resurslarni hisobga olishni qo'llab-quvvatlash bilan cheklanmaydi
Tarmoq va GPU sozlamalari kabi CPU va xotira. Platforma bilan integratsiyani ta'minlash uchun ko'plab yaxshilanishlar amalga oshirildi Kafka. Kirishni boshqarish tizimi administrator guruhlarini yaratish va tokenlarni topshirish imkoniyatini o'z ichiga olgan holda kengaytirildi. SQL va o'lchovlarni qo'llab-quvvatlash bilan bog'liq yaxshilanishlar qo'shildi. Klaster holatini tuzatish uchun administrator interfeysida yangi buyruqlar paydo bo'ldi.

Bo'ronni qo'llash sohalari:

  • real vaqtda yangi ma'lumotlar oqimi yoki ma'lumotlar bazasi yangilanishini qayta ishlash;
  • Uzluksiz hisoblash: Storm uzluksiz so'rovlarni bajarishi va doimiy oqimlarni qayta ishlashi mumkin, bu esa mijozga real vaqtda ishlov berish natijalarini etkazib beradi.
  • Taqsimlangan masofaviy protsedura chaqiruvi (RPC): Storm resurs talab qiladigan so'rovlarning parallel bajarilishini ta'minlash uchun ishlatilishi mumkin. Bo'rondagi ish ("topologiya") tugunlar bo'ylab taqsimlangan funksiya bo'lib, qayta ishlanishi kerak bo'lgan xabarlar kelishini kutadi. Xabarni olgandan so'ng, funktsiya uni mahalliy kontekstda qayta ishlaydi va natijani qaytaradi. Tarqalgan RPC dan foydalanish misoli qidiruv so'rovlarini parallel ravishda qayta ishlash yoki katta to'plamlar to'plamida operatsiyalarni bajarishdir.

Bo'ron xususiyatlari:

  • Haqiqiy vaqtda ma'lumotlarni qayta ishlashni sezilarli darajada soddalashtiradigan oddiy dasturlash modeli;
  • Har qanday dasturlash tillarini qo'llab-quvvatlash. Modullar Java, Ruby va Python uchun mavjud, qo'llab-quvvatlash uchun taxminan 100 qator kodni talab qiladigan juda oddiy aloqa protokoli tufayli boshqa tillarga moslashish oson;
  • Xatolarga chidamlilik: ma'lumotlarni qayta ishlash ishini bajarish uchun kodli jar faylini yaratishingiz kerak. Storm ushbu jar faylini mustaqil ravishda klaster tugunlari bo'ylab tarqatadi, u bilan bog'langan ishlov beruvchilarni ulaydi va monitoringni tashkil qiladi. Ish tugagach, kod barcha tugunlarda avtomatik ravishda o'chiriladi;
  • Gorizontal miqyoslilik. Barcha hisob-kitoblar parallel rejimda amalga oshiriladi, yuk ortishi bilan yangi tugunlarni klasterga ulash kifoya;
  • Ishonchlilik. Storm har bir kiruvchi xabarning kamida bir marta to'liq qayta ishlanishini ta'minlaydi. Xabar faqat barcha ishlov beruvchilar orqali o'tishda xatolik bo'lmasa, bir marta qayta ishlanadi; agar muammolar yuzaga kelsa, qayta ishlash muvaffaqiyatsiz urinishlari takrorlanadi.
  • Tezlik. Storm kodi yuqori unumdorlikni hisobga olgan holda yozilgan va tez asenkron xabarlar uchun tizimdan foydalanadi. ZeroMQ.

Manba: opennet.ru

a Izoh qo'shish