Apache Storm 2.0 тархсан тооцоолох системийг ашиглах боломжтой

Гэрэл харсан тархсан үйл явдал боловсруулах системийн томоохон хувилбар Апачи шуурга 2.0, өмнө нь ашиглаж байсан Clojure хэлний оронд Java хэл дээр хэрэгжсэн шинэ архитектурт шилжсэнээрээ алдартай.

Төсөл нь янз бүрийн үйл явдлын баталгаатай боловсруулалтыг бодит цаг хугацаанд зохион байгуулах боломжийг танд олгоно. Жишээлбэл, Storm нь өгөгдлийн урсгалыг бодит цаг хугацаанд шинжлэх, машин сургалтын даалгавруудыг гүйцэтгэх, тасралтгүй тооцоолох ажлыг зохион байгуулах, RPC, ETL гэх мэтийг хэрэгжүүлэхэд ашиглаж болно. Энэ систем нь кластер хийх, алдаа гаргахад тэсвэртэй тохиргоог бий болгох, өгөгдөл боловсруулах баталгаатай горимыг дэмждэг бөгөөд нэг кластер зангилаан дээр секундэд сая гаруй хүсэлтийг боловсруулахад хангалттай өндөр гүйцэтгэлтэй.

Төрөл бүрийн дараалал боловсруулах систем, мэдээллийн баазын технологитой нэгтгэхийг дэмждэг. Storm архитектур нь тооцооллын янз бүрийн үе шатуудыг хооронд нь хуваах чадвартай дурын нарийн төвөгтэй процессоруудыг ашиглан бүтэцгүй, байнга шинэчлэгддэг мэдээллийн урсгалыг хүлээн авах, боловсруулахыг хамардаг. Твиттер уг тогтолцоог анх боловсруулсан BackType компанийг худалдаж авсны дараа уг төслийг Апачи нийгэмлэгт хүлээлгэн өгсөн. Практикт Storm-ийг BackType-д микроблог дахь үйл явдлын тусгалд дүн шинжилгээ хийж, шинэ жиргээнүүд болон тэдгээрт ашиглагдаж буй линкүүдийг хооронд нь харьцуулах замаар ашигласан (жишээ нь, Твиттерт нийтлэгдсэн гадаад холбоос эсвэл мэдэгдлийг бусад оролцогчид хэрхэн дахин цацаж байгааг үнэлэв. ).

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

Уг систем нь анх Clojure хэл дээр бичигдсэн бөгөөд JVM виртуал машин дотор ажилладаг. Апачи сан нь 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 тохиргоо зэрэг CPU ба санах ой. Платформтой нэгдмэл байдлыг хангахын тулд олон тооны сайжруулалт хийгдсэн Kaфка. Хандалтын хяналтын системийг өргөтгөж, администраторын бүлгүүдийг үүсгэх, токенуудыг төлөөлөх чадварыг багтаасан. SQL болон хэмжүүрийн дэмжлэгтэй холбоотой сайжруулалтыг нэмсэн. Администраторын интерфейс дээр кластерийн төлөвийг дибаг хийх шинэ тушаалууд гарч ирэв.

Шуурганы хэрэглээний бүсүүд:

  • Шинэ өгөгдөл эсвэл мэдээллийн сангийн шинэчлэлийн урсгалыг бодит цаг хугацаанд боловсруулах;
  • Тасралтгүй тооцоолол: Storm нь тасралтгүй асуулга ажиллуулж, тасралтгүй урсгалыг боловсруулж, боловсруулалтын үр дүнг бодит цаг хугацаанд үйлчлүүлэгчид хүргэдэг.
  • Distributed Remote Procedure Call (RPC): Storm-ийг нөөц их шаарддаг асуулгын зэрэгцээ гүйцэтгэлийг хангахад ашиглаж болно. Storm дахь ажил ("топологи") нь боловсруулах шаардлагатай мессеж ирэх хүртэл зангилаанд хуваарилагдсан функц юм. Мессежийг хүлээн авсны дараа функц нь түүнийг локал контекстэд боловсруулж, үр дүнг буцаана. Түгээмэл RPC ашиглах жишээ нь хайлтын асуулгыг зэрэгцүүлэн боловсруулах эсвэл олон багц дээр үйлдлүүдийг гүйцэтгэх явдал юм.

Шуурганы онцлогууд:

  • Бодит цагийн өгөгдөл боловсруулах ажлыг ихээхэн хялбаршуулдаг энгийн програмчлалын загвар;
  • Аливаа програмчлалын хэлийг дэмжих. Модулуудыг Java, Ruby, Python-д ашиглах боломжтой бөгөөд 100 орчим мөр код шаарддаг маш энгийн харилцааны протоколын ачаар бусад хэлүүдэд дасан зохицоход хялбар байдаг;
  • Алдаа тэсвэрлэх чадвар: өгөгдөл боловсруулах ажлыг ажиллуулахын тулд та код бүхий jar файл үүсгэх хэрэгтэй. Storm нь энэ лонхтой файлыг кластерийн зангилаануудаар бие даан тарааж, түүнтэй холбоотой зохицуулагчдыг холбож, хяналтыг зохион байгуулна. Ажил дуусахад код нь бүх зангилаа дээр автоматаар идэвхгүй болно;
  • Хэвтээ өргөтгөх чадвар. Бүх тооцооллыг зэрэгцээ горимд гүйцэтгэдэг бөгөөд ачаалал нэмэгдэхийн хэрээр шинэ зангилааг кластерт холбоход л хангалттай;
  • Найдвартай байдал. Storm нь ирж буй мессеж бүрийг дор хаяж нэг удаа бүрэн боловсруулдаг болохыг баталгаажуулдаг. Бүх зохицуулагчаар дамжих үед алдаа гараагүй тохиолдолд мессежийг зөвхөн нэг удаа боловсруулах бөгөөд хэрэв асуудал гарвал амжилтгүй боловсруулах оролдлого давтагдах болно.
  • Хурд. Storm-ийн код нь өндөр гүйцэтгэлтэй бичигдсэн бөгөөд хурдан асинхрон мессежийн системийг ашигладаг. ZeroMQ.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх