Apache Storm 2.0 бөлүштүрүлгөн эсептөө системасы жеткиликтүү

жарык көрдү бөлүштүрүлгөн окуяларды иштетүү системасынын олуттуу релиз Apache Storm 2.0, мурда колдонулган Clojure тилинин ордуна Javaда ишке ашырылган жаңы архитектурага өтүүсү менен өзгөчөлөнөт.

Долбоор реалдуу убакытта ар кандай окуяларды кепилденген иштетүүнү уюштурууга мүмкүндүк берет. Мисалы, Storm реалдуу убакыт режиминде маалымат агымын талдоо, машинаны үйрөнүү тапшырмаларын аткаруу, үзгүлтүксүз эсептөөлөрдү уюштуруу, RPC, ETL ж.б. Система кластерлөөнү, катага чыдамдуу конфигурацияларды түзүүнү, маалыматтарды иштетүүнүн кепилденген режимин колдойт жана бир кластер түйүнүндө секундасына миллиондон ашык суроо-талаптарды иштетүү үчүн жетиштүү болгон жогорку өндүрүмдүүлүккө ээ.

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

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 орнотуулары сыяктуу CPU жана эстутум. Платформа менен интеграцияны камсыз кылуу үчүн көптөгөн жакшыртуулар жасалды Татарча. Кирүүнү башкаруу системасы администратор топторун түзүү жана энбелгилерди берүү мүмкүнчүлүгүн камтыган кеңейтилген. SQL жана метрикалык колдоо менен байланышкан жакшыртуулар кошулду. Администратор интерфейсинде кластердин абалын оңдоо үчүн жаңы буйруктар пайда болду.

Storm колдонуу аймактары:

  • реалдуу убакытта жаңы маалыматтардын агымдарын же маалымат базасын жаңыртуу;
  • Үзгүлтүксүз эсептөө: Storm үзгүлтүксүз сурамдарды иштетип, үзгүлтүксүз агымдарды иштетип, кардарга реалдуу убакытта иштетүү натыйжаларын жеткире алат.
  • Бөлүштүрүлгөн Remote Procedure Call (RPC): Storm ресурстарды көп талап кылган суроо-талаптарды параллелдүү аткарууну камсыз кылуу үчүн колдонулушу мүмкүн. Stormдагы жумуш («топология») бул иштелиши керек болгон билдирүүлөрдүн келишин күткөн түйүндөр боюнча бөлүштүрүлгөн функция. Кабарды алгандан кийин, функция аны жергиликтүү контекстте иштетет жана натыйжаны кайтарат. Бөлүштүрүлгөн RPCди колдонуунун мисалы катары издөө сурамдарын параллелдүү иштеп чыгуу же чоң топтомдор боюнча операцияларды аткаруу болот.

бороон өзгөчөлүктөрү:

  • Реалдуу убакыт режиминде маалыматтарды иштеп чыгууну абдан жөнөкөйлөткөн жөнөкөй программалоо модели;
  • Бардык программалоо тилдерин колдоо. Модулдар Java, Ruby жана Python үчүн жеткиликтүү, башка тилдерге ыңгайлаштыруу 100гө жакын код саптарын талап кылган өтө жөнөкөй байланыш протоколунун аркасында оңой;
  • Ката толеранттуулук: маалыматтарды иштетүү ишин иштетүү үчүн, сиз код менен jar файлын түзүү керек. Storm бул jar файлын кластердик түйүндөр боюнча өз алдынча таратып, аны менен байланышкан иштетүүчүлөрдү туташтырат жана мониторингди уюштурат. Жумуш аяктагандан кийин, код бардык түйүндөрдө автоматтык түрдө өчүрүлөт;
  • Горизонталдык масштабдуулук. Бардык эсептөөлөр параллелдүү режимде жүргүзүлөт, жүк көбөйгөн сайын, кластерге жаңы түйүндөрдү туташтыруу жетиштүү;
  • Ишенимдүүлүк. Storm ар бир келген билдирүү толугу менен жок дегенде бир жолу иштетилишин камсыз кылат. Бардык иштеткичтер аркылуу өтүүдө каталар болбосо, билдирүү бир жолу иштетилет; эгер көйгөйлөр пайда болсо, анда ийгиликсиз иштетүү аракеттери кайталанат.
  • Ылдамдык. Storm коду жогорку аткарууну эске алуу менен жазылган жана тез асинхрондук билдирүүлөр үчүн системаны колдонот ZeroMQ.

Source: opennet.ru

Комментарий кошуу