"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

زه وړاندیز کوم چې تاسو د لیکچر "هډوپ. زوکیپر" د لړۍ "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه" څخه ولولئ.

ZooKeeper څه شی دی، د هډوپ ایکوسیستم کې ځای لري. د توزیع شوي کمپیوټري په اړه غلط معلومات. د معیاري ویشل شوي سیسټم ډیاګرام. د ویشل شوي سیسټمونو په همغږۍ کې ستونزې. د همغږۍ عادي ستونزې. د ZooKeeper د ډیزاین تر شا اصول. د زوکیپر ډیټا ماډل. znode بیرغونه. غونډې. د مراجعینو API. ابتدايي (تشکیلات، د ګروپ غړیتوب، ساده قلفونه، د مشر ټاکنه، د رمې اغیزې پرته بندول). د ژوبڼ کیپر جوړښت. زوکیپر DB زیب. د سمبالونکي غوښتنه وکړئ.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

نن ورځ موږ د ZooKeeper په اړه خبرې کوو. دا شی ډیر ګټور دی. دا، د اپاچي هډوپ محصول په څیر، یو لوګو لري. دا یو سړی انځوروي.

مخکې له دې، موږ په عمده توګه د دې په اړه خبرې وکړې چې څنګه ډاټا هلته پروسس کیدی شي، دا څنګه ذخیره کول، دا دی، دا څنګه کارول کیږي او په یو ډول سره کار کوي. او نن زه غواړم د توزیع شوي غوښتنلیکونو جوړولو په اړه لږ څه وغږیږم. او زوکیپر یو له هغه شیانو څخه دی چې تاسو ته اجازه درکوي دا مسله ساده کړئ. دا یو ډول خدمت دی چې په توزیع شوي سیسټمونو کې د توزیع شوي غوښتنلیکونو کې د پروسو د متقابل عمل د یو ډول همغږۍ لپاره دی.

د دې ډول غوښتنلیکونو اړتیا د هرې ورځې په تیریدو سره ډیریږي، دا هغه څه دي چې زموږ کورس یې په اړه دی. له یوې خوا، MapReduce او دا چمتو شوی چوکاټ تاسو ته اجازه درکوي چې دا پیچلتیا اندازه کړئ او پروګرامر د ابتدايي لیکلو څخه خلاص کړئ لکه د پروسو تعامل او همغږي. مګر له بلې خوا، هیڅوک تضمین نه کوي چې دا به په هرصورت ترسره نشي. MapReduce یا نور چمتو شوي چوکاټونه تل په بشپړ ډول ځینې قضیې نه بدلوي چې د دې په کارولو سره نشي پلي کیدی. پخپله MapReduce او د نورو اپاچي پروژو یوه ډله په شمول؛ دوی، په حقیقت کې، هم ویشل شوي غوښتنلیکونه دي. او د لیکلو اسانه کولو لپاره، دوی ZooKeeper لیکلي.

د هډوپ اړوند ټولو غوښتنلیکونو په څیر، دا د یاهو لخوا رامینځته شوی! دا اوس د اپاچي رسمي غوښتنلیک هم دی. دا د HBase په څیر فعاله وده نه ده کړې. که تاسو JIRA HBase ته لاړشئ ، نو هره ورځ د بګ راپورونو یوه ډله شتون لري ، د یو څه اصلاح کولو وړاندیزونو یوه ډله ، د بیلګې په توګه په پروژه کې ژوند په دوامداره توګه روان دی. او ZooKeeper، له یوې خوا، نسبتا ساده محصول دی، او له بلې خوا، دا د هغې اعتبار یقیني کوي. او دا کارول خورا اسانه دي ، له همدې امله دا د هډوپ ایکوسیستم دننه غوښتنلیکونو کې معیاري ګرځیدلی. نو ما فکر کاوه چې دا به ګټور وي چې بیاکتنه وکړو ترڅو پوه شو چې دا څنګه کار کوي او څنګه یې کارول کیږي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

دا د هغه لیکچر څخه یو انځور دی چې موږ یې درلود. موږ کولی شو ووایو چې دا هر څه ته اورتوګونال دی چې موږ تر دې دمه فکر کړی دی. او هر څه چې دلته اشاره شوي، یو درجې یا بل ته، د ZooKeeper سره کار کوي، د بیلګې په توګه، دا یو خدمت دی چې دا ټول محصولات کاروي. نه HDFS او نه هم MapReduce خپل ورته خدمتونه لیکي چې په ځانګړي ډول د دوی لپاره کار کوي. په دې اساس، ZooKeeper کارول کیږي. او دا د پرمختګ او د غلطیو پورې اړوند ځینې شیان ساده کوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

دا ټول له کومه راځي؟ داسې ښکاري چې موږ دوه غوښتنلیکونه په موازي ډول په مختلف کمپیوټرونو کې پیل کړي، دوی یې د تار یا میش سره وصل کړي، او هرڅه کار کوي. مګر ستونزه دا ده چې شبکه د اعتبار وړ نه ده، او که تاسو ټرافيک وڅښئ یا وګورئ چې هلته څه پیښیږي په ټیټه کچه، پیرودونکي څنګه په شبکه کې اړیکه لري، تاسو ډیری وختونه لیدلی شئ چې ځینې پاکټونه ورک شوي یا بیا لیږل شوي. دا د هیڅ شی لپاره ندي چې د TCP پروتوکولونه اختراع شوي ، کوم چې تاسو ته اجازه درکوي یوه ټاکلې ناسته رامینځته کړئ او د پیغامونو تحویل تضمین کړئ. مګر په هر حالت کې، حتی TCP نشي کولی تل تاسو خوندي کړي. هر څه وخت لري. شبکه ممکن په ساده ډول د یو څه مودې لپاره راښکته شي. دا ممکن یوازې سترګې پټې کړي. او دا ټول د دې حقیقت لامل کیږي چې تاسو نشئ کولی د باور وړ شبکې باندې تکیه وکړئ. دا د موازي غوښتنلیکونو لیکلو څخه اصلي توپیر دی چې په یو کمپیوټر یا یو سوپر کمپیوټر کې چلیږي ، چیرې چې شبکه شتون نلري ، چیرې چې په حافظه کې د ډیټا تبادلې بس شتون لري. او دا یو بنسټیز توپیر دی.

د نورو شیانو په مینځ کې، کله چې شبکه کاروئ، تل یو مشخص ځنډ شتون لري. ډیسک هم لري، مګر شبکه یې ډیر لري. ځنډ یو څه ځنډ وخت دی، کوم چې کیدای شي کوچنی وي یا خورا مهم وي.

د شبکې ټوپولوژي بدلیږي. ټوپولوژي څه ده - دا زموږ د شبکې تجهیزاتو ځای په ځای کول دي. دلته د معلوماتو مرکزونه شتون لري، ریکونه شتون لري چې هلته ولاړ دي، شمعې شتون لري. دا ټول بیا سره نښلول کیدی شي، لیږدول کیدی شي، او داسې نور. دا ټول هم باید په پام کې ونیول شي. د IP نومونه بدلیږي، هغه لار چې له لارې زموږ ټرافيک سفر کوي بدلیږي. دا هم باید په پام کې ونیول شي.

شبکه ممکن د تجهیزاتو شرایطو کې هم بدلون ومومي. د تمرین څخه، زه کولی شم ووایم چې زموږ د شبکې انجنیران واقعیا خوښوي چې په وخت سره په شمع باندې یو څه تازه کړي. ناڅاپه یو نوی فرم ویئر راغی او دوی په ځانګړي ډول د هډوپ کلستر سره علاقه نه درلوده. دوی خپله دنده لري. د دوی لپاره، اصلي شی دا دی چې شبکه کار کوي. په دې اساس، دوی غواړي هلته یو څه بیا اپلوډ کړي، په خپل هارډویر کې فلش وکړي، او هارډویر هم وخت په وخت بدلیږي. دا ټول باید یو څه په پام کې ونیول شي. دا ټول زموږ توزیع شوي غوښتنلیک اغیزه کوي.

معمولا هغه خلک چې د یو څه دلیل لپاره د ډیټا لوی مقدار سره کار پیل کوي پدې باور دي چې انټرنیټ بې حده دی. که چیرې هلته د څو ټیرابایټ فایل شتون ولري ، نو تاسو کولی شئ هغه خپل سرور یا کمپیوټر ته ورسوئ او په کارولو سره یې خلاص کړئ. پيشو او کتل. بله تېروتنه په کې ده Vim لوګو ته وګورئ. هیڅکله دا کار مه کوئ ځکه چې دا بد دی. ځکه چې ویم هڅه کوي هرڅه بفر کړي ، هرڅه په حافظه کې بار کړئ ، په ځانګړي توګه کله چې موږ د دې لاګ له لارې حرکت کوو او د یو څه په لټه کې یو. دا هغه شیان دي چې هیر شوي، مګر د پام وړ ارزښت لري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

دا د یو پروګرام لیکلو لپاره اسانه دی چې په یو کمپیوټر کې د یو پروسیسر سره چلیږي.

کله چې زموږ سیسټم وده کوي، موږ غواړو دا ټول موازي کړو، او دا نه یوازې په کمپیوټر کې، بلکې په کلستر کې هم موازي کړو. پوښتنه راپورته کیږي: دا موضوع څنګه همغږي کول؟ زموږ غوښتنلیکونه ممکن حتی د یو بل سره اړیکه ونلري، مګر موږ په څو سرورونو کې موازي ډیری پروسې پرمخ وړلې. او څنګه څارنه وکړو چې هرڅه د دوی لپاره ښه روان دي؟ د مثال په توګه، دوی د انټرنیټ له لارې یو څه لیږي. دوی باید د خپل حالت په اړه یو ځای ولیکي، د بیلګې په توګه، په یو ډول ډیټابیس یا لاګ کې، بیا دا لاګ راټول کړئ او بیا یې چیرته تحلیل کړئ. برسېره پردې، موږ باید دا په پام کې ونیسو چې پروسه کار کوي او کار کوي، ناڅاپه په هغې کې کومه تېروتنه ښکاره شوه یا خرابه شوه، نو موږ به څومره ژر د هغې په اړه پوه شو؟

دا څرګنده ده چې دا ټول په چټکۍ سره وڅیړل شي. دا هم ښه دی، مګر څارنه یو محدود شی دی چې تاسو ته اجازه درکوي په لوړه کچه ځینې شیان وڅیړئ.

کله چې موږ غواړو زموږ پروسې یو له بل سره تعامل پیل کړي، د بیلګې په توګه، یو بل ته ځینې معلومات لیږل، نو پوښتنه هم راپورته کیږي - دا به څنګه پیښ شي؟ ایا یو ډول نسل حالت به وي، ایا دوی به یو بل ته لیکي، ایا ډاټا به په سمه توګه راشي، ایا د لارې په اوږدو کې به څه له لاسه ورکړي؟ موږ اړتیا لرو یو ډول پروتوکول رامینځته کړو ، او داسې نور.

د دې ټولو پروسو همغږي کومه وړه خبره نه ده. او دا پراختیا کونکی مجبوروي چې حتی ټیټې کچې ته لاړ شي ، او سیسټمونه یا له سکریچ څخه لیکي ، یا نه په بشپړ ډول له سکریچ څخه ، مګر دا دومره ساده ندي.

که تاسو د کریپټوګرافیک الګوریتم سره راشئ یا حتی پلي یې کړئ ، نو سمدلاسه یې وغورځوئ ، ځکه چې ډیری احتمال دا به ستاسو لپاره کار ونکړي. دا به ډیری احتمال د غلطیو یوه ډله ولري چې تاسو یې چمتو کول هیر کړي. هیڅکله یې د کوم جدي لپاره مه کاروئ ځکه چې دا به ډیر احتمال بې ثباته وي. ځکه چې ټول الګوریتمونه چې شتون لري د ډیر وخت لپاره د وخت لخوا ازمول شوي. دا د ټولنې لخوا غصب شوی. دا یوه جلا موضوع ده. او دلته هم همداسې ده. که دا ممکنه نه وي چې د پروسې یو ډول ترکیب پخپله پلي کړئ ، نو دا به غوره وي چې دا کار ونه کړئ ، ځکه چې دا خورا پیچلی دی او تاسو ته په دوامداره توګه د تیروتنو لټون کولو ټکان ورکونکي لار درکوي.

نن ورځ موږ د ZooKeeper په اړه خبرې کوو. له یوې خوا ، دا یو چوکاټ دی ، له بلې خوا ، دا یو خدمت دی چې د پراختیا کونکي لپاره ژوند اسانه کوي او زموږ د پروسو منطق او همغږي پلي کول څومره چې امکان لري ساده کوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

راځئ چې په یاد ولرو چې یو معیاري ویشل شوی سیسټم ممکن څنګه ښکاري. دا هغه څه دي چې موږ یې په اړه خبرې وکړې - HDFS، HBase. دلته یو ماسټر پروسه ده چې د کارګرانو او غلام پروسې اداره کوي. هغه د دندو همغږي کولو او ویشلو، د کارمندانو بیا پیلولو، نوي پیل کولو، او د بار ویشلو مسولیت لري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

یو ډیر پرمختللی شی د همغږۍ خدمت دی، دا دی، د همغږۍ دنده پخپله جلا پروسې ته لیږدول، او په موازي ډول یو ډول بیک اپ یا سټینبي ماسټر چلول، ځکه چې ماسټر ممکن ناکام شي. او که ماسټر شي، نو زموږ سیسټم به کار ونه کړي. موږ بیک اپ پرمخ یو. ځینې ​​​​ایالتونه چې ماسټر اړتیا لري د بیک اپ لپاره نقل شي. دا د همغږۍ خدمت ته هم سپارل کیدی شي. مګر پدې ډیاګرام کې، ماسټر پخپله د کارمندانو د همغږۍ مسولیت لري؛ دلته خدمت د معلوماتو د نقل کولو فعالیتونه همغږي کوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

یو ډیر پرمختللی اختیار دی کله چې ټول همغږي زموږ د خدماتو لخوا اداره کیږي، لکه څنګه چې معمولا ترسره کیږي. هغه مسؤلیت په غاړه اخلي چې ډاډ ترلاسه کړي چې هرڅه کار کوي. او که یو څه کار ونکړي، موږ د هغې په اړه پوهیږو او هڅه کوو چې د دې وضعیت په شاوخوا کې ترلاسه کړو. په هر حالت کې، موږ د یو ماسټر سره پاتې کیږو چې په یو ډول د غلامانو سره اړیکه ونیسي او د ځینې خدماتو له لارې ډاټا، معلومات، پیغامونه او نور لیږلی شي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

حتی یو ډیر پرمختللی سکیم شتون لري، کله چې موږ ماسټر نه لرو، ټول نوډونه د ماسټر غلامان دي، د دوی چلند کې توپیر لري. مګر دوی لاهم اړتیا لري چې یو له بل سره اړیکه ونیسي، نو د دې کړنو همغږي کولو لپاره لاهم یو څه خدمت پاتې دی. شاید، Cassandra، چې په دې اصولو کار کوي، د دې سکیم سره سمون لري.

دا ستونزمنه ده چې ووایاست چې د دې سکیمونو څخه کوم یو ښه کار کوي. هر یو خپل ګټې او زیانونه لري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

او د ماسټر سره د ځینو شیانو څخه ویره ته اړتیا نشته، ځکه چې د تمرین ښکارندوی کوي، هغه په ​​دوامداره توګه خدمت کولو لپاره حساس نه دی. دلته اصلي شی دا دی چې په جلا ځواکمن نوډ کې د دې خدمت کوربه کولو لپاره سم حل غوره کړئ ، ترڅو دا کافي سرچینې ولري ، نو که امکان ولري ، کارونکي هلته لاسرسی نلري ، ترڅو دوی په ناڅاپي ډول دا پروسه ونه وژني. مګر په ورته وخت کې، په داسې یوه سکیم کې د ماسټر پروسې څخه د کارګرانو اداره کول خورا اسانه دي، یعنې دا سکیم د پلي کولو له نظره خورا ساده دی.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

او دا سکیم (پورته) شاید ډیر پیچلی وي، مګر ډیر باوري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

اصلي ستونزه جزوي ناکامي ده. د مثال په توګه، کله چې موږ په شبکه کې یو پیغام لیږو، یو ډول حادثه واقع کیږي، او هغه څوک چې پیغام لیږلی به نه پوهیږي چې ایا د هغه پیغام ترلاسه شوی او د رسیدونکي اړخ کې څه پیښ شوي، نه پوهیږي چې ایا پیغام په سمه توګه پروسس شوی که نه. ، د بیلګې په توګه هغه به هیڅ تایید ترلاسه نکړي.

په دې اساس، موږ باید دا وضعیت پروسس کړو. او ترټولو ساده شی دا دی چې دا پیغام بیا واستوئ او انتظار وکړئ تر هغه چې موږ ځواب ترلاسه کړو. په دې حالت کې، دا په پام کې نه نیول کیږي چې آیا د رسیدونکي حالت بدل شوی. موږ ممکن یو پیغام واستوو او ورته معلومات دوه ځله اضافه کړو.

زوکیپر د دې ډول انکارونو سره د معاملې لپاره لارې وړاندیز کوي ، کوم چې زموږ ژوند هم اسانه کوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

لکه څنګه چې یو څه مخکې یادونه وشوه، دا د څو څو اړخیزو پروګرامونو لیکلو ته ورته دی، مګر اصلي توپیر دا دی چې په ویشل شوي غوښتنلیکونو کې چې موږ په مختلفو ماشینونو کې جوړوو، د اړیکو یوازینۍ لاره شبکه ده. په اصل کې، دا یو ګډ جوړښت دی چې هیڅ شی نلري. هره پروسه یا خدمت چې په یوه ماشین کې پرمخ ځي خپله حافظه، خپل ډیسک، خپل پروسیسر لري، کوم چې دا د هیچا سره نه شریکوي.

که موږ په یو کمپیوټر کې څو څو اړخیز پروګرام لیکو، نو موږ کولی شو د ډیټا تبادلې لپاره شریکه حافظه وکاروو. موږ هلته د شرایطو سویچ لرو، پروسې کولی شي بدل شي. دا په فعالیت اغیزه کوي. له یوې خوا، د کلستر په برنامه کې داسې څه شتون نلري، مګر د شبکې سره ستونزې شتون لري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

په دې اساس، اصلي ستونزې چې د توزیع شوي سیسټمونو لیکلو په وخت کې رامینځته کیږي تشکیلات دي. موږ یو ډول غوښتنلیک لیکو. که دا ساده وي، نو موږ په کوډ کې هر ډول شمیرې هارډ کوډ کوو، مګر دا ناشونی دی، ځکه چې که موږ پریکړه وکړو چې د نیمې ثانیې د وخت پای ته رسیدو پرځای موږ د یوې ثانیې وخت پای ته اړتیا لرو، نو موږ اړتیا لرو چې اپلیکیشن بیا تنظیم کړو او هر څه بیا راوباسئ. دا یو شی دی کله چې دا په یو ماشین کې وي، کله چې تاسو کولی شئ دا بیا پیل کړئ، مګر کله چې موږ ډیری ماشینونه لرو، موږ باید په دوامداره توګه هرڅه کاپي کړو. موږ باید هڅه وکړو چې غوښتنلیک د تنظیم وړ جوړ کړو.

دلته موږ د سیسټم پروسو لپاره د جامد ترتیب په اړه خبرې کوو. دا په بشپړه توګه نه ده، شاید د عملیاتي سیسټم له نظره، دا ممکن زموږ د پروسو لپاره یو جامد ترتیب وي، د بیلګې په توګه دا یو ترتیب دی چې په ساده ډول نه اخیستل کیږي او نوي کیدی شي.

یو متحرک ترتیب هم شتون لري. دا هغه پیرامیټونه دي چې موږ غواړو په الوتنه کې بدل کړو ترڅو دوی هلته پورته شي.

دلته څه ستونزه ده؟ موږ تشکیلات تازه کړل، دا یې راوباسه، نو څه؟ ستونزه ممکن دا وي چې له یوې خوا موږ تشکیلات راوباسي ، مګر د نوي شی په اړه هیر شو ، تشکیل هلته پاتې شو. دوهم، په داسې حال کې چې موږ رول ولوبوو، ترتیب په ځینو ځایونو کې تازه شوی و، مګر په نورو کې نه. او زموږ د غوښتنلیک ځینې پروسې چې په یو ماشین کې پرمخ ځي د نوي ترتیب سره بیا پیل شوي، او چیرته د زاړه سره. دا زموږ د توزیع شوي غوښتنلیک پایله کولی شي د ترتیب له لید څخه متناسب وي. دا ستونزه عامه ده. د متحرک ترتیب لپاره، دا ډیر اړونده دی ځکه چې دا پدې معنی ده چې دا په الوتنه کې بدلیدلی شي.

بله ستونزه د ګروپ غړیتوب دی. موږ تل ځینې کارګران لرو، موږ تل غواړو پوه شو چې کوم یو ژوندی دی، کوم یو مړ دی. که چیرې یو ماسټر وي، نو هغه باید پوه شي چې کوم کارګران مراجعینو ته لیږل کیدی شي ترڅو دوی حسابونه پرمخ بوځي یا د معلوماتو سره کار وکړي، او کوم چې نشي کولی. یوه ستونزه چې په دوامداره توګه راپورته کیږي دا ده چې موږ باید پوه شو چې څوک زموږ په کلستر کې کار کوي.

بله عادي ستونزه د مشرانو ټاکنې دي، کله چې موږ غواړو پوه شو چې څوک په غاړه لري. یو مثال نقل دی، کله چې موږ ځینې پروسې لرو چې د لیکلو عملیات ترلاسه کوي او بیا یې د نورو پروسو په منځ کې تکراروي. هغه به مشر وي، ټول به د هغه اطاعت کوي، د هغه پیروي به کوي. دا اړینه ده چې داسې یوه پروسه غوره کړئ چې دا د هرچا لپاره ناڅرګنده وي، ترڅو دا معلومه نه شي چې دوه مشران وټاکل شي.

په متقابل ډول ځانګړي لاسرسی هم شتون لري. دلته ستونزه ډیره پیچلې ده. د میټیکس په څیر یو شی شتون لري، کله چې تاسو څو څو اړخیز پروګرامونه ولیکئ او ځینې سرچینې ته لاسرسی غواړئ، د بیلګې په توګه، د حافظې حجره، محدود وي او یوازې د یوې تار لخوا ترسره کیږي. دلته سرچینه ممکن یو څه نور خلاص وي. او زموږ د شبکې مختلف نوډونو څخه مختلف غوښتنلیکونه باید یوازې ورکړل شوي سرچینې ته ځانګړي لاسرسی ترلاسه کړي ، او نه دا چې هرڅوک کولی شي دا بدل کړي یا هلته یو څه ولیکي. دا تش په نامه تالاشۍ دي.

ZooKeeper تاسو ته اجازه درکوي دا ټولې ستونزې یوې درجې یا بل ته حل کړئ. او زه به د مثالونو سره وښیم چې دا تاسو ته دا څنګه کولو اجازه درکوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

هیڅ ډول مخنیوی نه شته. کله چې موږ د یو څه کارول پیل کړو، دا ابتدايي به د کومې پیښې پیښیدو انتظار ونه کړي. ډیری احتمال، دا شی به په غیر متناسب ډول کار وکړي، په دې توګه پروسې ته اجازه ورکوي چې ځړول نشي پداسې حال کې چې دوی د یو څه انتظار کوي. دا یو ډیر ګټور شی دی.

د پیرودونکي ټولې غوښتنې د عمومي کتار په ترتیب سره پروسس کیږي.

او پیرودونکي فرصت لري چې په ځینې حالت کې د بدلونونو په اړه خبرتیا ترلاسه کړي، په ډاټا کې د بدلونونو په اړه، مخکې له دې چې پیرودونکي پخپله بدل شوي ډاټا وګوري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

ZooKeeper کولی شي په دوه حالتونو کې کار وکړي. لومړی په یو نوډ کې یوازینی دی. دا د ازموینې لپاره مناسب دی. دا کولی شي په هر شمیر سرورونو کې په کلستر حالت کې هم کار وکړي. که موږ د 100 ماشینونو کلستر ولرو، نو دا اړینه نه ده چې په 100 ماشینونو کار وکړو. دا د څو ماشینونو غوره کولو لپاره کافي دي چیرې چې تاسو کولی شئ ZooKeeper چلولی شئ. او دا د لوړ شتون اصول بیانوي. په هر چلونکي مثال کې، ZooKeeper د معلوماتو ټوله کاپي ذخیره کوي. وروسته به زه تاسو ته ووایم چې هغه دا څنګه کوي. دا ډاټا نه جلا کوي او نه یې تقسیموي. له یوې خوا، دا یو منفي دی چې موږ نشو کولی ډیر ذخیره کړو، له بلې خوا، دا کار کولو ته اړتیا نشته. دا د هغه څه لپاره ندي چې دا ډیزاین شوی، دا ډیټابیس ندی.

ډاټا د پیرودونکي اړخ کې ساتل کیدی شي. دا یو معیاري اصول دی نو موږ په خدمت کې مداخله نه کوو او د ورته غوښتنو سره یې نه پورته کوو. یو هوښیار پیرودونکی معمولا پدې اړه پوهیږي او ذخیره کوي.

د مثال په توګه، دلته یو څه بدل شوی. یو ډول غوښتنلیک شتون لري. یو نوی مشر وټاکل شو، څوک چې مسؤلیت لري، د بیلګې په توګه، د لیکلو عملیاتو پروسس کولو لپاره. او موږ غواړو ډاټا نقل کړو. یو حل دا دی چې دا په لوپ کې واچوئ. او موږ په دوامداره توګه زموږ د خدماتو پوښتنه کوو - ایا کوم څه بدل شوي؟ دوهم انتخاب ډیر غوره دی. دا د لید میکانیزم دی چې تاسو ته اجازه درکوي پیرودونکو ته خبر ورکړئ چې یو څه بدل شوی. دا د سرچینو له پلوه لږ ګران میتود دی او د پیرودونکو لپاره خورا اسانه دی.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

پیرودونکی هغه کارن دی چې ZooKeeper کاروي.

سرور پخپله د ZooKeeper پروسه ده.

Znode په ZooKeeper کې کلیدي شی دی. ټول زنوډونه د ZooKeeper لخوا په حافظه کې زیرمه شوي او د ونې په شکل کې د حیراریک ډیاګرام په شکل تنظیم شوي.

دوه ډوله عملیات شتون لري. لومړی تازه کول / لیکل دي، کله چې ځینې عملیات زموږ د ونې حالت بدلوي. ونې عام دی.

او دا ممکنه ده چې پیرودونکي یوه غوښتنه بشپړه نکړي او منحل شي، مګر کولی شي یوه غونډه جوړه کړي چې له لارې یې د ZooKeeper سره اړیکه ونیسي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

د زوکیپر ډیټا ماډل د فایل سیسټم سره ورته دی. یو معیاري ریښه شتون لري او بیا موږ د لارښوونو له لارې لاړ چې له ریښې څخه ځي. او بیا د لومړۍ کچې کتلاګ ، دوهمه کچه. دا ټول زنوډونه دي.

هر زونډ کولی شي ځینې معلومات ذخیره کړي، معمولا ډیر لوی نه وي، د بیلګې په توګه، 10 کیلوبایټ. او هر znode کولای شي یو ټاکلی شمېر ماشومان ولري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

Znodes په څو ډولونو کې راځي. دوی کولی شي جوړ شي. او کله چې زنوډ رامینځته کړئ ، موږ هغه ډول مشخص کوو چې باید ورسره تړاو ولري.

دوه ډوله دي. لومړی د لنډ مهاله بیرغ دی. Znode په یوه ناسته کې ژوند کوي. د مثال په توګه، پیرودونکي یوه غونډه جوړه کړه. او تر څو چې دا غونډه ژوندۍ وي، دا به شتون ولري. دا اړینه ده چې یو څه غیر ضروري تولید نه کړي. دا د شیبو لپاره هم مناسب دی کله چې دا زموږ لپاره مهم وي چې په یوه ناسته کې د معلوماتو لومړني زیرمه کړو.

دوهم ډول د ترتیب بیرغ دی. دا زینوډ ته په لاره کې کاونټر زیاتوي. د مثال په توګه، موږ د غوښتنلیک 1_5 سره لارښود درلود. او کله چې موږ لومړی نوډ جوړ کړ، دا p_1 ترلاسه کړ، دوهم - p_2. او کله چې موږ هر ځل دې میتود ته زنګ ووهو ، موږ بشپړ لاره تیروو ، د لارې یوازې برخه په ګوته کوي ، او دا شمیره په اوتومات ډول وده کوي ځکه چې موږ د نوډ ډول - ترتیب په ګوته کوو.

منظم znode. هغه به تل ژوندی وي او هغه نوم به ولري چې موږ ورته وایو.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

بل ګټور شی د لید بیرغ دی. که موږ دا نصب کړو، نو پیرودونکي کولی شي د یو ځانګړي نوډ لپاره ځینې پیښو ته ګډون وکړي. زه به تاسو ته وروسته د مثال سره وښیم چې دا څنګه ترسره کیږي. ZooKeeper پخپله پیرودونکي ته خبر ورکوي چې په نوډ کې معلومات بدل شوي. په هرصورت، خبرتیاوې تضمین نه کوي چې ځینې نوي معلومات رارسیدلي دي. دوی په ساده ډول وايي چې یو څه بدل شوی ، نو تاسو لاهم باید وروسته د جلا تلیفونونو سره ډیټا پرتله کړئ.

او لکه څنګه چې ما مخکې وویل، د معلوماتو ترتیب د کیلوبایټ لخوا ټاکل کیږي. دلته د لوی متن ډیټا ذخیره کولو ته اړتیا نشته ، ځکه چې دا ډیټابیس ندی ، دا د عمل همغږۍ سرور دی.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

زه به تاسو ته د غونډو په اړه لږ څه ووایم. که موږ ډیری سرورونه ولرو، نو موږ کولی شو په شفاف ډول د سیشن پیژندونکي په کارولو سره له سرور څخه سرور ته حرکت وکړو. دا خورا اسانه ده.

هره ناسته یو ډول مهال ویش لري. یوه ناسته د دې لخوا تعریف شوې چې ایا پیرودونکي د دې ناستې په جریان کې سرور ته څه لیږي. که چیرې هغه د وخت په جریان کې هیڅ شی نه وي لیږدولی، ناسته بندیږي، یا پیرودونکي کولی شي پخپله وتړي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

دا دومره ځانګړتیاوې نلري، مګر تاسو کولی شئ د دې API سره مختلف شیان ترسره کړئ. هغه زنګ چې موږ لیدلی یو زنوډ رامینځته کوي او درې پیرامیټونه اخلي. دا د znode لاره ده، او دا باید په بشپړ ډول د ریښې څخه مشخص شي. او دا هم ځینې معلومات دي چې موږ غواړو هلته انتقال کړو. او د بیرغ ډول. او د جوړیدو وروسته دا زینوډ ته راستنیږي.

دوهم، تاسو کولی شئ دا حذف کړئ. دلته چال دا دی چې دوهم پیرامیټر، د زینوډ ته د لارې سربیره، نسخه مشخص کولی شي. په دې اساس، دا زینوډ به ړنګ شي که چیرې د هغې نسخه چې موږ یې لیږدول د هغه سره مساوي وي چې واقعیا شتون لري.

که موږ نه غواړو دا نسخه وګورو، نو موږ په ساده ډول د "-1" دلیل تیروو.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

دریم، دا د زینود شتون لپاره چک کوي. ریښتیا راګرځي که چیرې نوډ شتون ولري، که نه نو غلط.

او بیا د پرچم ساعت څرګندیږي ، کوم چې تاسو ته اجازه درکوي د دې نوډ څارنه وکړئ.

تاسو کولی شئ دا بیرغ حتی په غیر موجود نوډ کې تنظیم کړئ او یو خبرتیا ترلاسه کړئ کله چې څرګند شي. دا هم ګټور کیدی شي.

یو څو نورې ننګونې دي ترلاسه ډاټا. دا روښانه ده چې موږ کولی شو د znode له لارې معلومات ترلاسه کړو. تاسو کولی شئ د پرچم ساعت هم وکاروئ. په دې حالت کې، دا به نصب نشي که چیرې نوډ شتون نلري. له همدې امله، تاسو اړتیا لرئ پوه شئ چې دا شتون لري، او بیا ډاټا ترلاسه کړئ.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

هم شته SetData. دلته موږ نسخه پاس کوو. او که موږ دا تیر کړو، د یوې ټاکلې نسخې د زنوډ ډاټا به تازه شي.

تاسو کولی شئ د دې چک لرې کولو لپاره "-1" هم مشخص کړئ.

بله ګټوره طریقه ده ماشومان ترلاسه کړئ. موږ کولی شو د ټولو زونونو لیست هم ترلاسه کړو چې پدې پورې اړه لري. موږ کولی شو دا د بیرغ لید په ترتیب کولو سره وڅیړو.

او طریقه پرانیځئ ټول بدلونونه په یوځل کې لیږلو ته اجازه ورکوي، پدې توګه ډاډ ترلاسه کوي چې دوی خوندي شوي او ټول معلومات په بشپړ ډول بدل شوي.

که موږ د منظم پروګرام کولو سره مشابهت جوړ کړو، نو کله چې تاسو د لیکلو په څیر میتودونه کاروئ، کوم چې په ډیسک کې یو څه لیکي، او وروسته له دې چې تاسو ته ځواب درکړي، هیڅ تضمین شتون نلري چې تاسو ډیسک ته ډاټا لیکلي. او حتی کله چې عملیاتي سیسټم ډاډه وي چې هرڅه لیکل شوي ، پخپله ډیسک کې میکانیزمونه شتون لري چیرې چې پروسه د بفرونو پرتونو څخه تیریږي ، او یوازې له هغې وروسته ډاټا په ډیسک کې ځای په ځای کیږي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

ډیری وختونه غیر متناسب زنګونه کارول کیږي. دا پیرودونکي ته اجازه ورکوي چې د مختلف غوښتنو سره موازي کار وکړي. تاسو کولی شئ همغږي تګلاره وکاروئ، مګر دا لږ ګټور دی.

هغه دوه عملیات چې موږ یې په اړه خبرې وکړې تازه / لیکل دي، کوم چې ډاټا بدلوي. دا جوړ کړئ، ډاټا تنظیم کړئ، همغږي کړئ، حذف کړئ. او لوستل شتون لري، getData، getChildren.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

اوس یو څو مثالونه چې تاسو څنګه کولی شئ په ویشل شوي سیسټم کې د کار کولو لپاره لومړني توکي جوړ کړئ. د مثال په توګه، د یو څه ترتیب سره تړاو لري. یو نوی کارګر راڅرګند شو. موږ ماشین اضافه کړ او پروسه مو پیل کړه. او لاندې درې پوښتنې دي. دا څنګه د ترتیب لپاره ZooKeeper پوښتنه کوي؟ او که موږ غواړو ترتیب بدل کړو، نو څنګه یې بدل کړو؟ او وروسته له دې چې موږ یې بدل کړو، هغه کارګران چې موږ یې ترلاسه کړل څنګه؟

ZooKeeper دا نسبتا اسانه کوي. د مثال په توګه، زموږ د znode ونه ده. دلته زموږ د غوښتنلیک لپاره یو نوډ شتون لري، موږ په دې کې یو اضافي نوډ جوړوو، کوم چې د ترتیب څخه ډاټا لري. دا کیدای شي جلا پیرامیټونه وي یا نه وي. څرنګه چې اندازه کوچنۍ ده، د ترتیب اندازه معمولا هم کوچنۍ وي، نو دا خورا ممکنه ده چې دلته یې ذخیره کړئ.

تاسو طریقه کاروئ ترلاسه ډاټا د نوډ څخه د کارګر لپاره ترتیب ترلاسه کولو لپاره. ریښتیا ته تنظیم کړئ. که د کوم دلیل لپاره دا نوډ شتون ونلري، موږ به د هغې په اړه خبر شو کله چې دا ښکاره شي، یا کله چې بدلون ومومي. که موږ غواړو پوه شو چې یو څه بدل شوی، نو موږ یې ریښتیا ته ټاکو. او که په دې نوډ کې ډاټا بدل شي، موږ به د هغې په اړه پوه شو.

SetData. موږ ډاټا تنظیم کوو، "-1" تنظیم کوو، د بیلګې په توګه موږ نسخه نه ګورو، موږ فرض کوو چې موږ تل یو ترتیب لرو، موږ اړتیا نلرو چې ډیری ترتیبات ذخیره کړو. که تاسو ډیر ذخیره کولو ته اړتیا لرئ، نو تاسو به اړتیا ولرئ بله کچه اضافه کړئ. دلته موږ باور لرو چې یوازې یو شتون لري، نو موږ یوازې وروستی تازه کوو، نو موږ نسخه نه ګورو. پدې شیبه کې ، ټول پیرودونکي چې دمخه یې ګډون کړی یو خبرتیا ترلاسه کوي چې پدې نوډ کې یو څه بدل شوی. او وروسته له دې چې دوی یې ترلاسه کړي، دوی باید بیا د معلوماتو غوښتنه وکړي. خبرتیا دا ده چې دوی پخپله ډاټا نه ترلاسه کوي، مګر یوازې د بدلونونو خبرتیا. له دې وروسته دوی باید د نوي معلوماتو غوښتنه وکړي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

د لومړني کارولو لپاره دوهم اختیار دی د ډلې غړیتوب. موږ توزیع شوی غوښتنلیک لرو، د کارګرانو ډله شتون لري او موږ غواړو پوه شو چې دوی ټول په ځای دي. له همدې امله، دوی باید ځانونه راجستر کړي چې دوی زموږ په غوښتنلیک کې کار کوي. او موږ دا هم غواړو چې د ماسټر پروسې یا بل کوم ځای څخه د ټولو فعالو کارکونکو په اړه چې اوس مهال لرو معلوم کړو.

موږ دا څنګه کوو؟ د غوښتنلیک لپاره ، موږ د کارګر نوډ رامینځته کوو او د جوړونې میتود په کارولو سره هلته فرعي سطح اضافه کوو. زه په سلایډ کې یوه تېروتنه لرم. دلته تاسو اړتیا لرئ ترتیب مشخص کړئ، بیا به ټول کارګران یو له بل سره جوړ شي. او غوښتنلیک، د دې نوډ د ماشومانو په اړه د ټولو معلوماتو غوښتنه کوي، ټول فعال کارګران ترلاسه کوي چې شتون لري.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

دا دومره وحشتناک تطبیق دی چې دا څنګه په جاوا کوډ کې ترسره کیدی شي. راځئ چې له پای څخه پیل وکړو، د اصلي میتود سره. دا زموږ ټولګی دی، راځئ چې د هغې طریقه جوړه کړو. د لومړي دلیل په توګه موږ کوربه کاروو، چیرته چې موږ نښلوو، د بیلګې په توګه موږ دا د دلیل په توګه تنظیم کوو. او دوهم دلیل د ډلې نوم دی.

اړیکه څنګه پیښیږي؟ دا د API یو ساده مثال دی چې کارول کیږي. دلته هرڅه نسبتا ساده دي. یو معیاري ټولګي زوکیپر شتون لري. موږ دې ته کوربه توب ورکوو. او مهال ویش ترتیب کړئ، د بیلګې په توګه، 5 ثانیو ته. او موږ یو غړی لرو چې د connectedSignal په نوم یادیږي. په لازمي ډول ، موږ د لیږد شوي لارې په اوږدو کې یوه ډله رامینځته کوو. موږ هلته معلومات نه لیکو، که څه هم یو څه لیکل کیدی شي. او دلته نوډ د دوامدار ډول دی. په لازمي ډول، دا یو عادي منظم نوډ دی چې هر وخت به شتون ولري. دا هغه ځای دی چې غونډه جوړه شوې. دا پخپله د پیرودونکي پلي کول دي. زموږ پیرودونکی به دوره ای پیغامونه واستوي چې دا ښیي چې ناسته ژوندۍ ده. او کله چې موږ غونډه پای ته ورسوو، موږ نږدې غږ کوو او بس، غونډه پای ته رسیږي. دا په هغه صورت کې ده چې زموږ لپاره یو څه راښکته شي، نو ځکه چې زوکیپر د هغې په اړه پوهیږي او ناسته یې پرې کوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

د سرچینې بندولو څرنګوالی؟ دلته هرڅه یو څه ډیر پیچلي دي. موږ د کارګرانو سیټ لرو، یو څه سرچینې شتون لري چې موږ یې بندول غواړو. د دې کولو لپاره، موږ یو جلا نوډ جوړوو، د بیلګې په توګه، د lock1 په نوم یادیږي. که موږ دا پیدا کولی شو، نو موږ دلته یو قفل ترلاسه کړ. او که موږ دا نه شو پیدا کولی، نو کارګر هڅه کوي له دې ځایه ډیټا ترلاسه کړي، او دا چې نوډ لا دمخه جوړ شوی، نو موږ دلته یو څارونکی کېښودو او کله چې د دې نوډ حالت بدل شي، موږ به په دې پوه شو. او موږ کولی شو هڅه وکړو چې د هغې د بیا جوړولو لپاره وخت ولرو. که موږ دا نوډ واخلو ، دا قفل واخلو ، نو وروسته له دې چې موږ نور تالاشۍ ته اړتیا نلرو ، موږ به یې پریږدو ، ځکه چې نوډ یوازې په ناسته کې شتون لري. په دې اساس، دا به ورک شي. او بل پیرودونکی، د بلې ناستې په چوکاټ کې به وکولی شي په دې نوډ کې تالاشي واخلي، یا بلکه، هغه به یو خبرتیا ترلاسه کړي چې یو څه بدل شوی او هغه کولی شي په خپل وخت کې د ترسره کولو هڅه وکړي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

یو بل مثال چې تاسو څنګه کولی شئ اصلي مشر وټاکئ. دا یو څه ډیر پیچلی دی، مګر نسبتا ساده دی. دلته څه روان دي؟ یو اصلي نوډ شتون لري چې ټول کارګران راټولوي. موږ هڅه کوو چې د مشر په اړه معلومات ترلاسه کړو. که دا په بریالیتوب سره پیښ شي، د بیلګې په توګه موږ ځینې معلومات ترلاسه کړل، نو زموږ کارمند د دې مشر تعقیب پیل کوي. هغه باور لري چې لا دمخه یو مشر شتون لري.

که مشر د کوم دلیل له امله مړ شو، د بیلګې په توګه، راټیټ شو، نو موږ هڅه کوو چې یو نوی مشر جوړ کړو. او که موږ بریالي شو نو زموږ کارګر رهبر کیږي. او که په دې وخت کې یو څوک د نوي مشر د جوړولو توان ولري، نو موږ هڅه کوو پوه شو چې دا څوک دی او بیا یې تعقیب کړئ.

دلته د رمې اغیزې رامینځته کیږي، یعنی د رمې اغیز، ځکه چې کله یو مشر مړ شي، هغه څوک چې په وخت کې لومړی وي مشر شي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

کله چې سرچینې نیول، تاسو کولی شئ د یو څه مختلف طریقې کارولو هڅه وکړئ، کوم چې په لاندې ډول دي. د مثال په توګه، موږ غواړو یو تالا ترلاسه کړو، مګر د هیرټ اغیز پرته. دا به پدې حقیقت کې شامل وي چې زموږ غوښتنلیک د لاک سره د دمخه موجود نوډ لپاره د ټولو نوډ IDs لیست غوښتنه کوي. او که له دې څخه دمخه هغه نوډ چې موږ یې قفل جوړ کړی د هغه سیټ څخه ترټولو کوچنی دی چې موږ ترلاسه کړی ، نو دا پدې معنی ده چې موږ تالا نیولی دی. موږ ګورو چې موږ یو تالا ترلاسه کړی دی. د چک په توګه، دا به یو شرط وي چې هغه ID چې موږ د نوي قفل جوړولو په وخت کې ترلاسه کړ لږترلږه وي. او که موږ یې ترلاسه کړو، نو موږ نور کار کوو.

که چیرې یو مشخص ID شتون ولري چې زموږ د لاک څخه کوچنی وي ، نو موږ پدې پیښه کې لیدونکی واچوو او د خبرتیا انتظار باسو تر هغه چې یو څه بدلون ومومي. دا دی، موږ دا تالا ترلاسه کړ. او تر هغه چې دا راښکته نشي، موږ به لږترلږه ID نه شو او لږترلږه لاک به ترلاسه نکړو، او پدې توګه به موږ وکولای شو چې ننوتنه وکړو. او که دا شرط پوره نه شو، نو موږ سمدلاسه دلته ځو او هڅه کوو چې دا قفل بیرته ترلاسه کړو، ځکه چې پدې وخت کې ممکن یو څه بدل شوی وي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

ZooKeeper څه شی لري؟ 4 اصلي شیان شتون لري. دا د پروسس کولو پروسې دي - غوښتنه. او همدارنګه د زوکیپر اټومي نشر. د ژمنې لاګ شتون لري چیرې چې ټول عملیات ثبت شوي. او په حافظه کې نقل شوی DB پخپله ، د بیلګې په توګه پخپله ډیټابیس چیرې چې دا ټوله ونه زیرمه شوې.

د یادونې وړ ده چې د لیکلو ټول عملیات د غوښتنې پروسیسر له لارې پرمخ ځي. او د لوستلو عملیات په مستقیم ډول د حافظې ډیټابیس ته ځي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

ډیټابیس پخپله په بشپړ ډول نقل شوی دی. د ZooKeeper ټول مثالونه د معلوماتو بشپړ کاپي ذخیره کوي.

د حادثې وروسته د ډیټابیس بحالولو لپاره، د ژمنې لاګ شتون لري. معیاري تمرین دا دی چې مخکې له دې چې ډیټا حافظې ته راشي ، دا هلته لیکل کیږي ترڅو که چیرې خراب شي نو دا لاګ بیرته پلی کیدی شي او د سیسټم حالت بحال کیدی شي. او د ډیټابیس دورې عکسونه هم کارول کیږي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

ZooKeeper اتومیک براډکاسټ یو شی دی چې د نقل شوي معلوماتو ساتلو لپاره کارول کیږي.

ZAB په داخلي توګه د ZooKeeper نوډ له نظره یو مشر ټاکي. نور نوډونه د هغې پیروان کیږي او د هغې څخه د ځینو کړنو تمه لري. که دوی ننوتل ترلاسه کړي، دوی ټول مشر ته لیږي. هغه لومړی د لیکلو عملیات ترسره کوي او بیا د هغه پیروانو ته د څه بدلون په اړه پیغام لیږي. دا، په حقیقت کې، باید په اټومي ډول ترسره شي، د بیلګې په توګه د ټول شیانو ثبت کول او نشر کول باید په اټومي ډول ترسره شي، په دې توګه د معلوماتو ثبات تضمینوي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه" دا یوازې د لیکلو غوښتنې پروسس کوي. د دې اصلي دنده دا ده چې دا عملیات په لیږد کې تازه کړي. دا یوه ځانګړې غوښتنه ده.

او دلته دا د یادونې وړ ده چې د ورته عملیاتو لپاره د تازه معلوماتو ایډمیت تضمین شوی. دا څه شی دی؟ دا شی، که دوه ځله اعدام شي، ورته حالت به ولري، یعنې پخپله غوښتنه به بدله نه کړي. او دا باید ترسره شي ترڅو د حادثې په صورت کې، تاسو کولی شئ عملیات بیا پیل کړئ، په دې توګه هغه بدلونونه بیرته راګرځول چې دا مهال راوتلي دي. په دې حالت کې، د سیسټم حالت به یو شان شي، د بیلګې په توګه، دا باید داسې نه وي چې د ورته لړۍ لړۍ، د بیلګې په توګه، د تازه کولو پروسې، د سیسټم مختلف وروستي حالتونو ته لاره هواره کړي.

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

"هډوپ. ZooKeeper" د Mail.Ru ګروپ ټیکنوسټریم لړۍ څخه "په هډوپ کې د ډیټا لوی مقدارونو توزیع شوي پروسس کولو میتودونه"

سرچینه: www.habr.com

Add a comment