”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

مان توهان کي صلاح ڏيان ٿو ته توهان ليڪچر جو ٽرانسڪرپٽ پڙهو "Hadoop. ZooKeeper" سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ZooKeeper ڇا آهي، ان جي جاء Hadoop ماحولياتي نظام ۾ آهي. ورهايل ڪمپيوٽنگ بابت ڪوڙ. هڪ معياري ورهايل نظام جو خاڪو. ورهايل نظام کي همٿائڻ ۾ مشڪل. عام ڪوآرڊينيشن مسئلا. ZooKeeper جي ڊيزائن جي پويان اصول. ZooKeeper ڊيٽا ماڊل. znode پرچم. سيشن. ڪلائنٽ API. پرائمري (ترتيب، گروپ جي رڪنيت، سادو لاڪ، ليڊر چونڊ، بغير ڪنهن به قسم جي اثر کان بغير بند ڪرڻ). زو سنڀاليندڙ فن تعمير. زو سنڀاليندڙ ڊي بي. زيب. درخواست سنڀاليندڙ.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اڄ اسان ZooKeeper بابت ڳالهائينداسين. هي شيء تمام مفيد آهي. اهو، ڪنهن به Apache Hadoop پراڊڪٽ وانگر، هڪ لوگو آهي. اهو هڪ انسان کي ظاهر ڪري ٿو.

ان کان اڳ، اسان بنيادي طور تي ڳالهايو ته ڊيٽا ڪيئن پروسيس ٿي سگهي ٿي اتي، ان کي ڪيئن ذخيرو ڪجي، اهو آهي، ان کي ڪيئن استعمال ڪجي ۽ ڪنهن به طريقي سان ڪم ڪيو وڃي. ۽ اڄ مان ورهايل ايپليڪيشنن جي تعمير بابت ٿورو ڳالهائڻ چاهيندس. ۽ ZooKeeper انهن شين مان هڪ آهي جيڪا توهان کي هن معاملي کي آسان ڪرڻ جي اجازت ڏئي ٿي. هي هڪ قسم جي خدمت آهي جيڪا ورهايل ايپليڪيشنن ۾ ورهايل سسٽم ۾ عملن جي رابطي جي ڪجهه قسم جي همراهيءَ لاءِ آهي.

اهڙين ايپليڪيشنن جي ضرورت ڏينهون ڏينهن وڌندي پئي وڃي، اهو ئي اسان جو ڪورس آهي. هڪ طرف، MapReduce ۽ هي تيار ڪيل فريم ورڪ توهان کي اجازت ڏئي ٿو ته هن پيچيدگي کي سطح تي آڻين ۽ پروگرامر کي ابتدائي لکڻين کان آزاد ڪن، جهڙوڪ رابطي ۽ عملن جي ڪوآرڊينيشن. پر ٻئي طرف، ڪو به ضمانت نٿو ڏئي ته اهو ڪنهن به صورت ۾ نه ڪرڻو پوندو. MapReduce يا ٻيا تيار ٿيل فريم ورڪ هميشه مڪمل طور تي ڪجهه ڪيسن کي تبديل نه ڪندا آهن جيڪي هن کي استعمال ڪندي لاڳو نه ٿي سگهن. پاڻ MapReduce ۽ ٻين Apache منصوبن جو هڪ گروپ شامل آهن؛ اهي، حقيقت ۾، پڻ ورهايل ايپليڪيشنون آهن. ۽ لکڻ کي آسان ڪرڻ لاءِ، انهن لکيو ZooKeeper.

سڀني Hadoop سان لاڳاپيل ايپليڪيشنن وانگر، اهو Yahoo! اهو هاڻي پڻ هڪ سرڪاري Apache ايپليڪيشن آهي. اهو HBase وانگر فعال طور تي ترقي يافته نه آهي. جيڪڏهن توهان وڃون ٿا JIRA HBase، ته پوءِ هر روز بگ رپورٽن جو هڪ گروپ آهي، ڪجهه بهتر ڪرڻ لاءِ تجويزن جو هڪ گروپ، يعني منصوبي ۾ زندگي مسلسل هلي رهي آهي. ۽ ZooKeeper، هڪ طرف، هڪ نسبتا سادي پيداوار آهي، ۽ ٻئي طرف، اهو ان جي اعتبار کي يقيني بڻائي ٿو. ۽ اهو استعمال ڪرڻ بلڪل آسان آهي، ڇو ته اهو Hadoop ماحولياتي نظام جي ايپليڪيشنن ۾ هڪ معيار بڻجي چڪو آهي. تنهن ڪري مون سوچيو ته ان جو جائزو وٺڻ مفيد ٿيندو ته اهو سمجهڻ لاءِ ته اهو ڪيئن ڪم ڪري ٿو ۽ ان کي ڪيئن استعمال ڪجي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

هي تصوير اسان جي ڪجهه ليڪچر مان آهي. اسان اهو چئي سگهون ٿا ته اهو هر شيء لاء آرٿوگونل آهي جيڪو اسان هن وقت تائين سمجهيو آهي. ۽ هر شي جيڪا هتي اشارو ڪئي وئي آهي، هڪ درجي يا ٻئي تائين، ZooKeeper سان ڪم ڪري ٿي، يعني، اها هڪ خدمت آهي جيڪا انهن سڀني شين کي استعمال ڪري ٿي. نه ته HDFS ۽ نه ئي MapReduce پنهنجون ساڳيون خدمتون لکن ٿيون جيڪي خاص طور تي انهن لاءِ ڪم ڪن ٿيون. انهي جي مطابق، ZooKeeper استعمال ڪيو ويندو آهي. ۽ هي ترقي کي آسان بڻائي ٿو ۽ غلطين سان لاڳاپيل ڪجهه شيون.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

هي سڀ ڪٿان اچي ٿو؟ اهو لڳي ٿو ته اسان مختلف ڪمپيوٽرن تي متوازي طور تي ٻه ايپليڪيشنون شروع ڪيون آهن، انهن کي هڪ تار يا ميش سان ڳنڍيو، ۽ سڀ ڪجهه ڪم ڪري ٿو. پر مسئلو اهو آهي ته نيٽ ورڪ ناقابل اعتبار آهي، ۽ جيڪڏهن توهان ٽريفڪ کي ڇڪيو آهي يا گهٽ سطح تي اتي ڇا ٿي رهيو آهي، ڪئين ڪلائنٽ نيٽ ورڪ تي لهه وچڙ ۾ اچن ٿا، توهان اڪثر ڏسي سگهو ٿا ته ڪجهه پيڪيٽس گم ٿي ويا آهن يا ٻيهر موڪليا ويا آهن. اهو ڪجھ به نه آهي ته TCP پروٽوڪول ايجاد ڪيا ويا، جيڪي توهان کي هڪ خاص سيشن قائم ڪرڻ ۽ پيغام پهچائڻ جي ضمانت ڏيڻ جي اجازت ڏين ٿا. پر ڪنهن به صورت ۾، جيتوڻيڪ TCP هميشه توهان کي بچائي نٿو سگهي. هر شي جو هڪ وقت آهي. نيٽ ورڪ ٿوري دير لاءِ بند ٿي سگھي ٿو. اهو ٿي سگهي ٿو صرف چمڪيو. ۽ اهو سڀ ڪجهه حقيقت ڏانهن وٺي ٿو ته توهان نيٽ ورڪ تي ڀروسو نٿا ڪري سگهو قابل اعتماد هجڻ. متوازي ايپليڪيشنون لکڻ کان اهو بنيادي فرق آهي جيڪو هڪ ڪمپيوٽر يا هڪ سپر ڪمپيوٽر تي هلندو آهي، جتي نيٽ ورڪ ناهي، جتي ميموري ۾ وڌيڪ قابل اعتماد ڊيٽا ايڪسچينج بس آهي. ۽ هي هڪ بنيادي فرق آهي.

ٻين شين مان، جڏهن نيٽ ورڪ استعمال ڪندي، اتي هميشه هڪ خاص ويڪرائي آهي. ڊسڪ وٽ پڻ آهي، پر نيٽ ورڪ ان کان وڌيڪ آهي. Latency آهي ڪجهه دير جو وقت، جيڪو ٿي سگهي ٿو ننڍو يا ڪافي اهم.

نيٽ ورڪ ٽوپولوجي تبديل ٿي رهي آهي. ٽوپولوجي ڇا آهي - هي اسان جي نيٽ ورڪ جي سامان جي جڳهه آهي. اتي ڊيٽا سينٽر آهن، اتي ريڪ آهن جيڪي اتي بيٺا آهن، اتي موم بتيون آهن. اهو سڀ ڪجهه ٻيهر ڳنڍجي سگهي ٿو، منتقل ڪري سگهجي ٿو، وغيره. اهو سڀ ڪجهه پڻ حساب ۾ رکڻ جي ضرورت آهي. IP نالا تبديل ٿي وڃن ٿا، رستو جنهن جي ذريعي اسان جي ٽرئفڪ جو سفر تبديل ٿئي ٿو. اهو پڻ حساب ۾ وٺڻ جي ضرورت آهي.

نيٽ ورڪ پڻ سامان جي لحاظ کان تبديل ٿي سگھي ٿو. عملي طور تي، مان چئي سگهان ٿو ته اسان جا نيٽ ورڪ انجنيئر واقعي وقتي طور تي موم بتيون تي ڪجهه تازه ڪاري ڪرڻ چاهيندا آهن. اوچتو هڪ نئون فرم ویئر ٻاهر آيو ۽ اهي خاص طور تي ڪجهه هدوپ ڪلستر ۾ دلچسپي نه هئا. انهن جو پنهنجو ڪم آهي. انهن لاء، بنيادي شيء اهو آهي ته نيٽورڪ ڪم ڪري ٿو. ان جي مطابق، اهي اتي ڪجهه ٻيهر اپلوڊ ڪرڻ چاهيندا آهن، انهن جي هارڊويئر تي چمڪائڻ، ۽ هارڊويئر پڻ وقتي طور تي تبديل ٿيندا آهن. اهو سڀ ڪجهه ڪنهن به حساب ۾ وٺڻ جي ضرورت آهي. هي سڀ اسان جي ورهايل ايپليڪيشن کي متاثر ڪري ٿو.

عام طور تي جيڪي ماڻهو ڪم ڪرڻ شروع ڪن ٿا ڊيٽا جي وڏي مقدار سان ڪجهه سببن لاءِ يقين ڪن ٿا ته انٽرنيٽ لامحدود آهي. جيڪڏهن اتي ڪيترن ئي ٽيرا بائيٽ جي فائل آهي، ته توهان ان کي پنهنجي سرور يا ڪمپيوٽر تي وٺي سگهو ٿا ۽ ان کي کوليو ٻلي ۽ ڏسو. ٻي غلطي ۾ آهي Vim لاگن کي ڏسو. اهو ڪڏهن به نه ڪريو ڇو ته اهو خراب آهي. ڇاڪاڻ ته ويم هر شي کي بفر ڪرڻ جي ڪوشش ڪري ٿو، هر شيء کي ميموري ۾ لوڊ ڪريو، خاص طور تي جڏهن اسان هن لاگ ذريعي هلڻ شروع ڪيو ۽ ڪجهه ڳولڻ شروع ڪيو. اهي شيون آهن جيڪي وساري ويون آهن، پر غور ڪرڻ جي قابل آهن.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اهو هڪ پروگرام لکڻ آسان آهي جيڪو هڪ ڪمپيوٽر تي هڪ پروسيسر سان هلندو آهي.

جڏهن اسان جو نظام وڌندو آهي، اسان چاهيون ٿا ته ان سڀني کي متوازي ڪريو، ۽ ان کي نه رڳو ڪمپيوٽر تي، پر هڪ ڪلستر تي پڻ. سوال پيدا ٿئي ٿو: هن معاملي کي ڪيئن همٿائي؟ اسان جون ايپليڪيشنون شايد هڪ ٻئي سان لهه وچڙ ۾ نه هجن، پر اسان ڪيترن ئي سرورن تي متوازي طور تي ڪيترائي عمل ڪيا. ۽ مانيٽر ڪيئن ڪجي ته هر شيءِ انهن لاءِ ٺيڪ ٿي رهي آهي؟ مثال طور، اهي انٽرنيٽ تي ڪجهه موڪليندا آهن. انهن کي پنهنجي رياست جي باري ۾ ڪٿي نه ڪٿي لکڻ گهرجي، مثال طور، ڪنهن قسم جي ڊيٽابيس يا لاگ ۾، پوء هن لاگ کي گڏ ڪريو ۽ پوء ان جو تجزيو ڪيو. ان سان گڏ، اسان کي اهو خيال رکڻو پوندو ته اهو عمل ڪم ڪري رهيو هو ۽ ڪم ڪري رهيو هو، اوچتو ان ۾ ڪا غلطي ظاهر ٿي وئي يا اهو خراب ٿي ويو، پوء اسان کي ڪيئن جلدي معلوم ٿيندو؟

اهو واضح آهي ته اهو سڀ ڪجهه جلدي مانيٽر ڪري سگهجي ٿو. اهو پڻ سٺو آهي، پر مانيٽرنگ هڪ محدود شيء آهي جيڪا توهان کي اعلي سطح تي ڪجهه شين جي نگراني ڪرڻ جي اجازت ڏئي ٿي.

جڏهن اسان چاهيون ٿا ته اسان جا عمل هڪ ٻئي سان رابطو ڪرڻ شروع ڪن، مثال طور، هڪ ٻئي کي ڪجهه ڊيٽا موڪلڻ لاءِ، ته پوءِ سوال اهو به پيدا ٿئي ٿو ته اهو ڪيئن ٿيندو؟ ڇا اتي ڪنهن قسم جي نسل جي حالت هوندي، ڇا اهي هڪ ٻئي کي مٿان لکندا، ڇا ڊيٽا صحيح طور تي پهچي ويندا، ڇا رستي ۾ ڪجهه به گم ٿي ويندو؟ اسان کي ڪجهه قسم جي پروٽوڪول وغيره کي ترقي ڪرڻ جي ضرورت آهي.

انهن سڀني عملن جو ڪوآرڊينيشن ڪا معمولي ڳالهه ناهي. ۽ اهو ڊولپر کي مجبور ڪري ٿو ته هو اڃا به هيٺين سطح تي وڃي، ۽ سسٽم لکن يا ته شروع کان، يا بلڪل شروع کان نه، پر اهو ايترو سادو ناهي.

جيڪڏهن توهان هڪ cryptographic algorithm سان گڏ اچو يا ان تي عمل ڪريو، پوء ان کي فوري طور تي اڇلائي ڇڏيو، ڇاڪاڻ ته گهڻو ڪري اهو توهان لاء ڪم نه ڪندو. اهو گهڻو ڪري غلطين جو هڪ گروپ هوندو جنهن کي توهان مهيا ڪرڻ وساري ڇڏيو. ان کي ڪڏهن به ڪنهن به سنگين لاءِ استعمال نه ڪريو ڇو ته اهو گهڻو ڪري غير مستحڪم هوندو. ڇاڪاڻ ته موجود سڀئي الگورتھم جيڪي وقت جي طرفان تمام گهڻي وقت تائين آزمايا ويا آهن. اهو ڪميونٽي طرفان بگڙيل آهي. هي هڪ الڳ موضوع آهي. ۽ اهو ئي هتي آهي. جيڪڏهن اهو ممڪن ناهي ته ڪنهن قسم جي عمل کي هم وقت سازي جي عمل کي پاڻ تي لاڳو ڪرڻ، پوء اهو بهتر ناهي ته اهو نه ڪيو وڃي، ڇاڪاڻ ته اهو ڪافي پيچيده آهي ۽ توهان کي مسلسل غلطين جي ڳولا جي اڻڄاتل رستي ڏانهن وٺي ٿو.

اڄ اسان ZooKeeper جي باري ۾ ڳالهائي رهيا آهيون. هڪ طرف، اهو هڪ فريم ورڪ آهي، ٻئي طرف، اها هڪ خدمت آهي جيڪا ڊولپر لاء زندگي آسان بڻائي ٿي ۽ منطق جي عمل کي آسان بڻائي ٿي ۽ اسان جي عملن جي همراه کي ممڪن بڻائي ٿي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اچو ته ياد رکون ته هڪ معياري ورهايل سسٽم ڇا ٿي سگهي ٿو. اھو اھو آھي جيڪو اسان بابت ڳالهايو آھي - HDFS، HBase. اتي ھڪڙو ماسٽر عمل آھي جيڪو مزدورن ۽ غلامن جي عمل کي منظم ڪري ٿو. هو ڪمن کي ترتيب ڏيڻ ۽ ورهائڻ، ڪارڪنن کي ٻيهر شروع ڪرڻ، نوان شروع ڪرڻ، ۽ لوڊ ورهائڻ جو ذميوار آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

هڪ وڌيڪ ترقي يافته شيءِ آهي ڪوآرڊينيشن سروس، يعني ڪوآرڊينيشن ٽاسڪ کي پاڻ هڪ الڳ عمل ۾ منتقل ڪريو، ان سان گڏ ڪنهن قسم جي بيڪ اپ يا اسٽينبي ماسٽر کي متوازي طور تي هلايو، ڇاڪاڻ ته ماسٽر ناڪام ٿي سگهي ٿو. ۽ جيڪڏهن ماسٽر پوي ٿو ته پوء اسان جو نظام ڪم نه ڪندو. اسان بيڪ اپ هلائي رهيا آهيون. ڪجھ رياستون آھن ته ماسٽر کي بيڪ اپ ڪرڻ جي ضرورت آھي. اهو پڻ ڪوآرڊينيشن سروس جي حوالي ڪري سگهجي ٿو. پر هن ڊراگرام ۾، ماسٽر پاڻ ڪارڪنن کي همٿائڻ جو ذميوار آهي؛ هتي خدمت ڊيٽا جي نقل جي سرگرمين کي همٿائي رهي آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

هڪ وڌيڪ ترقي يافته اختيار اهو آهي جڏهن سڀ ڪوآرڊينيشن اسان جي خدمت ذريعي سنڀاليو ويندو آهي، جيئن عام طور تي ڪيو ويندو آهي. هو ذميواري کڻندو آهي انهي کي يقيني بڻائڻ جي هر شي ڪم ڪري ٿي. ۽ جيڪڏھن ڪجھ ڪم نٿو ڪري، اسان ان جي باري ۾ ڄاڻون ٿا ۽ ھن صورتحال جي چوڌاري حاصل ڪرڻ جي ڪوشش ڪريو. ڪنهن به صورت ۾، اسان وٽ هڪ ماسٽر آهي جيڪو ڪنهن به طرح سان غلامن سان رابطو ڪري ٿو ۽ ڪنهن به خدمت ذريعي ڊيٽا، معلومات، پيغام، وغيره موڪلي سگهي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اڃا به وڌيڪ ترقي يافته اسڪيم آهي، جڏهن اسان وٽ ماسٽر نه آهي، سڀئي نوڊس ماسٽر غلام آهن، انهن جي رويي ۾ مختلف آهن. پر انهن کي اڃا به هڪ ٻئي سان لهه وچڙ ڪرڻ جي ضرورت آهي، تنهنڪري انهن عملن کي همٿائڻ لاءِ اڃا ڪجهه خدمت باقي آهي. شايد، Cassandra، جيڪو هن اصول تي ڪم ڪري ٿو، هن منصوبي کي پورو ڪري ٿو.

اهو چوڻ ڏکيو آهي ته انهن منصوبن مان ڪهڙي بهتر ڪم ڪري ٿي. هر هڪ پنهنجي نفعو ۽ نقصان آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

۽ ماسٽر سان گڏ ڪجهه شين کان ڊڄڻ جي ڪا ضرورت ناهي، ڇاڪاڻ ته، مشق ڏيکاري ٿو، هو مسلسل خدمت ڪرڻ لاء ايترو حساس ناهي. هتي بنيادي شيء هڪ الڳ طاقتور نوڊ تي هن خدمت کي ميزباني ڪرڻ لاء صحيح حل چونڊڻ آهي، انهي ڪري ته ان وٽ ڪافي وسيلا آهن، انهي ڪري ته جيڪڏهن ممڪن هجي، صارفين کي اتي رسائي نه هجي، ته جيئن اهي هن عمل کي حادثاتي طور تي قتل نه ڪن. پر ساڳئي وقت، اهڙي اسڪيم ۾ ماسٽر پروسيس کان ڪم ڪندڙن کي منظم ڪرڻ تمام آسان آهي، يعني اهو اسڪيم عمل جي نقطي نظر کان وڌيڪ آسان آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

۽ هي منصوبو (مٿي) شايد وڌيڪ پيچيده، پر وڌيڪ قابل اعتماد آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

بنيادي مسئلو جزوي ناڪامي آهي. مثال طور، جڏهن اسان نيٽ ورڪ تي پيغام موڪليو ٿا، ڪجهه قسم جو حادثو ٿئي ٿو، ۽ جيڪو پيغام موڪليو آهي، اهو نه ڄاڻندو ته ڇا هن جو پيغام وصول ڪيو ويو آهي ۽ وصول ڪندڙ جي پاسي تي ڇا ٿيو، اهو نه ڄاڻندو ته پيغام صحيح طريقي سان عمل ڪيو ويو آهي يا نه. ، يعني هن کي ڪا به تصديق نه ملندي.

انهي جي مطابق، اسان کي هن صورتحال تي عمل ڪرڻ گهرجي. ۽ سڀ کان آسان شيءِ آهي ته هي پيغام ٻيهر موڪليو ۽ انتظار ڪريو جيستائين اسان کي جواب نه ملي. انهي حالت ۾، اهو نه ورتو ويو آهي ته ڇا وصول ڪندڙ جي حالت تبديل ٿي وئي آهي. اسان هڪ پيغام موڪلي سگهون ٿا ۽ ساڳئي ڊيٽا ٻه ڀيرا شامل ڪريو.

ZooKeeper پيش ڪري ٿو طريقن سان ڊيل ڪرڻ لاءِ اهڙن انڪارن کي، جيڪو پڻ اسان جي زندگين کي آسان بڻائي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

جيئن ٿورو اڳ ذڪر ڪيو ويو آهي، اهو ملٽي ٿريڊ پروگرام لکڻ جهڙو آهي، پر بنيادي فرق اهو آهي ته ورهايل ايپليڪيشنن ۾ جيڪي اسان مختلف مشينن تي ٺاهيندا آهيون، رابطي جو واحد طريقو نيٽ ورڪ آهي. لازمي طور تي، هي هڪ گڏيل-ڪجهه به فن تعمير آهي. هر پروسيس يا خدمت جيڪا هڪ مشين تي هلندي آهي، ان جي پنهنجي يادگيري، پنهنجي ڊسڪ، پنهنجو پنهنجو پروسيسر، جيڪو اهو ڪنهن سان به شيئر نٿو ڪري.

جيڪڏهن اسان هڪ ڪمپيوٽر تي ملٽي ٿريڊ پروگرام لکون ٿا، ته پوءِ اسان ڊيٽا مٽائڻ لاءِ شيئر ڪيل ميموري استعمال ڪري سگهون ٿا. اسان وٽ ھڪڙو حوالو سوئچ آھي، عمل تبديل ڪري سگھن ٿا. اهو ڪارڪردگي کي متاثر ڪري ٿو. هڪ پاسي، ڪلستر تي پروگرام ۾ اهڙي ڪا به شيء ناهي، پر نيٽ ورڪ سان مسئلا آهن.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ان جي مطابق، بنيادي مسئلا جيڪي پيدا ٿين ٿا جڏهن ورهايل سسٽم لکڻ جي ترتيب آهن. اسان ڪجهه قسم جي درخواست لکي رهيا آهيون. جيڪڏهن اهو سادو آهي، ته پوءِ اسان ڪوڊ ۾ هر قسم جا نمبر هارڊ ڪوڊ ڪريون ٿا، پر اهو مشڪل آهي، ڇاڪاڻ ته جيڪڏهن اسان اهو فيصلو ڪريون ٿا ته اڌ سيڪنڊ جي ٽائم آئوٽ بدران اسان هڪ سيڪنڊ جو ٽائم آئوٽ چاهيون ٿا، ته پوءِ اسان کي اپليڪيشن کي ٻيهر ڪمپيل ڪرڻو پوندو ۽ هر شي کي ٻيهر ڇڪيو. اها هڪ شيء آهي جڏهن اها هڪ مشين تي آهي، جڏهن توهان صرف ان کي ٻيهر شروع ڪري سگهو ٿا، پر جڏهن اسان وٽ ڪيتريون ئي مشينون آهن، اسان کي مسلسل هر شيء کي نقل ڪرڻو پوندو. اسان کي اپليڪيشن کي ترتيب ڏيڻ جي ڪوشش ڪرڻ گهرجي.

هتي اسان سسٽم جي عملن لاء جامد ترتيب جي باري ۾ ڳالهائي رهيا آهيون. اهو مڪمل طور تي نه آهي، شايد آپريٽنگ سسٽم جي نقطي نظر کان، اهو ٿي سگهي ٿو هڪ جامد تشڪيل اسان جي عملن لاء، اهو آهي، اهو هڪ ترتيب آهي جنهن کي آساني سان نه ورتو وڃي ۽ اپڊيٽ نه ٿي سگهي.

اتي پڻ هڪ متحرڪ ترتيب آهي. اهي اهي پيٽرول آهن جن کي اسان اڏام تي تبديل ڪرڻ چاهيون ٿا ته جيئن اهي اتي کڻي وڃن.

هتي ڪهڙو مسئلو آهي؟ اسان ترتيب کي اپڊيٽ ڪيو، ان کي ختم ڪيو، پوء ڇا؟ مسئلو اهو ٿي سگهي ٿو ته هڪ طرف اسان config رول آئوٽ ڪيو، پر نئين شيء جي باري ۾ وساريو، ترتيب اتي ئي رهي. ٻيو، جڏهن اسان رولنگ ڪري رهيا هئاسين، ترتيب ڪجهه هنڌن تي اپڊيٽ ڪئي وئي، پر ٻين ۾ نه. ۽ اسان جي ايپليڪيشن جا ڪجهه عمل جيڪي هڪ مشين تي هلن ٿا انهن کي نئين ترتيب سان ٻيهر شروع ڪيو ويو، ۽ ڪٿي پراڻي هڪ سان. اهو نتيجو ٿي سگهي ٿو اسان جي ورهايل ايپليڪيشن ترتيب جي نقطي نظر کان متضاد آهي. هي مسئلو عام آهي. هڪ متحرڪ تشڪيل لاءِ، اهو وڌيڪ لاڳاپيل آهي ڇو ته ان جو مطلب آهي ته ان کي اڏامندي تبديل ڪري سگهجي ٿو.

ٻيو مسئلو گروپ رڪنيت آهي. اسان وٽ هميشه ڪجهه ڪارڪنن جو سيٽ هوندو آهي، اسان هميشه اهو ڄاڻڻ چاهيون ٿا ته انهن مان ڪير جيئرو آهي، ڪير مري ويو آهي. جيڪڏهن ڪو ماسٽر آهي، ته پوءِ هن کي اهو سمجهڻ گهرجي ته ڪهڙن ڪمرن کي ڪلائنٽ ڏانهن موٽائي سگهجي ٿو ته جيئن اهي حساب ڪن يا ڊيٽا سان ڪم ڪن، ۽ ڪير نه ٿو ڪري سگهي. هڪ مسئلو جيڪو مسلسل پيدا ٿئي ٿو اهو آهي ته اسان کي ڄاڻڻ جي ضرورت آهي ته اسان جي ڪلستر ۾ ڪير ڪم ڪري رهيو آهي.

ٻيو عام مسئلو آهي ليڊر چونڊون، جڏهن اسان ڄاڻڻ چاهيون ٿا ته انچارج ڪير آهي. ھڪڙو مثال نقل آھي، جڏھن اسان وٽ ڪجھ عمل آھي جيڪو لکڻ جي عملن کي حاصل ڪري ٿو ۽ پوء انھن کي ٻين عملن جي وچ ۾ نقل ڪري ٿو. هو اڳواڻ هوندو، باقي سڀ سندس فرمانبرداري ڪندا، سندس پيروي ڪندا. اهو ضروري آهي ته هڪ عمل چونڊيو وڃي ته اهو هر ڪنهن لاء غير واضح آهي، انهي ڪري اهو نه نڪتو ته ٻه اڳواڻ چونڊيا ويا آهن.

اتي پڻ گڏيل طور تي خاص رسائي آهي. هتي مسئلو وڌيڪ پيچيده آهي. اتي هڪ ميوٽڪس وانگر هڪ شيء آهي، جڏهن توهان ڪيترن ئي موضوعن وارا پروگرام لکندا آهيو ۽ ڪجهه وسيلن تائين رسائي چاهيو ٿا، مثال طور، هڪ ميموري سيل، محدود ٿي وڃي ۽ صرف هڪ سلسلي ذريعي ڪيو وڃي. هتي وسيلن ڪجهه وڌيڪ خلاصو ٿي سگهي ٿو. ۽ اسان جي نيٽ ورڪ جي مختلف نوڊس کان مختلف ايپليڪيشنن کي صرف ڏنل وسيلن تائين خاص رسائي حاصل ڪرڻ گهرجي، ۽ نه ته هرڪو ان کي تبديل ڪري سگهي ٿو يا اتي ڪجهه لکي سگهي ٿو. اهي نام نهاد تالا آهن.

ZooKeeper توهان کي انهن سڀني مسئلن کي ڪنهن حد تائين حل ڪرڻ جي اجازت ڏئي ٿو. ۽ مان مثالن سان ڏيکاريندس ته اهو توهان کي ڪيئن ڪرڻ جي اجازت ڏئي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اتي ڪو به بلاڪ primitives نه آهن. جڏهن اسان ڪنهن شيءِ کي استعمال ڪرڻ شروع ڪريون ٿا ته اهو پريم ڪنهن به واقعي جي ٿيڻ جو انتظار نه ڪندو. گهڻو ڪري، هي شيء هڪ هم وقت سازي سان ڪم ڪندي، انهي سان گڏ عملن کي لٽڻ جي اجازت نه هوندي جڏهن اهي ڪجهه انتظار ڪري رهيا آهن. هي هڪ تمام مفيد شيء آهي.

سڀني ڪلائنٽ جي درخواستن تي عمل ڪيو ويندو آهي عام قطار جي ترتيب ۾.

۽ گراهڪن کي موقعو آهي ته ڪجهه رياست ۾ تبديلين جي باري ۾ نوٽيفڪيشن حاصل ڪرڻ، ڊيٽا ۾ تبديلين جي باري ۾، اڳ ۾ ئي ڪلائنٽ تبديل ٿيل ڊيٽا پاڻ کي ڏسي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ZooKeeper ٻن طريقن ۾ ڪم ڪري سگهي ٿو. پهريون اسٽينڊل آهي، هڪ نوڊ تي. هي امتحان لاء آسان آهي. اهو پڻ ڪلستر موڊ ۾ سرور جي ڪنهن به تعداد تي ڪم ڪري سگهي ٿو. جيڪڏهن اسان وٽ 100 مشينن جو ڪلسٽر آهي ته پوءِ ان لاءِ ضروري ناهي ته اهو 100 مشينن تي ڪم ڪري. اهو ڪافي آهي ڪيترن ئي مشينن کي چونڊڻ لاءِ جتي توهان ZooKeeper هلائي سگهو ٿا. ۽ اهو اعلي دستيابي جو اصول پيش ڪري ٿو. هر هلندڙ مثال تي، ZooKeeper ڊيٽا جي مڪمل ڪاپي محفوظ ڪري ٿو. بعد ۾ آئون توهان کي ٻڌايان ٿو ته هو اهو ڪيئن ڪندو آهي. اهو ڊيٽا کي ڇڪڻ يا ان کي ورهاڱي نٿو ڪري. هڪ طرف، اهو هڪ مائنس آهي ته اسان گهڻو ڪجهه ذخيرو نٿا ڪري سگهون، ٻئي طرف، اهو ڪرڻ جي ڪا ضرورت ناهي. اھو اھو نه آھي جنھن لاءِ ٺاھيو ويو آھي، اھو ھڪڙو ڊيٽابيس نه آھي.

ڊيٽا ڪلائنٽ جي پاسي تي محفوظ ڪري سگھجي ٿو. اهو هڪ معياري اصول آهي ته جيئن اسان خدمت ۾ مداخلت نه ڪريون ۽ ان کي ساڳئي درخواستن سان لوڊ نه ڪريون. هڪ سمارٽ ڪلائنٽ عام طور تي هن بابت ڄاڻي ٿو ۽ ان کي ڪيش ڪري ٿو.

مثال طور، هتي ڪجهه تبديل ٿي چڪو آهي. اتي ڪجهه قسم جي درخواست آهي. هڪ نئون اڳواڻ چونڊيو ويو، جيڪو ذميوار آهي، مثال طور، لکڻ جي عملن جي پروسيسنگ لاء. ۽ اسان ڊيٽا کي نقل ڪرڻ چاهيون ٿا. ھڪڙو حل اھو آھي ته ان کي لوپ ۾ وجھو. ۽ اسان مسلسل اسان جي خدمت کان پڇون ٿا - ڇا ڪجھ تبديل ٿيو؟ ٻيو اختيار وڌيڪ بهتر آهي. هي هڪ واچ ميڪانيزم آهي جيڪو توهان کي اجازت ڏئي ٿو ته گراهڪن کي مطلع ڪري ٿو ته ڪجهه تبديل ٿي چڪو آهي. اهو وسيلن جي لحاظ کان گهٽ قيمتي طريقو آهي ۽ گراهڪن لاءِ وڌيڪ آسان آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ڪلائنٽ صارف آھي جيڪو استعمال ڪري ٿو ZooKeeper.

سرور خود ZooKeeper عمل آهي.

Znode ZooKeeper ۾ اهم شيء آهي. سڀئي زنوڊز ZooKeeper پاران ميموري ۾ محفوظ ڪيا ويا آهن ۽ هڪ وڻ جي شڪل ۾ هڪ ترتيب وار ڊراگرام جي صورت ۾ ترتيب ڏنل آهن.

آپريشن جا ٻه قسم آهن. پهريون آهي تازه ڪاري/لکڻ، جڏهن ڪجهه آپريشن اسان جي وڻ جي حالت کي تبديل ڪري ٿو. وڻ عام آهي.

۽ اهو ممڪن آهي ته ڪلائنٽ هڪ درخواست مڪمل نه ڪري ۽ منقطع ٿي وڃي، پر هڪ سيشن قائم ڪري سگهي ٿو جنهن جي ذريعي اهو ZooKeeper سان رابطو ڪري ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ZooKeeper جي ڊيٽا ماڊل هڪ فائيل سسٽم وانگر آهي. اتي ھڪڙو معياري روٽ آھي ۽ پوءِ اسان ھلياسين ڄڻ ته ڊائريڪٽرن جي ذريعي جيڪي روٽ مان وڃون. ۽ پوء پهرين سطح جي فهرست، ٻئي سطح. هي سڀ znodes آهي.

هر زنوڊ ڪجهه ڊيٽا کي ذخيرو ڪري سگهي ٿو، عام طور تي تمام وڏو ناهي، مثال طور، 10 ڪلوبائٽس. ۽ هر znode ٻارن جو هڪ خاص تعداد ٿي سگهي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

Znodes ڪيترن ئي قسمن ۾ اچي ٿو. اهي ٺاهي سگهجن ٿا. ۽ جڏهن هڪ زنوڊ ٺاهيندي، اسان ان قسم جي وضاحت ڪندا آهيون جنهن سان تعلق رکڻ گهرجي.

ان جا ٻه قسم آهن. پهريون آهي ephemeral پرچم. Znode هڪ سيشن ۾ رهي ٿو. مثال طور، ڪلائنٽ هڪ سيشن قائم ڪيو آهي. ۽ جيستائين هي سيشن زنده آهي، اهو موجود رهندو. اهو ضروري آهي ته ڪجهه غير ضروري پيدا نه ڪرڻ لاء. اهو پڻ انهن لمحن لاءِ موزون آهي جڏهن اهو اسان لاءِ ضروري آهي ته هڪ سيشن جي اندر ڊيٽا جي پريميٽوز کي ذخيرو ڪرڻ لاءِ.

ٻيو قسم sequential flag آهي. اهو زنوڊ جي رستي تي انسداد کي وڌائي ٿو. مثال طور، اسان وٽ ايپليڪيشن 1_5 سان ڊاريڪٽري هئي. ۽ جڏھن اسان پھريون نوڊ ٺاھيو، اھو مليو p_1، ٻيو - p_2. ۽ جڏهن اسان هن طريقي کي هر دفعي سڏين ٿا، اسان مڪمل رستو پاس ڪريون ٿا، رستي جي صرف هڪ حصي کي اشارو ڪندي، ۽ اهو نمبر خودڪار طور تي وڌايو ويندو آهي ڇو ته اسان نوڊ جي قسم کي ترتيب ڏيو ٿا.

باقاعده زنوڊ. هوءَ هميشه جيئري رهندي ۽ اهو نالو آهي جيڪو اسان هن کي ٻڌايو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

هڪ ٻي مفيد شيءِ آهي واچ پرچم. جيڪڏهن اسان ان کي انسٽال ڪريون ٿا، ته پوءِ ڪلائنٽ هڪ مخصوص نوڊ لاءِ ڪجهه واقعن جي رڪنيت حاصل ڪري سگهي ٿو. مان توهان کي بعد ۾ ڏيکاريندس هڪ مثال سان اهو ڪيئن ڪجي. ZooKeeper پاڻ ڪلائنٽ کي مطلع ڪري ٿو ته نوڊ تي ڊيٽا تبديل ٿي وئي آهي. بهرحال، اطلاعن جي ضمانت نه آهي ته ڪجهه نئون ڊيٽا اچي چڪو آهي. اهي صرف چون ٿا ته ڪجهه تبديل ٿي چڪو آهي، تنهنڪري توهان اڃا تائين ڊيٽا کي الڳ الڳ ڪالن سان گڏ ڪرڻو پوندو.

۽ جيئن ته مون اڳ ۾ ئي چيو آهي، ڊيٽا جي ترتيب kilobytes طرفان طئي ڪيو ويندو آهي. اتي وڏي ٽيڪسٽ ڊيٽا کي ذخيرو ڪرڻ جي ڪا ضرورت ناهي، ڇاڪاڻ ته اهو هڪ ڊيٽابيس نه آهي، اهو هڪ عمل ڪوآرڊينيشن سرور آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

مان توهان کي سيشن بابت ٿورڙو ٻڌايان ٿو. جيڪڏهن اسان وٽ ڪيترائي سرور آهن، ته پوء اسين شفاف طور تي سيشن سڃاڻپ ڪندڙ استعمال ڪندي سرور کان سرور ڏانهن منتقل ڪري سگهون ٿا. اهو ڪافي آسان آهي.

هر سيشن جو ڪجهه قسم جو وقت آهي. هڪ سيشن جي وضاحت ڪئي وئي آهي ته ڇا ڪلائنٽ انهي سيشن دوران سرور ڏانهن ڪجهه موڪلي ٿو. جيڪڏهن هن وقت ختم ٿيڻ دوران ڪجهه به منتقل نه ڪيو، سيشن بند ٿي ويندو، يا ڪلائنٽ پاڻ کي بند ڪري سگهي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ان ۾ ڪيتريون ئي خاصيتون نه آهن، پر توهان هن API سان مختلف شيون ڪري سگهو ٿا. اھو ڪال اسان ڏٺو آھي ٺاھيو ھڪڙو زنوڊ ٺاھي ٿو ۽ ٽي پيرا ميٽر وٺي ٿو. هي زنوڊ ڏانهن رستو آهي، ۽ اهو روٽ کان مڪمل طور تي بيان ڪيو وڃي. ۽ اهو پڻ ڪجهه ڊيٽا آهي جنهن کي اسان اتي منتقل ڪرڻ چاهيون ٿا. ۽ پرچم جو قسم. ۽ ٺاھڻ کان پوءِ اھو رستو زنوڊ ڏانھن موٽائي ٿو.

ٻيو، توهان ان کي ختم ڪري سگهو ٿا. هتي چال اها آهي ته ٻيو پيٽرولر، زنوڊ جي رستي کان علاوه، نسخو بيان ڪري سگهي ٿو. ان جي مطابق، اهو زنوڊ ختم ڪيو ويندو جيڪڏهن ان جو نسخو جيڪو اسان منتقل ڪيو آهي ان جي برابر آهي جيڪو اصل ۾ موجود آهي.

جيڪڏهن اسان هن نسخي کي جانچڻ نٿا چاهيون، ته اسان صرف "-1" دليل کي پاس ڪريون ٿا.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ٽيون، اهو هڪ زنوڊ جي وجود جي جانچ ڪري ٿو. واپسي صحيح آھي جيڪڏھن نوڊ موجود آھي، ٻي صورت ۾ غلط.

۽ پوء پرچم واچ ظاهر ٿئي ٿو، جيڪو توهان کي هن نوڊ جي نگراني ڪرڻ جي اجازت ڏئي ٿو.

توھان ھي جھنڊو غير موجود نوڊ تي پڻ سيٽ ڪري سگھو ٿا ۽ اطلاع حاصل ڪري سگھو ٿا جڏھن اھو ظاھر ٿئي. اهو پڻ مفيد ٿي سگهي ٿو.

ڪجھ وڌيڪ چئلينج آھن حاصل ڊيٽا. اهو واضح آهي ته اسان znode ذريعي ڊيٽا حاصل ڪري سگهون ٿا. توھان پڻ استعمال ڪري سگھو ٿا پرچم واچ. انهي صورت ۾، اهو انسٽال نه ٿيندو جيڪڏهن ڪو نوڊ ناهي. تنهن ڪري، توهان کي سمجهڻ جي ضرورت آهي ته اهو موجود آهي، ۽ پوء ڊيٽا حاصل ڪريو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اتي پڻ آهي ڊيٽا سيٽ ڪريو. هتي اسان نسخو پاس ڪريون ٿا. ۽ جيڪڏھن اسان ھن کي پاس ڪيو، ھڪڙي خاص ورزن جي زنوڊ تي ڊيٽا کي اپڊيٽ ڪيو ويندو.

توھان پڻ وضاحت ڪري سگھو ٿا "-1" ھن چيڪ کي خارج ڪرڻ لاءِ.

ٻيو مفيد طريقو آهي ٻار حاصل ڪريو. اسان پڻ حاصل ڪري سگھون ٿا سڀني زنوڊس جي فهرست جيڪي ان سان تعلق رکن ٿيون. اسان هن جي نگراني ڪري سگھون ٿا پرچم واچ ترتيب ڏيڻ سان.

۽ طريقو هم وقت سڀني تبديلين کي هڪ ڀيرو موڪلڻ جي اجازت ڏئي ٿي، انهي کي يقيني بڻائي ٿو ته اهي محفوظ آهن ۽ سڀني ڊيٽا کي مڪمل طور تي تبديل ڪيو ويو آهي.

جيڪڏهن اسان باقاعده پروگرامنگ سان تشبيهون ڪڍون ٿا، ته پوءِ جڏهن توهان اهڙا طريقا استعمال ڪندا آهيو جهڙوڪ لکندا، جيڪي ڊسڪ تي ڪجهه لکندا آهن، ۽ ان کان پوءِ توهان کي جواب ڏيندو آهي، ته ان ڳالهه جي ڪا به ضمانت نه هوندي آهي ته توهان ڊسڪ ۾ ڊيٽا لکيو آهي. ۽ جيتوڻيڪ جڏهن آپريٽنگ سسٽم کي يقين آهي ته سڀ ڪجهه لکيو ويو آهي، اتي ڊسڪ ۾ ميکانيزم موجود آهن جتي پروسيس بفر جي تہن ذريعي ٿيندي آهي، ۽ صرف ان کان پوء ڊيٽا ڊسڪ تي رکيل آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

گهڻو ڪري غير هم وقتي ڪالون استعمال ٿينديون آهن. هي ڪلائنٽ کي مختلف درخواستن سان متوازي ڪم ڪرڻ جي اجازت ڏئي ٿو. توهان هم وقت سازي واري طريقي کي استعمال ڪري سگهو ٿا، پر اهو گهٽ پيداوار آهي.

ٻن عملن بابت اسان ڳالهايون ٿا تازه ڪاري/لکڻ، جيڪي ڊيٽا کي تبديل ڪن ٿا. اهي آهن ٺاهي، سيٽ ڊيٽا، هم وقت سازي، حذف ڪريو. ۽ پڙهڻ موجود آهي، getData، getChildren.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ھاڻي ڪجھ مثالن جو توھان ڪيئن ڪري سگھوٿا ورهايل نظام ۾ ڪم ڪرڻ لاءِ پرائمٽيو. مثال طور، ڪنهن شيءِ جي ترتيب سان لاڳاپيل. هڪ نئون ڪم ڪندڙ ظاهر ٿيو آهي. اسان مشين کي شامل ڪيو ۽ عمل شروع ڪيو. ۽ هيٺيان ٽي سوال آهن. اهو ڪيئن پڇي ٿو ZooKeeper ترتيب ڏيڻ لاءِ؟ ۽ جيڪڏهن اسان ترتيب تبديل ڪرڻ چاهيون ٿا، اسان ان کي ڪيئن تبديل ڪريون ٿا؟ ۽ اسان ان کي تبديل ڪرڻ کان پوء، انهن ڪارڪنن کي ڪيئن حاصل ڪيو جيڪو اسان حاصل ڪيو هو؟

ZooKeeper هن کي نسبتا آسان بڻائي ٿو. مثال طور، اتي اسان جي znode وڻ آهي. هتي اسان جي ايپليڪيشن لاء هڪ نوڊ آهي، اسان ان ۾ هڪ اضافي نوڊ ٺاهيندا آهيون، جنهن ۾ ترتيب جي ڊيٽا شامل آهي. اهي ٿي سگهن ٿا يا نه هجن الڳ الڳ پيٽرول. جيئن ته سائيز ننڍو آهي، ترتيب جي سائيز عام طور تي تمام ننڍو آهي، تنهنڪري اهو هتي ذخيرو ڪرڻ ممڪن آهي.

توهان جو طريقو استعمال ڪري رهيا آهيو حاصل ڊيٽا نوڊ مان ورڪر جي ٺاھ جوڙ حاصل ڪرڻ لاء. سچ تي مقرر ڪريو. جيڪڏهن ڪنهن سبب جي ڪري هي نوڊ موجود ناهي، اسان کي ان جي باري ۾ ڄاڻ ڏني ويندي جڏهن اهو ظاهر ٿيندو، يا جڏهن اهو تبديل ٿيندو. جيڪڏهن اسان اهو ڄاڻڻ چاهيون ٿا ته ڪا شيء تبديل ٿي وئي آهي، پوء اسان ان کي درست ڪيو. ۽ جيڪڏھن ھن نوڊ ۾ ڊيٽا تبديل ٿئي ٿي، اسان ان بابت ڄاڻون ٿا.

ڊيٽا سيٽ ڪريو. اسان ڊيٽا کي سيٽ ڪيو، "-1" سيٽ ڪيو، يعني اسان نسخي کي چيڪ نه ڪندا آهيون، اسان فرض ڪريون ٿا ته اسان وٽ هميشه هڪ ترتيب آهي، اسان کي ڪيترن ئي ترتيبن کي ذخيرو ڪرڻ جي ضرورت ناهي. جيڪڏهن توهان کي تمام گهڻو ذخيرو ڪرڻو پوندو، توهان کي ٻي سطح شامل ڪرڻ جي ضرورت پوندي. هتي اسان يقين رکون ٿا ته اتي صرف هڪ آهي، تنهنڪري اسان صرف تازو تازه ڪاري ڪريون ٿا، تنهنڪري اسان نسخي جي جانچ نه ڪندا آهيون. هن وقت، سڀئي گراهڪ جيڪي اڳ ۾ رڪنيت حاصل ڪيا آهن هڪ نوٽيفڪيشن ملي ٿي ته هن نوڊ ۾ ڪجهه تبديل ٿي چڪو آهي. ۽ انهن کي حاصل ڪرڻ کان پوء، انهن کي ٻيهر ڊيٽا جي درخواست ڪرڻ گهرجي. نوٽيفڪيشن اهو آهي ته اهي ڊيٽا پاڻ وصول نه ڪندا آهن، پر صرف تبديلين جي اطلاع. ان کان پوء انهن کي نئين ڊيٽا لاء پڇڻ گهرجي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

پرائمري استعمال ڪرڻ لاء ٻيو اختيار آهي گروپ جي رڪنيت. اسان وٽ ورهايل ايپليڪيشن آهي، اتي ڪارڪنن جو هڪ گروپ آهي ۽ اسان اهو سمجهڻ چاهيون ٿا ته اهي سڀئي جڳهه تي آهن. تنهن ڪري، انهن کي پنهنجو پاڻ کي رجسٽر ڪرڻ گهرجي ته اهي اسان جي درخواست ۾ ڪم ڪن. ۽ اسان پڻ معلوم ڪرڻ چاهيون ٿا، يا ته ماسٽر پروسيس کان يا ڪنهن ٻئي هنڌ، انهن سڀني سرگرم ڪارڪنن بابت جيڪي اسان وٽ هن وقت آهن.

اسان اهو ڪيئن ٿا ڪريون؟ ايپليڪيشن لاءِ، اسان ٺاھيون ٿا ورڪرز نوڊ ۽ ھڪڙو ذيلي سطح شامل ڪريو اتي ٺاھيو طريقو استعمال ڪندي. مون کي سلائڊ تي هڪ غلطي آهي. هتي توهان کي ضرورت آهي ترتيب وار وضاحت ڪريو، پوء سڀني ڪارڪنن کي ھڪڙي ٺاھيو ويندو. ۽ ايپليڪيشن، هن نوڊ جي ٻارن بابت سڀني ڊيٽا جي درخواست ڪندي، موجود سڀني فعال ڪارڪنن کي وصول ڪري ٿي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

اهو هڪ خوفناڪ عمل آهي ته اهو ڪيئن ٿي سگهي ٿو جاوا ڪوڊ ۾. اچو ته آخر کان شروع ڪريون، بنيادي طريقي سان. هي اسان جو طبقو آهي، اچو ته ان جو طريقو ٺاهيون. پهرين دليل جي طور تي اسان ميزبان استعمال ڪندا آهيون، جتي اسان ڳنڍي رهيا آهيون، يعني اسان ان کي هڪ دليل طور مقرر ڪيو. ۽ ٻيو دليل گروپ جو نالو آهي.

ڪنيڪشن ڪيئن ٿو ٿئي؟ هي API جو هڪ سادو مثال آهي جيڪو استعمال ڪيو ويندو آهي. هتي هر شي نسبتا سادو آهي. اتي ھڪڙو معياري طبقو زو ڪيپر آھي. اسان ان کي لشڪر پاس ڪندا آهيون. ۽ ٽائيم ختم ڪريو، مثال طور، 5 سيڪنڊن تائين. ۽ اسان وٽ ھڪڙو ميمبر آھي جيڪو سڏيو ويندو آھي connectedSignal. لازمي طور تي، اسان منتقل ٿيل رستي سان گڏ ھڪڙو گروپ ٺاھيو. اسان اتي ڊيٽا نه لکندا آهيون، جيتوڻيڪ ڪجهه لکيو وڃي ها. ۽ هتي جو نوڊ مستقل قسم جو آهي. لازمي طور تي، هي هڪ عام باقاعده نوڊ آهي جيڪو هر وقت موجود هوندو. هي اهو آهي جتي سيشن ٺاهي وئي آهي. اهو ڪلائنٽ پاڻ تي عمل درآمد آهي. اسان جو ڪلائنٽ وقتي پيغام موڪليندو جيڪو ظاهر ڪري ٿو ته سيشن زنده آهي. ۽ جڏهن اسان سيشن ختم ڪريون ٿا، اسان کي بند ڪريون ٿا ۽ اهو ئي آهي، سيشن بند ٿي وڃي ٿو. اهو ان صورت ۾ آهي جڏهن اسان لاءِ ڪا شيءِ بند ٿي وڃي ته جيئن ZooKeeper ان بابت معلوم ڪري ۽ سيشن کي ختم ڪري.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

وسيلن کي ڪيئن بند ڪجي؟ هتي هر شيء ٿورو وڌيڪ پيچيده آهي. اسان وٽ ڪارڪنن جو هڪ سيٽ آهي، اتي ڪجهه وسيلو آهي جنهن کي اسين بند ڪرڻ چاهيون ٿا. هن کي ڪرڻ لاء، اسان هڪ الڳ نوڊ ٺاهيندا آهيون، مثال طور، lock1 سڏيو ويندو آهي. جيڪڏهن اسان ان کي ٺاهڻ جي قابل هئاسين، پوء اسان کي هتي هڪ تالا ملي ويو. ۽ جيڪڏهن اسان ان کي ٺاهي نه سگهياسين ته پوءِ ڪم ڪندڙ ڪوشش ڪندو آهي ته اتان ڊيٽا حاصل ڪري ۽ جيئن ته نوڊ اڳي ئي ٺهي چڪو آهي، ان ڪري اسان هتي هڪ واچر رکون ٿا ۽ جنهن وقت هن نوڊ جي حالت تبديل ٿيندي، اسان کي ان جي خبر پوندي. ۽ اسان ان کي ٻيهر ٺاهڻ لاء وقت حاصل ڪرڻ جي ڪوشش ڪري سگهون ٿا. جيڪڏهن اسان هي نوڊ ورتو، هي تالا ورتو، ته پوء اسان کي وڌيڪ تالا جي ضرورت نه هوندي، اسان ان کي ڇڏي ڏينداسين، ڇاڪاڻ ته نوڊ صرف سيشن ۾ موجود آهي. ان جي مطابق، اهو غائب ٿي ويندو. ۽ ٻيو ڪلائنٽ، ڪنهن ٻئي سيشن جي فريم ورڪ ۾، هن نوڊ تي تالا کڻڻ جي قابل هوندو، يا بلڪه، هن کي هڪ نوٽيفڪيشن ملندي ته ڪجهه تبديل ٿي چڪو آهي ۽ هو ان کي وقت ۾ ڪرڻ جي ڪوشش ڪري سگهي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

هڪ ٻيو مثال توهان ڪيئن ڪري سگهو ٿا مکيه اڳواڻ چونڊيو. اهو ٿورو وڌيڪ پيچيده آهي، پر نسبتا سادو پڻ. هتي ڇا ٿي رهيو آهي؟ اتي ھڪڙو مکيه نوڊ آھي جيڪو سڀني ڪارڪنن کي گڏ ڪري ٿو. اسان ليڊر بابت ڊيٽا حاصل ڪرڻ جي ڪوشش ڪري رهيا آهيون. جيڪڏهن اهو ڪاميابي سان ٿيو، يعني اسان کي ڪجهه ڊيٽا ملي ٿي، ته پوءِ اسان جو ورڪر هن ليڊر جي پيروي ڪرڻ شروع ڪري ٿو. هن کي يقين آهي ته اڳ ۾ ئي هڪ اڳواڻ آهي.

جيڪڏهن اڳواڻ ڪجهه سببن لاء مري ويو، مثال طور، گر ٿي ويو، پوء اسان هڪ نئين اڳواڻ ٺاهڻ جي ڪوشش ڪندا آهيون. ۽ جيڪڏهن اسان ڪامياب ٿي وڃون ٿا ته پوءِ اسان جو ڪارڪن اڳواڻ بڻجي ويندو. ۽ جيڪڏھن ڪو ماڻھو ھن وقت ھڪڙو نئون ليڊر ٺاھيو، پوء اسان کي سمجھڻ جي ڪوشش ڪريو اھو ڪير آھي ۽ پوء ان جي پيروي ڪريو.

هتي نام نهاد رڍ جو اثر پيدا ٿئي ٿو، يعني رڍ جو اثر، ڇاڪاڻ ته جڏهن هڪ اڳواڻ مري ويندو آهي، جيڪو وقت ۾ پهريون هوندو آهي اهو اڳواڻ بڻجي ويندو آهي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

جڏهن هڪ وسيلن تي قبضو ڪندي، توهان ڪوشش ڪري سگهو ٿا ٿورو مختلف طريقو استعمال ڪرڻ جي، جيڪو هيٺ ڏنل آهي. مثال طور، اسان هڪ تالا حاصل ڪرڻ چاهيون ٿا، پر هيرٽ اثر کان سواء. اهو انهي حقيقت تي مشتمل هوندو ته اسان جي ايپليڪيشن سڀني نوڊ آئي ڊي جي فهرستن جي درخواست ڪري ٿي جيڪا اڳ ۾ ئي موجود نوڊ لاءِ تالا سان. ۽ جيڪڏھن ان کان اڳ جو نوڊ جنھن لاءِ اسان تالا ٺاھيو آھي اھو سڀ کان ننڍڙو آھي جيڪو اسان حاصل ڪيو آھي، ته پوءِ ان جو مطلب آھي ته اسان تالا کي پڪڙي ورتو آھي. اسان چيڪ ڪريون ٿا ته اسان کي هڪ تالا مليو آهي. چيڪ جي طور تي، اتي هڪ شرط هوندو ته نئين لاڪ ٺاهڻ وقت اسان کي جيڪا آئي ڊي ملي ٿي اها گهٽ ۾ گهٽ آهي. ۽ جيڪڏهن اسان ان کي حاصل ڪيو، ته پوء اسان اڳتي وڌو.

جيڪڏهن ڪا خاص آئي ڊي آهي جيڪا اسان جي لاڪ کان ننڍي آهي، ته پوءِ اسان هن واقعي تي هڪ واچر رکون ٿا ۽ نوٽيفڪيشن جو انتظار ڪريون ٿا جيستائين ڪجهه تبديل نه ٿئي. اهو آهي، اسان کي اهو تالا مليو آهي. ۽ جيستائين اهو بند نه ٿيندو، اسان گهٽ ۾ گهٽ آئي ڊي نه بڻجي سگهنداسين ۽ گهٽ ۾ گهٽ لاڪ حاصل نه ڪنداسين، ۽ اهڙي طرح اسان لاگ ان ڪرڻ جي قابل ٿي سگهنداسين. ۽ جيڪڏهن اها شرط پوري نه ٿي ته پوءِ اسان فوري طور تي هتي وڃون ٿا ۽ هن تالا کي ٻيهر حاصل ڪرڻ جي ڪوشش ڪريون ٿا، ڇاڪاڻ ته هن وقت ۾ ڪجهه تبديل ٿي سگهي ٿو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ZooKeeper ڇا تي مشتمل آهي؟ اتي 4 مکيه شيون آهن. هي پروسيسنگ پروسيسنگ آهي - درخواست. ۽ پڻ زو ڪيپر ايٽمي براڊڪاسٽ. اتي ھڪڙو ڪمٽ لاگ آھي جتي سڀ عمل رڪارڊ ٿيل آھن. ۽ In-Memory Replicated DB خود، يعني ڊيٽابيس پاڻ جتي هي سڄو وڻ ذخيرو ٿيل آهي.

اهو نوٽ ڪرڻ جي قابل آهي ته سڀئي لکڻ جي عملن جي درخواست پروسيسر جي ذريعي وڃو. ۽ پڙھڻ جا عمل سڌو سنئون ان-ميموري ڊيٽابيس ڏانھن وڃو.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ڊيٽابيس پاڻ کي مڪمل طور تي نقل ڪيو ويو آهي. ZooKeeper جا سڀئي مثال ڊيٽا جي مڪمل ڪاپي محفوظ ڪن ٿا.

حادثي کان پوءِ ڊيٽابيس کي بحال ڪرڻ لاءِ، هڪ ڪمٽ لاگ آهي. معياري مشق اهو آهي ته ڊيٽا کي ميموري ۾ اچڻ کان اڳ، اهو اتي لکيو ويو آهي ته جيئن اهو حادثو ٿئي، اهو لاگ واپس هلائي سگهجي ٿو ۽ سسٽم اسٽيٽ کي بحال ڪري سگهجي ٿو. ۽ ڊيٽابيس جا وقتي سنيپ شاٽ پڻ استعمال ڪيا ويندا آهن.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

ZooKeeper Atomic Broadcast ھڪڙي شيء آھي جيڪا نقل ٿيل ڊيٽا کي برقرار رکڻ لاء استعمال ڪيو ويندو آھي.

ZAB اندروني طور ZooKeeper نوڊ جي نقطي نظر کان هڪ ليڊر چونڊيندو آهي. ٻيا نوڊس هن جا پوئلڳ بڻجي ويندا آهن ۽ هن کان ڪجهه عملن جي توقع ڪندا آهن. جيڪڏهن اهي داخل ٿين ٿا، اهي انهن سڀني کي اڳواڻ ڏانهن موڪليندا آهن. هو پهريان لکڻ جو آپريشن ڪندو آهي ۽ پوءِ پيغام موڪليندو آهي ته هن جي پوئلڳن کي ڪهڙي تبديلي آئي آهي. اهو، حقيقت ۾، ايٽمي طور تي ٿيڻ گهرجي، يعني سڄي شيء جي رڪارڊنگ ۽ براڊڪاسٽنگ آپريشن کي ايٽمي طور تي انجام ڏيڻ گهرجي، انهي سان گڏ ڊيٽا جي استحڪام جي ضمانت.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا" اهو صرف لکڻ جي درخواستن تي عمل ڪري ٿو. ان جو بنيادي ڪم اهو آهي ته اهو آپريشن کي ٽرانزيڪشنل اپڊيٽ ۾ تبديل ڪري ٿو. هي هڪ خاص طور تي ٺاهيل درخواست آهي.

۽ هتي اها ڳالهه نوٽ ڪرڻ گهرجي ته هڪ ئي آپريشن لاء تازه ڪاري جي idempotency ضمانت آهي. هي ڇا آهي؟ اها شيءِ، جيڪڏهن ٻه ڀيرا عمل ڪيو وڃي، ته اها ساڳي حالت هوندي، يعني اها درخواست پاڻ نه بدلبي. ۽ اهو ڪرڻ جي ضرورت آهي انهي ڪري ته حادثي جي صورت ۾، توهان آپريشن کي ٻيهر شروع ڪري سگهو ٿا، انهي سان گڏ انهن تبديلين کي واپس آڻيندي جيڪي هن وقت بند ٿي ويا آهن. ان صورت ۾، سسٽم جي حالت ساڳي ٿي ويندي، يعني اهو معاملو نه هجڻ گهرجي ته ساڳيو سلسلو، مثال طور، تازه ڪاري عمل، سسٽم جي مختلف آخري رياستن ڏانهن وٺي.

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

”هڊوپ. ZooKeeper" Mail.Ru گروپ Technostream سيريز مان "هڊوپ ۾ ڊيٽا جي وڏي مقدار جي ورهايل پروسيسنگ جا طريقا"

جو ذريعو: www.habr.com

تبصرو شامل ڪريو