Հասանելի է Apache Storm 2.0 բաշխված հաշվողական համակարգը

լույս տեսավ բաշխված իրադարձությունների մշակման համակարգի զգալի թողարկում Apache Storm 2.0, աչքի է ընկնում Java-ում ներդրված նոր ճարտարապետության անցումով, նախկինում օգտագործված Clojure լեզվի փոխարեն։

Նախագիծը թույլ է տալիս իրական ժամանակում կազմակերպել տարբեր միջոցառումների երաշխավորված մշակում։ Օրինակ, Storm-ը կարող է օգտագործվել իրական ժամանակում տվյալների հոսքերը վերլուծելու, մեքենայական ուսուցման առաջադրանքներ գործարկելու, շարունակական հաշվարկներ կազմակերպելու, RPC, ETL և այլն իրականացնելու համար: Համակարգն աջակցում է կլաստերավորմանը, սխալների հանդուրժող կոնֆիգուրացիաների ստեղծմանը, տվյալների մշակման երաշխավորված ռեժիմին և ունի բարձր արդյունավետություն, որը բավարար է մեկ կլաստերային հանգույցի վրա վայրկյանում մեկ միլիոնից ավելի հարցումներ մշակելու համար:

Աջակցվում է ինտեգրումը հերթերի մշակման տարբեր համակարգերի և տվյալների բազայի տեխնոլոգիաների հետ: Storm ճարտարապետությունը ներառում է չկառուցված, անընդհատ թարմացվող տվյալների հոսքերի ընդունում և մշակում, օգտագործելով կամայական բարդ պրոցեսորներ՝ հաշվարկների տարբեր փուլերի միջև բաժանելու ունակությամբ: Նախագիծը փոխանցվեց Apache համայնքին այն բանից հետո, երբ Twitter-ը ձեռք բերեց BackType ընկերությունը, որն ի սկզբանե մշակել էր շրջանակը: Գործնականում 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-ը պատուհանների գործառնությունների համար ավելացրել է աջակցություն հետնամասում վիճակի պահպանման և վերականգնման համար:

Աջակցություն՝ հաշվի առնելու լրացուցիչ ռեսուրսները որոշումներ կայացնելիս՝ չսահմանափակվելով միայն
CPU և հիշողություն, ինչպիսիք են ցանցի և GPU-ի կարգավորումները: Մեծ թվով բարելավումներ են կատարվել՝ հարթակի հետ ինտեգրումն ապահովելու համար Kafka. Մուտքի վերահսկման համակարգը ընդլայնվել է՝ ներառելով ադմինիստրատորների խմբեր ստեղծելու և խորհրդանիշներ պատվիրակելու հնարավորությունը: Ավելացված բարելավումներ՝ կապված SQL-ի և չափումների աջակցության հետ: Ադմինիստրատորի միջերեսում հայտնվել են նոր հրամաններ՝ կլաստերի վիճակը կարգաբերելու համար:

Փոթորիկի կիրառման ոլորտները.

  • Նոր տվյալների կամ տվյալների բազայի թարմացումների հոսքերի մշակում իրական ժամանակում;
  • Continuous Computing. Storm-ը կարող է շարունակական հարցումներ կատարել և շարունակական հոսքեր մշակել՝ իրական ժամանակում վերամշակման արդյունքները մատուցելով հաճախորդին:
  • Բաշխված հեռակառավարման ընթացակարգի զանգ (RPC). Storm-ը կարող է օգտագործվել ռեսուրսների ինտենսիվ հարցումների զուգահեռ կատարում ապահովելու համար: Աշխատանքը («տոպոլոգիա») Storm-ում մի գործառույթ է, որը բաշխված է հանգույցների վրա, որը սպասում է հաղորդագրությունների ժամանմանը, որոնք պետք է մշակվեն: Հաղորդագրություն ստանալուց հետո ֆունկցիան այն մշակում է տեղական համատեքստում և վերադարձնում արդյունքը։ Բաշխված RPC-ի օգտագործման օրինակ կարող է լինել որոնման հարցումները զուգահեռ մշակելը կամ գործողություններ կատարելը մեծ հավաքածուների վրա:

Փոթորիկի առանձնահատկությունները.

  • Ծրագրավորման պարզ մոդել, որը մեծապես հեշտացնում է իրական ժամանակի տվյալների մշակումը.
  • Աջակցություն ցանկացած ծրագրավորման լեզուներին: Մոդուլները հասանելի են Java-ի, Ruby-ի և Python-ի համար, այլ լեզուների համար հարմարեցումը հեշտ է շատ պարզ հաղորդակցման արձանագրության շնորհիվ, որն աջակցության համար պահանջում է մոտ 100 տող կոդ;
  • Սխալների հանդուրժողականություն. տվյալների մշակման աշխատանքն իրականացնելու համար անհրաժեշտ է ստեղծել jar ֆայլ կոդով: Storm-ը ինքնուրույն կտարածի այս jar ֆայլը կլաստերի հանգույցների միջով, կմիացնի դրա հետ կապված մշակողները և կկազմակերպի մոնիտորինգ: Երբ աշխատանքն ավարտվի, կոդը ավտոմատ կերպով կանջատվի բոլոր հանգույցներում;
  • Հորիզոնական մասշտաբայնություն. Բոլոր հաշվարկները կատարվում են զուգահեռ ռեժիմով, քանի որ բեռը մեծանում է, բավական է պարզապես նոր հանգույցներ միացնել կլաստերին.
  • Հուսալիություն. Storm-ն ապահովում է, որ յուրաքանչյուր մուտքային հաղորդագրություն գոնե մեկ անգամ ամբողջությամբ մշակվի: Հաղորդագրությունը մեկ անգամ կմշակվի միայն այն դեպքում, եթե բոլոր մշակողների միջով անցնելիս սխալներ չլինեն, եթե խնդիրներ առաջանան, ապա վերամշակման անհաջող փորձերը կկրկնվեն:
  • Արագություն. Storm-ի կոդը գրված է բարձր կատարողականությամբ և օգտագործում է համակարգը արագ ասինխրոն հաղորդագրությունների փոխանակման համար ZeroMQ.

Source: opennet.ru

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