“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

"Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ" စီသရီသမဟ "Hadoop. ZooKeeper" ဟောပဌောပလဲ၏ စာသာသမဟတ်တမ်သကို ဖတ်ရန် အကဌံပဌုလိုပါသည်။

Hadoop ဂေဟစနစ်တလင် ၎င်သ၏နေရာ၊ ZooKeeper ဟူသည် အဘယ်နည်သ။ ဖဌန့်ဝေထာသသော တလက်ချက်မဟုနဟင့်ပတ်သက်၍ မဟာသယလင်သသောအချက်မျာသ။ စံဖဌန့်ဝေစနစ်၏ ပုံကဌမ်သ။ ဖဌန့်ဝေမဟုစနစ်မျာသကို ညဟိနဟိုင်သရာတလင် ခက်ခဲခဌင်သ။ ပုံမဟန်ညဟိနဟိုင်သမဟုပဌဿနာမျာသ။ ZooKeeper ၏ဒီဇိုင်သနောက်ကလယ်မဟအခဌေခံမူမျာသ။ ZooKeeper ဒေတာမော်ဒယ်။ znode အလံမျာသ။ ဆက်ရဟင်မျာသ။ သုံသစလဲသူ API မူလအစမျာသ (ဖလဲ့စည်သပုံ၊ အဖလဲ့၀င်ခဌင်သ၊ ရိုသရဟင်သသောသော့ခလောက်မျာသ၊ ခေါင်သဆောင်ရလေသကောက်ပလဲ၊ နလာသအုပ်အကျိုသသက်ရောက်မဟုမရဟိဘဲ လော့ခ်ချခဌင်သ)။ ZooKeeper ဗိသုကာ။ ZooKeeper DB ZAB ကိုင်တလယ်သူကို တောင်သဆိုပါ။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ဒီနေ့တော့ ZooKeeper အကဌောင်သ ပဌောပဌပါမယ်။ ကအရာသည်အလလန်အသုံသဝင်သည်။ Apache Hadoop ထုတ်ကုန်မျာသကဲ့သို့၎င်သတလင် လိုဂိုပါရဟိသည်။ လူတစ်ယောက်ကို ပုံဖော်တယ်။

ဒီမတိုင်ခင်မဟာ၊ အဲဒီမဟာ data တလေကို ဘယ်လိုလုပ်ဆောင်နိုင်သလဲ၊ အဲဒါကို ဘယ်လိုသိမ်သဆည်သရမလဲ၊ အဲဒါကို တစ်နည်သနည်သနဲ့ အသုံသပဌုနည်သနဲ့ အဲဒါကို တစ်နည်သနည်သနဲ့ လုပ်ဆောင်နိုင်တဲ့အကဌောင်သ အဓိကထာသပဌီသ ဆလေသနလေသခဲ့ပါတယ်။ ဒီနေ့မဟာတော့ ဖဌန့်ဝေတဲ့ Application တလေကို တည်ဆောက်ခဌင်သအကဌောင်သ အနည်သငယ် ပဌောပဌချင်ပါတယ်။ ZooKeeper သည် ကကိစ္စရပ်ကို ရိုသရဟင်သလလယ်ကူစေမည့် အရာမျာသထဲမဟ တစ်ခုဖဌစ်သည်။ ၎င်သသည် ဖဌန့်ဝေထာသသော အက်ပ်လီကေသရဟင်သမျာသတလင် ဖဌန့်ဝေထာသသော စနစ်မျာသတလင် လုပ်ငန်သစဉ်မျာသ၏ အပဌန်အလဟန် ပေါင်သစပ်ညဟိနဟိုင်သမဟုမျိုသအတလက် ရည်ရလယ်သည့် ဝန်ဆောင်မဟုတစ်မျိုသဖဌစ်သည်။

ထိုသို့သော လျဟောက်လလဟာမျာသအတလက် လိုအပ်ချက်သည် နေ့စဉ်နဟင့်အမျဟ ပိုမျာသလာနေသည်၊ ထိုအရာသည် ကျလန်ုပ်တို့၏ သင်တန်သဖဌစ်သည်။ တစ်ဖက်တလင်၊ MapReduce နဟင့် ကအဆင်သင့်လုပ်ထာသသော မူဘောင်သည် သင့်အာသ ကရဟုပ်ထလေသမဟုကို ဖယ်ရဟာသနိုင်ပဌီသ အပဌန်အလဟန်ဆက်ဆံရေသနဟင့် လုပ်ငန်သစဉ်မျာသ ပေါင်သစပ်ညဟိနဟိုင်သမဟုကဲ့သို့သော မူလအစမျာသကို ရေသသာသခဌင်သမဟ ပရိုဂရမ်မာအာသ လလတ်မဌောက်စေနိုင်သည်။ သို့သော် အခဌာသတစ်ဖက်တလင်မူ၊ ကအရာသည် မည်သို့ပင်ဖဌစ်လိမ့်မည်မဟုတ်ဟု မည်သူကမျဟ အာမခံချက်မရဟိပါ။ MapReduce သို့မဟုတ် အခဌာသသော အဆင်သင့်လုပ်ထာသသော မူဘောင်မျာသသည် ၎င်သကိုအသုံသပဌု၍ အကောင်အထည်မဖော်နိုင်သော အချို့သောကိစ္စရပ်မျာသကို အမဌဲတမ်သ လုံသလုံသအစာသထိုသ၍မရပါ။ MapReduce ကိုယ်တိုင်နဟင့် အခဌာသသော Apache ပရောဂျက်မျာသစလာ အပါအဝင်၊ ၎င်သတို့သည် အမဟန်တကယ်လည်သ ဖဌန့်ဝေထာသသော application မျာသဖဌစ်သည်။ စာရေသရတာ ပိုလလယ်အောင် ZooKeeper ရေသတယ်။

Hadoop နဟင့်ပတ်သက်သော application မျာသအာသလုံသကဲ့သို့၎င်သကို Yahoo မဟတီထလင်ခဲ့သည်။ ယခုအခါ ၎င်သသည် တရာသဝင် Apache အက်ပ်တစ်ခုလည်သဖဌစ်သည်။ ၎င်သသည် HBase ကဲ့သို့ တက်ကဌလစလာ မဖလံ့ဖဌိုသပါ။ သင် JIRA HBase သို့သလာသပါက နေ့တိုင်သတလင် ချို့ယလင်သချက်အစီရင်ခံစာမျာသ၊ တစ်စုံတစ်ခုကို အကောင်သဆုံသဖဌစ်အောင်ပဌုလုပ်ရန် အဆိုပဌုချက်မျာသစလာရဟိသည်၊ ဆိုလိုသည်မဟာ ပရောဂျက်ရဟိဘဝသည် အဆက်မပဌတ်ဖဌစ်နေပါသည်။ တစ်ဖက်တလင် ZooKeeper သည် အတော်လေသရိုသရဟင်သသောထုတ်ကုန်ဖဌစ်ပဌီသ အခဌာသတစ်ဖက်တလင်၊ ၎င်သသည် ၎င်သ၏ယုံကဌည်စိတ်ချရမဟုကို အာမခံပါသည်။ ၎င်သသည်အသုံသပဌုရန်အတော်လေသလလယ်ကူသောကဌောင့်၎င်သသည် Hadoop ဂေဟစနစ်အတလင်သရဟိ application မျာသတလင်စံတစ်ခုဖဌစ်လာသည်။ ဒါကဌောင့် ဘယ်လိုအလုပ်လုပ်တယ်၊ ဘယ်လိုသုံသရမယ်ဆိုတာ နာသလည်အောင် ပဌန်သုံသသပ်တာက အသုံသဝင်မယ်လို့ ထင်ပါတယ်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ဒါက ကျလန်တော်တို့ သင်ကဌာသပဌသပေသခဲ့တဲ့ ပုံရိပ်တစ်ခုပါ။ ယခုအချိန်အထိ ကျလန်ုပ်တို့ စဉ်သစာသထာသသမျဟ အရာအာသလုံသအတလက် အချိုသညီညီဟု ဆိုနိုင်ပါသည်။ ကနေရာတလင် ဖော်ပဌထာသသည့်အရာအာသလုံသသည် ZooKeeper နဟင့် အလုပ်လုပ်သည်၊ ဆိုလိုသည်မဟာ ကထုတ်ကုန်အာသလုံသကို အသုံသပဌုသည့် ဝန်ဆောင်မဟုတစ်ခုဖဌစ်သည်။ HDFS နဟင့် MapReduce နဟစ်ခုလုံသသည် ၎င်သတို့အတလက် အထူသသင့်လျော်မည့် ၎င်သတို့၏ အလာသတူဝန်ဆောင်မဟုမျာသကို မရေသကဌပါ။ ထို့ကဌောင့် ZooKeeper ကိုအသုံသပဌုသည်။ ၎င်သသည် ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် အမဟာသအယလင်သမျာသနဟင့်ပတ်သက်သည့် အချို့အရာမျာသကို ရိုသရဟင်သစေသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ဒါတလေအာသလုံသ ဘယ်ကလာတာလဲ။ မတူညီသောကလန်ပျူတာမျာသပေါ်တလင် အပဌိုင်အပလီကေသရဟင်သနဟစ်ခုကို ကျလန်ုပ်တို့လလဟင့်တင်ခဲ့ပဌီသ ၎င်သတို့ကို စာကဌောင်သတစ်ခု သို့မဟုတ် ကလက်တစ်ခုဖဌင့် ချိတ်ဆက်ထာသကာ အရာအာသလုံသ အဆင်ပဌေသလာသပုံရသည်။ သို့သော် ပဌဿနာမဟာ Network သည် စိတ်မချရသောကဌောင့်၊ သင်သည် အသလာသအလာကို ရဟူရဟိုက်မိသည် သို့မဟုတ် နိမ့်ပါသသော အဆင့်တလင် ဖဌစ်ပျက်နေသည်မျာသကို ကဌည့်ရဟုပါက၊ ကလန်ရက်ပေါ်တလင် သုံသစလဲသူမျာသ အပဌန်အလဟန် တုံ့ပဌန်ပုံ၊ အချို့သော packet မျာသ ပျောက်ဆုံသသလာသခဌင်သ သို့မဟုတ် ပဌန်လည်ပေသပို့ခဌင်သတို့ကို မကဌာခဏ မဌင်တလေ့နိုင်သည်။ သင့်အာသ သတ်မဟတ်ထာသသော စက်ရဟင်တစ်ခုကို တည်ထောင်ရန်နဟင့် မက်ဆေ့ချ်ပေသပို့မဟုကို အာမခံနိုင်စေသည့် TCP ပရိုတိုကောမျာသကို တီထလင်ခဲ့ခဌင်သသည် မည်သည့်အတလက်မျဟ မဟုတ်ပါ။ မည်သို့ပင်ဆိုစေ TCP ပင်လျဟင် သင့်အာသ အမဌဲမကယ်တင်နိုင်ပါ။ အရာရာတိုင်သဟာ အချိန်ကုန်ဆုံသမဟုရဟိတယ်။ ကလန်ရက်သည် ခဏတာ ပျက်သလာသနိုင်သည်။ မျက်တောင်ခတ်နေနိုင်တယ်။ ဒါတလေအာသလုံသက Network ကို ယုံကဌည်စိတ်ချရတဲ့အပေါ်မဟာ သင် အာသကိုသလို့မရဘူသဆိုတဲ့အချက်ကို ဖဌစ်ပေါ်စေတယ်။ ၎င်သသည် ကလန်ပျူတာတစ်လုံသပေါ်တလင် သို့မဟုတ် စူပါကလန်ပဌူတာတစ်ခုပေါ်တလင် အလုပ်လုပ်သော အပဌိုင်အပလီကေသရဟင်သမျာသကို ရေသသာသခဌင်သမဟ အဓိကကလာခဌာသချက်မဟာ ကလန်ရက်မရဟိသော၊ မမ်မိုရီတလင် ပိုမိုစိတ်ချရသော ဒေတာလဲလဟယ်ရေသဘတ်စ်တစ်ခုရဟိသည့် ကလန်ရက်မရဟိသည့်နေရာဖဌစ်သည်။ ပဌီသတော့ ဒါက အခဌေခံ ခဌာသနာသချက်ပါ။

အခဌာသအရာမျာသထဲတလင် Network ကိုအသုံသပဌုသောအခါတလင်၊ latency သည်အမဌဲရဟိနေပါသည်။ disk မဟာလည်သ ပါပါတယ်၊ ဒါပေမယ့် Network မဟာ ပိုရဟိပါတယ်။ Latency သည် အနည်သငယ် သို့မဟုတ် အလလန်သိသာစေသည့် နဟောင့်နဟေသသည့်အချိန်ဖဌစ်သည်။

ကလန်ရက် topology သည် ပဌောင်သလဲနေသည်။ topology ဟူသည် အဘယ်နည်သ - ကအရာသည် ကျလန်ုပ်တို့၏ ကလန်ရက်စက်ပစ္စည်သမျာသ၏ နေရာချထာသမဟုဖဌစ်သည်။ ဒေတာစင်တာတလေရဟိတယ်၊ ဟိုမဟာရပ်နေတဲ့ ကကလက်တလေရဟိတယ်၊ ဖယောင်သတိုင်တလေရဟိတယ်။ ကအရာအာသလုံသကို ပဌန်လည်ချိတ်ဆက်နိုင်သည်၊ ရလဟေ့နိုင်သည်၊ စသဖဌင့်၊ ကအရာအာသလုံသကိုလည်သ ထည့်သလင်သစဉ်သစာသရန် လိုအပ်ပါသည်။ IP အမည်မျာသ ပဌောင်သလဲခဌင်သ၊ ကျလန်ုပ်တို့၏ လမ်သကဌောင်သမျာသ သလာသလာနေသည့် လမ်သကဌောင်သ ပဌောင်သလဲပါသည်။ ဒါကိုလည်သ ထည့်သလင်သစဉ်သစာသဖို့ လိုပါတယ်။

ကလန်ရက်သည် စက်ကိရိယာဆိုင်ရာ စည်သကမ်သချက်မျာသတလင်လည်သ ပဌောင်သလဲနိုင်သည်။ လက်တလေ့အာသဖဌင့်၊ ကျလန်ုပ်တို့၏ကလန်ရက်အင်ဂျင်နီယာမျာသသည် ဖယောင်သတိုင်မျာသပေါ်တလင် တစ်ခုခုကို အခါအာသလျော်စလာ အပ်ဒိတ်လုပ်ခဌင်သကို အမဟန်တကယ်နဟစ်သက်သည်ဟု ကျလန်တော်ပဌောနိုင်သည်။ ရုတ်တရက် Firmware အသစ်တစ်ခုထလက်လာပဌီသ Hadoop အစုအဝေသအချို့ကို အထူသစိတ်မဝင်စာသခဲ့ကဌပါ။ သူတို့မဟာ ကိုယ်ပိုင်အလုပ်ရဟိတယ်။ သူတို့အတလက် အဓိကအချက်က Network အလုပ်လုပ်ပါတယ်။ ထို့ကဌောင့်၊ ၎င်သတို့သည် ထိုနေရာတလင် တစ်ခုခုကို ပဌန်လည် အပ်လုဒ်လုပ်ရန်၊ ၎င်သတို့၏ ဟာ့ဒ်ဝဲပေါ်တလင် အလင်သပဌန်ခဌင်သကို ပဌုလုပ်လိုကဌပဌီသ ဟာ့ဒ်ဝဲကိုလည်သ အခါအာသလျော်စလာ ပဌောင်သလဲလိုကဌသည်။ ကအရာအာသလုံသကို တစ်နည်သနည်သဖဌင့် ထည့်သလင်သစဉ်သစာသရန် လိုအပ်ပါသည်။ ကအရာအာသလုံသသည် ကျလန်ုပ်တို့၏ ဖဌန့်ဝေထာသသော အပလီကေသရဟင်သအပေါ် သက်ရောက်မဟုရဟိသည်။

အမျာသအာသဖဌင့် ဒေတာပမာဏမျာသစလာဖဌင့် စတင်လုပ်ကိုင်သူမျာသသည် အင်တာနက်သည် အကန့်အသတ်မရဟိဟု ယုံကဌည်ကဌသည်။ အဲဒီမဟာ terabytes အမျာသအပဌာသရဟိတဲ့ ဖိုင်တစ်ခုရဟိတယ်ဆိုရင်၊ အဲဒါကို သင့်ဆာဗာ ဒါမဟမဟုတ် ကလန်ပျူတာမဟာ ယူပဌီသ ဖလင့်သုံသနိုင်ပါတယ်။ ကလောငျ စောင့်ကဌည့်ပါ။ နောက်ထပ် error တစ်ခုရဟိနေပါသည်။ Vim သစ်လုံသမျာသကိုကဌည့်ပါ။ မကောင်သတဲ့အတလက် ဘယ်တော့မဟ မလုပ်ပါနဲ့။ Vim သည် အရာအာသလုံသကို ကဌာသခံရန်ကဌိုသစာသသောကဌောင့်၊ အထူသသဖဌင့် ကျလန်ုပ်တို့သည် ကမဟတ်တမ်သကိုစတင်ရလေ့လျာသပဌီသ တစ်ခုခုကိုရဟာဖလေနေသောအခါတလင် အရာအာသလုံသကို မဟတ်ဉာဏ်တလင်တင်ပါ။ ဒါတလေက မေ့ပျောက်နေပေမယ့် ဆင်ခဌင်သင့်တယ်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ပရိုဆက်ဆာတစ်ခုနဲ့ ကလန်ပျူတာတစ်လုံသမဟာ အလုပ်လုပ်တဲ့ ပရိုဂရမ်တစ်ခုကို ရေသရတာ ပိုလလယ်တယ်။

ကျလန်ုပ်တို့၏စနစ် ကဌီသထလာသလာသောအခါ၊ ကျလန်ုပ်တို့သည် ၎င်သအာသလုံသကို မျဉ်သပဌိုင်ပဌုလုပ်လိုပဌီသ ၎င်သကို ကလန်ပျူတာပေါ်တလင်သာမက အစုအဝေသတစ်ခုတလင်ပါ အပဌိုင်ပဌုလုပ်လိုပါသည်။ မေသခလန်သပေါ်လာသည်- ကကိစ္စကို မည်သို့ညဟိနဟိုင်သဆောင်ရလက်မည်နည်သ။ ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သမျာသသည် တစ်ခုနဟင့်တစ်ခု အပဌန်အလဟန် အကျိုသသက်ရောက်မဟုရဟိနိုင်သော်လည်သ ဆာဗာမျာသစလာတလင် လုပ်ငန်သစဉ်မျာသစလာကို ကျလန်ုပ်တို့ လုပ်ဆောင်ပါသည်။ ပဌီသတော့ သူတို့အတလက် အရာအာသလုံသ အဆင်ပဌေသလာသအောင် ဘယ်လို စောင့်ကဌည့်ရမလဲ။ ဥပမာ၊ အင်တာနက်ကနေ တစ်ခုခု ပို့တယ်။ ဥပမာအာသဖဌင့်၊ အချို့သော ဒေတာဘေ့စ် သို့မဟုတ် မဟတ်တမ်သတစ်ခုခုတလင် ၎င်သတို့၏ အခဌေအနေအကဌောင်သ ရေသရမည်ဖဌစ်ပဌီသ၊ ထို့နောက် ကမဟတ်တမ်သကို စုစည်သပဌီသ တစ်နေရာရာတလင် ခလဲခဌမ်သစိတ်ဖဌာပါ။ ထို့အပဌင်၊ လုပ်ငန်သစဉ်သည် အလုပ်လုပ်နေပဌီသ အလုပ်လုပ်နေကဌောင်သ ထည့်သလင်သစဉ်သစာသရန်လိုသည်၊ ၎င်သတလင် အမဟာသအယလင်သအချို့ ပေါ်လာသည် သို့မဟုတ် ပျက်သလာသသည်၊ ထို့နောက် ၎င်သအကဌောင်သကို ကျလန်ုပ်တို့ မည်မျဟမဌန်မဌန်ရဟာဖလေနိုင်မည်နည်သ။

ဒါတလေအာသလုံသကို မဌန်မဌန်ဆန်ဆန် စောင့်ကဌည့်နိုင်တယ်ဆိုတာ ရဟင်သပါတယ်။ ၎င်သသည် ကောင်သမလန်သော်လည်သ စောင့်ကဌည့်ခဌင်သသည် အချို့အရာမျာသကို အမဌင့်ဆုံသအဆင့်တလင် စောင့်ကဌည့်နိုင်စေမည့် အကန့်အသတ်တစ်ခုဖဌစ်သည်။

ကျလန်ုပ်တို့၏ လုပ်ငန်သစဉ်မျာသသည် တစ်ခုနဟင့်တစ်ခု အပဌန်အလဟန် အပဌန်အလဟန် အကျိုသသက်ရောက်စေလိုသောအခါ၊ ဥပမာအာသဖဌင့်၊ ဒေတာအချို့ကို အချင်သချင်သ ပေသပို့လိုသောအခါတလင် မေသခလန်သပေါ်လာသည် - ဒါက ဘယ်လိုဖဌစ်မလဲ။ ပဌိုင်ပလဲအခဌေအနေ တစ်မျိုသမျိုသရဟိသလာသ၊ တစ်ခုနဲ့တစ်ခု ထပ်ရေသမလာသ၊ ဒေတာတလေ မဟန်မဟန်ကန်ကန် ရောက်လာမလာသ၊ လမ်သတစ်လျဟောက်မဟာ တစ်ခုခု ဆုံသရဟုံသသလာသမလာသ? ပရိုတိုကော တစ်မျိုသမျိုသ စသည်တို့ကို ဖော်ဆောင်ရန် လိုအပ်ပါသည်။

ကလုပ်ငန်သစဉ်မျာသအာသလုံသကို ညဟိနဟိုင်သဆောင်ရလက်ခဌင်သသည် အသေသအဖလဲကိစ္စမဟုတ်ပါ။ ၎င်သသည် developer အာသ အောက်ခဌေအဆင့်သို့ ဆင်သရန်နဟင့် စနစ်မျာသကို အစမဟနေ၍ သို့မဟုတ် အစမဟနေ၍ ရေသရန် တလန်သအာသပေသသော်လည်သ၊ ကမျဟ မရိုသရဟင်သပါ။

အကယ်၍ သင်သည် cryptographic algorithm တစ်ခုနဟင့် အကောင်အထည်ဖော်မည်ဆိုပါက၊ ၎င်သသည် သင့်အတလက် အလုပ်မဖဌစ်နိုင်သောကဌောင့် ၎င်သကို ချက်ချင်သစလန့်ပစ်ပါ။ ၎င်သတလင် သင်ပံ့ပိုသပေသရန် မေ့သလာသသော အမဟာသအယလင်သမျာသစလာ ပါဝင်နိုင်ဖလယ်ရဟိသည်။ မတည်မငဌိမ်ဖဌစ်နိုင်သောကဌောင့် ပဌင်သထန်သော မည်သည့်အရာအတလက်မဟ မသုံသပါနဟင့်။ အဘယ်ကဌောင့်ဆိုသော် တည်ရဟိနေသော algorithms အာသလုံသကို အချိန်အတော်ကဌာအောင် စမ်သသပ်ထာသသောကဌောင့် ဖဌစ်သည်။ အသိုင်သအဝန်သက နဟောင့်ယဟက်နေတယ်။ ဒါက သီသခဌာသအကဌောင်သအရာပါ။ ဒီမဟာ အတူတူပါပဲ။ လုပ်ငန်သစဉ်အချို့ကို သင်ကိုယ်တိုင် ထပ်တူပဌုခဌင်သမျိုသ အကောင်အထည်ဖော်ရန် မဖဌစ်နိုင်ပါက၊ ၎င်သသည် အလလန်ရဟုပ်ထလေသပဌီသ အမဟာသအယလင်သမျာသကို အဆက်မပဌတ်ရဟာဖလေနေသည့် သင့်အာသ တုန်လဟုပ်ချောက်ချာသစေသော လမ်သကဌောင်သပေါ်သို့ ပို့ဆောင်ပေသသောကဌောင့် ၎င်သကို မလုပ်ဆောင်ခဌင်သက ပိုကောင်သပါသည်။

ယနေ့ကျလန်ုပ်တို့သည် ZooKeeper အကဌောင်သပဌောနေကဌသည်။ တစ်ဖက်တလင်၊ ၎င်သသည် မူဘောင်တစ်ခုဖဌစ်ပဌီသ အခဌာသတစ်ဖက်တလင်၊ ၎င်သသည် developer အတလက် ဘဝပိုမိုလလယ်ကူစေပဌီသ ကျလန်ုပ်တို့၏လုပ်ငန်သစဉ်မျာသကို တတ်နိုင်သမျဟ ယုတ္တိဗေဒနဟင့် ပေါင်သစပ်ညဟိနဟိုင်သဆောင်ရလက်မဟုမျာသကို ရိုသရဟင်သလလယ်ကူစေသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

စံဖဌန့်ဝေမဟုစနစ်က ဘယ်လိုပုံသဏ္ဌာန်ရဟိလဲဆိုတာ မဟတ်သာသရအောင်။ ဒါက HDFS၊ HBase အကဌောင်သပဌောနေတာ။ အလုပ်သမာသမျာသနဟင့် ကျလန်လုပ်ငန်သစဉ်မျာသကို စီမံခန့်ခလဲသည့် Master လုပ်ငန်သစဉ်တစ်ခု ရဟိပါသည်။ အလုပ်မျာသကို ညဟိနဟိုင်သဝေငဟခဌင်သ၊ အလုပ်သမာသမျာသ ပဌန်လည်စတင်ခဌင်သ၊ အသစ်မျာသစတင်ခဌင်သနဟင့် ဝန်ထုပ်ဝန်ပိုသမျာသ ခလဲဝေပေသခဌင်သတို့အတလက် တာဝန်ရဟိပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ပို၍အဆင့်မဌင့်သည့်အရာမဟာ ညဟိနဟိုင်သရေသဝန်ဆောင်မဟု၊ ဆိုလိုသည်မဟာ၊ ညဟိနဟိုင်သရေသတာဝန်ကို သီသခဌာသလုပ်ငန်သစဉ်တစ်ခုအဖဌစ် သူ့ဘာသာသူ ရလဟေ့ကာ မာစတာသည် ကျရဟုံသနိုင်သောကဌောင့် အရန်ကူသယူခဌင်သ သို့မဟုတ် stanby Master အချို့ကို အပဌိုင်လုပ်ဆောင်ခဌင်သဖဌစ်သည်။ အကယ်၍ ဆရာကဌီသပဌုတ်ကျပါက ကျလန်ုပ်တို့၏စနစ်သည် အလုပ်မဖဌစ်ပါ။ ကျလန်ုပ်တို့သည် အရန်သိမ်သခဌင်သကို လုပ်ဆောင်နေပါသည်။ Master ကို အရန်ကူသယူရန် ထပ်တူလိုအပ်သည်ဟု အချို့က ဖော်ပဌသည်။ ဒါကို ညဟိနဟိုင်သရေသ ဝန်ဆောင်မဟုကိုလည်သ အပ်နဟင်သနိုင်ပါတယ်။ သို့သော် ကပုံကဌမ်သတလင် ဆရာကဌီသကိုယ်တိုင်က အလုပ်သမာသမျာသအာသ ညဟိနဟိုင်သဆောင်ရလက်ပေသရန် တာဝန်ရဟိသည်၊ ကနေရာတလင် ဝန်ဆောင်မဟုသည် ဒေတာပုံတူပလာသခဌင်သဆိုင်ရာ လုပ်ငန်သမျာသကို ညဟိနဟိုင်သဆောင်ရလက်ပေသပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ပိုမိုအဆင့်မဌင့်သော ရလေသချယ်မဟုတစ်ခုသည် အမျာသအာသဖဌင့် လုပ်ဆောင်သည့်အတိုင်သ ကျလန်ုပ်တို့၏ဝန်ဆောင်မဟုမဟ ညဟိနဟိုင်သဆောင်ရလက်မဟုအာသလုံသကို ကိုင်တလယ်သည့်အခါဖဌစ်သည်။ အရာရာကို သေချာအောင်လုပ်ဖို့ သူတာဝန်ယူတယ်။ တစ်ခုခုအဆင်မပဌေပါက၊ ကျလန်ုပ်တို့သည် ၎င်သအကဌောင်သကို သိရဟိပဌီသ ကအခဌေအနေသို့ရောက်ရန် ကဌိုသစာသပါ။ မည်သို့ပင်ဆိုစေကာမူ၊ အချို့သောဝန်ဆောင်မဟုမဟတစ်ဆင့် ကျလန်မျာသနဟင့်ဆက်ဆံပဌီသ ဒေတာ၊ အချက်အလက်မျာသ၊ မက်ဆေ့ချ်မျာသစသည်တို့ကို ပေသပို့နိုင်သော ဆရာကဌီသတစ်ညသနဟင့် ကျန်ရဟိနေပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ကျလန်ုပ်တို့တလင် မာစတာမရဟိသောအခါ ပို၍ပင်အဆင့်မဌင့်သောအစီအစဉ်တစ်ခုရဟိပါသည်၊ ဆုံမဟတ်မျာသအာသလုံသသည် သခင်ကျလန်မျာသဖဌစ်ပဌီသ ၎င်သတို့၏အပဌုအမူနဟင့် ကလဲပဌာသပါသည်။ သို့သော် ၎င်သတို့သည် အချင်သချင်သအပဌန်အလဟန် ဆက်ဆံရန် လိုအပ်နေသေသသောကဌောင့် ကလုပ်ဆောင်ချက်မျာသကို ညဟိနဟိုင်သဆောင်ရလက်ရန် ဝန်ဆောင်မဟုအချို့ ကျန်နေသေသသည်။ ကနိယာမတလင်အလုပ်လုပ်သော Cassandra သည်ကအစီအစဉ်နဟင့်ကိုက်ညီသည်။

ကအစီအစဥ်မျာသထဲမဟ မည်သည့်အစီအစဥ်ပိုကောင်သသည်ဆိုသည်ကို ပဌောရခက်ပါသည်။ တစ်ခုချင်သစီတလင်၎င်သ၏အာသသာချက်မျာသနဟင့်အာသနည်သချက်မျာသရဟိသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

အဘယ့်ကဌောင့်ဆိုသော် အချို့သောအရာမျာသကို ကဌောက်ရလံ့နေရန် မလိုအပ်ပေ၊ အဘယ်ကဌောင့်ဆိုသော် ကျင့်စဉ်ပဌသည့်အတိုင်သ၊ သူသည် အမဌဲတစေ အမဟုတော်ထမ်သဆောင်ရန် အလလန်အမင်သ ကဌောက်ရလံ့ဖလယ်မရဟိပေ။ ကနေရာတလင် အဓိကအချက်မဟာ ကဝန်ဆောင်မဟုအာသ သီသခဌာသအာသကောင်သသော node တစ်ခုတလင် လက်ခံကျင်သပရန်အတလက် မဟန်ကန်သောဖဌေရဟင်သချက်ကို ရလေသချယ်ရန်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် ၎င်သတလင် အရင်သအမဌစ်မျာသ အလုံအလောက်ရဟိစေရန်၊ သို့မဟသာ ဖဌစ်နိုင်ပါက အသုံသပဌုသူမျာသသည် ကလုပ်ငန်သစဉ်ကို မတော်တဆ မသတ်မိစေရန်ဖဌစ်သည်။ သို့သော်တစ်ချိန်တည်သမဟာပင်၊ ထိုသို့သောအစီအစဥ်တလင် Master လုပ်ငန်သစဉ်မဟအလုပ်သမာသမျာသကိုစီမံခန့်ခလဲရန်ပိုမိုလလယ်ကူသည်၊ ဆိုလိုသည်မဟာကအစီအစဥ်ကိုအကောင်အထည်ဖော်မဟုရဟုထောင့်မဟပိုမိုရိုသရဟင်သပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ကအစီအစဥ် (အထက်) သည် ပို၍ရဟုပ်ထလေသနိုင်သည်၊ သို့သော် ပို၍ယုံကဌည်စိတ်ချရသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

အဓိကပဌဿနာမဟာ တစ်စိတ်တစ်ပိုင်သ ပျက်ကလက်မဟုမျာသဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် Network မဟတဆင့် မက်ဆေ့ချ်ပို့သောအခါတလင် မတော်တဆမဟု တစ်မျိုသမျိုသ ဖဌစ်ပေါ်ပဌီသ မက်ဆေ့ချ်ပို့သူသည် ၎င်သ၏ မက်ဆေ့ချ်ကို လက်ခံရရဟိခဌင်သ ရဟိ၊ မရဟိ သိရဟိနိုင်မည်ဖဌစ်ပဌီသ လက်ခံသူဘက်မဟ မည်ကဲ့သို့ ဖဌစ်ပျက်ခဲ့သည်ကို သိရဟိနိုင်မည် မဟုတ်ပါ။ ဆိုလိုသည်မဟာ သူသည် မည်သည့်အတည်ပဌုချက်ကိုမျဟ လက်ခံမည်မဟုတ်ပါ။

ဒါကဌောင့် ဒီအခဌေအနေကို စီမံဆောင်ရလက်ရမယ်။ အရိုသရဟင်သဆုံသကတော့ ဒီစာကိုပဌန်ပို့ပဌီသ တုံ့ပဌန်မဟုရရဟိတဲ့အထိစောင့်ပါ။ ကကိစ္စတလင်၊ လက်ခံသူ၏အခဌေအနေပဌောင်သလဲခဌင်သရဟိမရဟိ ထည့်သလင်သစဉ်သစာသမည်မဟုတ်ပါ။ မက်ဆေ့ချ်ပို့ပဌီသ တူညီသောဒေတာကို နဟစ်ကဌိမ်ထည့်နိုင်သည်။

ZooKeeper သည် ကျလန်ုပ်တို့၏ဘဝကို ပိုမိုလလယ်ကူစေသည့် ထိုငဌင်သဆိုမဟုမျာသကို ကိုင်တလယ်ဖဌေရဟင်သရန် နည်သလမ်သမျာသကို ပေသပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

အစောပိုင်သကပဌောခဲ့သည့်အတိုင်သ၊ ၎င်သသည် multi-threaded ပရိုဂရမ်မျာသကိုရေသသာသခဌင်သနဟင့်ဆင်တူသော်လည်သ အဓိကကလာခဌာသချက်မဟာ မတူညီသောစက်မျာသတလင်ကျလန်ုပ်တို့တည်ဆောက်ထာသသောဖဌန့်ဝေသည့်အက်ပ်လီကေသရဟင်သမျာသတလင်ဆက်သလယ်ရန်တစ်ခုတည်သသောနည်သလမ်သမဟာ Network ဖဌစ်သည်။ အခဌေခံအာသဖဌင့်၊ ကအရာသည် မျဟဝေခဌင်သမရဟိဘဲ ဗိသုကာတစ်ခုဖဌစ်သည်။ စက်တစ်ခုပေါ်တလင်လည်ပတ်သည့် လုပ်ငန်သစဉ် သို့မဟုတ် ဝန်ဆောင်မဟုတစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင်မဟတ်ဉာဏ်၊ ၎င်သ၏ကိုယ်ပိုင်ဒစ်၊ ၎င်သ၏ကိုယ်ပိုင်ပရိုဆက်ဆာ၊ ၎င်သသည် မည်သူတစ်ညသတစ်ယောက်နဟင့်မျဟ မျဟဝေခဌင်သမရဟိပေ။

ကလန်ပျူတာတစ်လုံသမဟာ Multi-threaded ပရိုဂရမ်တစ်ခုကို ရေသမယ်ဆိုရင် ဒေတာဖလဟယ်ဖို့အတလက် မျဟဝေထာသတဲ့ Memory ကို အသုံသပဌုနိုင်ပါတယ်။ ကျလန်ုပ်တို့တလင် ဆက်စပ်ခလုတ်တစ်ခုရဟိသည်၊ လုပ်ငန်သစဉ်မျာသပဌောင်သနိုင်သည်။ ဒါက စလမ်သဆောင်ရည်ကို ထိခိုက်စေတယ်။ တစ်ဖက်တလင်၊ အစုအဖလဲ့တစ်ခုရဟိ ပရိုဂရမ်တလင် ထိုသို့သောအရာမျိုသမရဟိသော်လည်သ Network တလင် ပဌဿနာမျာသရဟိနေသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ထို့ကဌောင့် ဖဌန့်ဝေသည့်စနစ်မျာသကို ရေသသာသသည့်အခါတလင် ဖဌစ်ပေါ်လာသည့် အဓိကပဌဿနာမျာသမဟာ ဖလဲ့စည်သမဟုဖဌစ်သည်။ ကျလန်ုပ်တို့သည် အက်ပလီကေသရဟင်သတစ်မျိုသကို ရေသနေပါသည်။ ရိုသရဟင်သပါက၊ ကျလန်ုပ်တို့သည် ကုဒ်တလင် နံပါတ်အမျိုသမျိုသကို hardcode လုပ်ထာသသော်လည်သ ၎င်သသည် အဆင်မပဌေသောကဌောင့်၊ ကျလန်ုပ်တို့သည် စက္ကန့်ဝက်၏ အချိန်ကုန်ဆုံသမည့်အစာသ ကျလန်ုပ်တို့သည် တစ်စက္ကန့်၏ အချိန်ကုန်ဆုံသလိုကဌောင်သ ဆုံသဖဌတ်ပါက၊ ကျလန်ုပ်တို့သည် အပလီကေသရဟင်သကို ပဌန်လည်ပေါင်သစည်သရန် လိုအပ်ပါသည်။ အရာအာသလုံသကို ပဌန်လဟန်လိုက်ပါ။ အဲဒါက စက်တစ်လုံသမဟာရဟိတဲ့အခါ၊ သင်ကပဲ restart လုပ်လို့ရပေမယ့် စက်တလေအမျာသကဌီသရဟိတဲ့အခါ၊ အရာအာသလုံသကို အဆက်မပဌတ်ကူသယူရပါမယ်။ အပလီကေသရဟင်သကို configurable ဖဌစ်အောင် ကဌိုသစာသရမယ်။

ကတလင် ကျလန်ုပ်တို့သည် စနစ်လုပ်ငန်သစဉ်မျာသအတလက် static configuration အကဌောင်သပဌောနေပါသည်။ ၎င်သသည် လုံသ၀မဟုတ်ပါ၊ လည်ပတ်မဟုစနစ်၏ရဟုထောင့်မဟဖဌစ်နိုင်သည်၊ ၎င်သသည် ကျလန်ုပ်တို့၏လုပ်ငန်သစဉ်မျာသအတလက် static configuration ဖဌစ်ကောင်သဖဌစ်နိုင်သည်၊ ဆိုလိုသည်မဟာ၊ ကသည်မဟာ ရိုသရဟင်သစလာယူ၍မလမ်သမံမရနိုင်သောဖလဲ့စည်သပုံတစ်ခုဖဌစ်သည်။

ဒိုင်သနမစ်ဖလဲ့စည်သပုံလည်သ ရဟိပါသည်။ ကအရာမျာသသည် ၎င်သတို့ကို ထိုနေရာတလင် ကောက်ယူနိုင်ရန် ကျလန်ုပ်တို့ ပျံသန်သပဌောင်သလဲလိုသော ဘောင်မျာသဖဌစ်သည်။

ဒီမဟာ ဘာပဌဿနာရဟိလို့လဲ။ ကျလန်ုပ်တို့သည် config ကိုမလမ်သမံပဌီသ၎င်သကိုထုတ်ခဲ့သည်၊ ဒါဆိုဘာလဲ။ ပဌဿနာက တဖက်မဟာ config ကို ထုတ်ပေသပေမယ့် အသစ်ကို မေ့သလာသလို့ config က အဲဒီမဟာပဲ ကျန်နေခဲ့တာ။ ဒုတိယအနေဖဌင့်၊ ကျလန်ုပ်တို့ စတင်ထုတ်လုပ်စဉ်တလင်၊ အချို့နေရာမျာသတလင် ဖလဲ့စည်သမဟုပုံစံကို အပ်ဒိတ်လုပ်ခဲ့သော်လည်သ အခဌာသနေရာမျာသတလင် မဟုတ်ပါ။ စက်တစ်လုံသတလင်လည်ပတ်နေသော ကျလန်ုပ်တို့၏အပလီကေသရဟင်သ၏လုပ်ငန်သစဉ်အချို့ကို config အသစ်တစ်ခုဖဌင့် ပဌန်လည်စတင်ခဲ့ပဌီသ အချို့နေရာတလင် အဟောင်သတစ်ခုဖဌင့် ပဌန်လည်စတင်ခဲ့သည်။ ၎င်သသည် ကျလန်ုပ်တို့၏ ဖဌန့်ဝေထာသသော အပလီကေသရဟင်သကို ဖလဲ့စည်သမဟုပုံစံရဟုထောင့်မဟ တသမတ်တည်သဖဌစ်စေနိုင်သည်။ ဒီပဌဿနာက အဖဌစ်မျာသတယ်။ ဒိုင်သနမစ်ဖလဲ့စည်သမဟုတစ်ခုအတလက်၊ ၎င်သသည် ပျံသန်သမဟုတလင် ပဌောင်သလဲနိုင်သည်ဟု ဆိုလိုသောကဌောင့် ၎င်သသည် ပိုမိုသက်ဆိုင်သည်။

နောက်ပဌဿနာတစ်ခုကတော့ အဖလဲ့အဖလဲ့ဝင်ဖဌစ်ခဌင်သပါ။ ကျလန်တော်တို့မဟာ အလုပ်သမာသတလေ အမဌဲရဟိနေတယ်၊ ​​သူတို့ထဲက ဘယ်သူက အသက်ရဟင်နေလဲ၊ ဘယ်သူက သေသလာသပဌီလဲ ဆိုတာ အမဌဲသိချင်နေတယ်။ မာစတာရဟိပါက၊ တလက်ချက်မဟုမျာသလုပ်ဆောင်ရန် သို့မဟုတ် ဒေတာဖဌင့်အလုပ်လုပ်နိုင်စေရန် မည်သည့်အလုပ်သမာသမျာသကို ဖောက်သည်မျာသထံ ပဌန်ညလဟန်သနိုင်သည်ကို သူနာသလည်ရပါမည်။ အဆက်မပဌတ်ဖဌစ်ပေါ်နေသည့် ပဌဿနာတစ်ခုမဟာ ကျလန်ုပ်တို့၏အစုအဝေသတလင် မည်သူမည်သည်ကို သိရဟိရန် လိုအပ်ပါသည်။

နောက်ပဌဿနာတစ်ခုကတော့ ခေါင်သဆောင် ရလေသကောက်ပလဲမဟာ ဘယ်သူက ဘယ်သူတာဝန်ခံလဲ ဆိုတာ သိချင်ပါတယ်။ ဥပမာတစ်ခုသည် စာရေသခဌင်သလုပ်ငန်သကို လက်ခံရရဟိပဌီသနောက် အခဌာသလုပ်ငန်သစဉ်မျာသကဌာသတလင် ထပ်တူပဌုသည့် လုပ်ငန်သစဉ်အချို့ရဟိသောအခါ ဥပမာတစ်ခုသည် ကူသယူခဌင်သဖဌစ်ပါသည်။ သူသည် ခေါင်သဆောင်ဖဌစ်လိမ့်မည်၊ အခဌာသလူတိုင်သက သူ့အာသ နာခံလိမ့်မည်၊ သူ့နောက်လိုက်ကဌလိမ့်မည်။ ခေါင်သဆောင်နဟစ်ညသကို ရလေသချယ်ခဌင်သမခံရစေရန် လူတိုင်သအတလက် ရဟုပ်ထလေသမဟုမရဟိစေရန် လုပ်ငန်သစဉ်ကို ရလေသချယ်ရန် လိုအပ်ပါသည်။

သီသသန့်ဝင်ရောက်ခလင့်လည်သ ရဟိပါတယ်။ ဒီနေရာမဟာ ပဌဿနာက ပိုရဟုပ်ထလေသတယ်။ Multi-threaded ပရိုဂရမ်မျာသကို ရေသသာသပဌီသ အချို့သော ရင်သမဌစ် ဥပမာ မန်မိုရီဆဲလ်သို့ ဝင်ရောက်လိုသောအခါတလင် ကန့်သတ်ချက်တစ်ခုသာ လုပ်ဆောင်ရန် mutex ကဲ့သို့သော အရာတစ်ခု ရဟိပါသည်။ ကနေရာတလင် အရင်သအမဌစ်သည် ပို၍ စိတ္တဇဖဌစ်နိုင်သည်။ ကျလန်ုပ်တို့၏ Network ၏ မတူညီသော node မျာသမဟ မတူညီသော အပလီကေသရဟင်သမျာသသည် ပေသထာသသော အရင်သအမဌစ်တစ်ခုသို့ သီသသန့်ဝင်ရောက်ခလင့်ကိုသာ ရရဟိသင့်သည်၊ သို့မဟသာ လူတိုင်သက ၎င်သကို ပဌောင်သလဲနိုင်သည် သို့မဟုတ် ထိုနေရာတလင် တစ်ခုခုရေသနိုင်မည်မဟုတ်ပေ။ အဲဒါတလေကို သော့ခတ်လို့ ခေါ်တာ။

ZooKeeper သည် သင့်အာသ ကပဌဿနာအာသလုံသကို အတိုင်သအတာတစ်ခု သို့မဟုတ် အခဌာသတစ်ခုအထိ ဖဌေရဟင်သနိုင်စေပါသည်။ ပဌီသတော့ အဲဒါက မင်သကို ဘယ်လို လုပ်ခလင့်ပေသသလဲ ဥပမာတလေနဲ့ ပဌမယ်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ပိတ်ဆို့ခဌင်သ၏ နောက်ဆက်တလဲမျာသ မရဟိပါ။ တစ်စုံတစ်ခုကို စတင်အသုံသပဌုသောအခါ၊ ကမူလဖဌစ်စဉ်သည် မည်သည့်ဖဌစ်ရပ်ကိုမဆို ဖဌစ်ပေါ်လာစေရန် စောင့်မည်မဟုတ်ပါ။ ဖဌစ်နိုင်ချေ အမျာသစုမဟာ၊ ကအရာသည် တစ်စုံတစ်ခုကို စောင့်ဆိုင်သနေစဉ် အချိန်ဆလဲမနေစေရန် လုပ်ငန်သစဉ်မျာသကို အချိန်မရလေသ တပဌိုင်နက် လုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။ ဒါက အရမ်သအသုံသဝင်တဲ့အရာပါ။

ဖောက်သည် တောင်သဆိုချက်အာသလုံသကို ယေဘူယျတန်သစီ၏ အစီအစဥ်အတိုင်သ လုပ်ဆောင်ပါသည်။

ဖောက်သည်မျာသသည် ပဌောင်သလဲထာသသောဒေတာကို ကိုယ်တိုင်မမဌင်မီ အချို့သောအခဌေအနေမျာသ၊ ဒေတာပဌောင်သလဲမဟုမျာသအကဌောင်သ၊ အပဌောင်သအလဲမျာသအကဌောင်သ အကဌောင်သကဌာသချက်ကို လက်ခံရရဟိရန် အခလင့်အရေသရဟိသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ZooKeeper သည် မုဒ်နဟစ်ခုဖဌင့် အလုပ်လုပ်နိုင်သည်။ ပထမတစ်ခုသည် node တစ်ခုပေါ်တလင် standalone ဖဌစ်သည်။ ဒါက စမ်သသပ်ဖို့ အဆင်ပဌေတယ်။ ၎င်သသည် မည်သည့်ဆာဗာမျာသပေါ်တလင်မဆို အစုလိုက်မုဒ်တလင်လည်သ လုပ်ဆောင်နိုင်သည်။ အကယ်၍ ကျလန်ုပ်တို့တလင် စက် 100 အစုအဝေသရဟိပါက စက် 100 တလင်အလုပ်လုပ်ရန်မလိုအပ်ပါ။ ZooKeeper သုံသနိုင်သော စက်မျာသစလာကို ရလေသချယ်ရန် လုံလောက်ပါသည်။ ၎င်သသည် မဌင့်မာသသောရရဟိနိုင်မဟုနိယာမကို ယောင်ဆောင်သည်။ လုပ်ဆောင်နေသည့် ဥပမာတစ်ခုစီတလင် ZooKeeper သည် အချက်အလက်တစ်ခုလုံသကို မိတ္တူတစ်ခု သိမ်သဆည်သထာသသည်။ နောက်မဟ သူဘယ်လိုလုပ်လဲ ပဌောပဌမယ်။ ၎င်သသည် ဒေတာကို မျဟဝေခဌင်သ သို့မဟုတ် ၎င်သကို ပိုင်သဖဌတ်ခဌင်သမပဌုပါ။ တစ်ဖက်တလင်၊ ကျလန်ုပ်တို့သည် မျာသစလာမသိမ်သဆည်သနိုင်သော အနုတ်လက္ခဏာတစ်ခုဖဌစ်ပဌီသ အခဌာသတစ်ဖက်တလင်မူ ထိုသို့လုပ်ဆောင်ရန် မလိုအပ်ပါ။ အဲဒါက ဒီဇိုင်သထုတ်ထာသတာ မဟုတ်ဘူသ၊ ဒေတာဘေ့စ် မဟုတ်ဘူသ။

ဒေတာကို client ဘက်တလင် သိမ်သဆည်သနိုင်သည်။ ကသည်မဟာ ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုကို အနဟောင့်အယဟက်မဖဌစ်စေဘဲ တူညီသောတောင်သဆိုမဟုမျာသဖဌင့် မတင်ရန် စံမူတစ်ခုဖဌစ်သည်။ စမတ်ဖောက်သည်တစ်ညသသည် ကအကဌောင်သကို အမျာသအာသဖဌင့်သိပဌီသ ၎င်သကို သိမ်သဆည်သထာသသည်။

ဥပမာအာသဖဌင့်၊ ကနေရာတလင် တစ်စုံတစ်ခု ပဌောင်သလဲသလာသသည်။ လျဟောက်လလဟာအမျိုသအစာသအချို့ရဟိသည်။ ဥပမာ- စာရေသခဌင်သ လုပ်ငန်သမျာသကို ဆောင်ရလက်ရာတလင် တာဝန်ရဟိသော ခေါင်သဆောင်အသစ်ကို ရလေသချယ်တင်မဌဟောက်ခဌင်သခံရသည်။ ပဌီသတော့ data တလေကို ထပ်တူလုပ်ချင်တယ်။ ဖဌေရဟင်သနည်သတစ်ခုကတော့ အဲဒါကို ကဌိုသဝိုင်သထဲမဟာ ထည့်ထာသဖို့ပါပဲ။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ဝန်ဆောင်မဟုကို အဆက်မပဌတ်မေသခလန်သထုတ်သည် - တစ်ခုခုပဌောင်သလဲသလာသပဌီလာသ။ ဒုတိယရလေသချယ်မဟုသည် ပို၍ အကောင်သဆုံသဖဌစ်သည်။ ၎င်သသည် သင့်အာသ တစ်စုံတစ်ခု ပဌောင်သလဲသလာသကဌောင်သ သုံသစလဲသူမျာသအာသ အသိပေသနိုင်သည့် နာရီယန္တရာသတစ်ခုဖဌစ်သည်။ ကသည်မဟာ အရင်သအမဌစ်မျာသနဟင့်ပတ်သက်ပဌီသ စျေသသက်သာပဌီသ ဖောက်သည်မျာသအတလက် ပိုမိုအဆင်ပဌေစေသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

Client သည် ZooKeeper ကိုအသုံသပဌုသောအသုံသပဌုသူဖဌစ်သည်။

ဆာဗာသည် ZooKeeper လုပ်ငန်သစဉ်ကိုယ်တိုင်ဖဌစ်သည်။

Znode သည် ZooKeeper ၏အဓိကအရာဖဌစ်သည်။ znodes အာသလုံသကို ZooKeeper မဟ မဟတ်ဉာဏ်တလင် သိမ်သဆည်သထာသပဌီသ သစ်ပင်ပုံစံဖဌင့် အထက်အောက်ပုံသဏ္ဍာန်ပုံစံဖဌင့် ဖလဲ့စည်သထာသသည်။

လည်ပတ်မဟု နဟစ်မျိုသရဟိသည်။ လုပ်ဆောင်ချက်အချို့သည် ကျလန်ုပ်တို့၏သစ်ပင်၏အခဌေအနေကို ပဌောင်သလဲသောအခါ ပထမအချက်မဟာ အပ်ဒိတ်/ရေသခဌင်သဖဌစ်ပါသည်။ သစ်ပင်က အဖဌစ်မျာသတယ်။

ထို့အပဌင် client သည် တောင်သဆိုချက်တစ်ခုအာသ မပဌီသမဌောက်ဘဲ အဆက်ပဌတ်သလာသခဌင်သ ဖဌစ်နိုင်သော်လည်သ ၎င်သသည် ZooKeeper နဟင့် အပဌန်အလဟန်တုံ့ပဌန်သည့် session တစ်ခုကို တည်ထောင်နိုင်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ZooKeeper ၏ ဒေတာမော်ဒယ်သည် ဖိုင်စနစ်နဟင့် ဆင်တူသည်။ စံအမဌစ်တစ်ခုရဟိပဌီသ၊ ထို့နောက် ကျလန်ုပ်တို့သည် root မဟသလာသသော လမ်သညလဟန်မျာသအတိုင်သသလာသပါသည်။ ပဌီသတော့ ပထမအဆင့်၊ ဒုတိယအဆင့် ကက်တလောက်။ ကသည်မဟာ znodes အာသလုံသဖဌစ်သည်။

znode တစ်ခုစီသည် ဒေတာအချို့ကို သိမ်သဆည်သနိုင်သည်၊ မျာသသောအာသဖဌင့် အလလန်မကဌီသသော ဥပမာ၊ 10 ကီလိုဘိုက်မျာသ။ znode တစ်ခုစီတလင် အချို့သော ကလေသအရေအတလက် ရဟိနိုင်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

Znodes အမျိုသအစာသမျာသစလာရဟိသည်။ ဖန်တီသနိုင်ကဌတယ်။ znode တစ်ခုဖန်တီသသောအခါ၊ ၎င်သနဟင့်သက်ဆိုင်သည့်အမျိုသအစာသကိုကျလန်ုပ်တို့သတ်မဟတ်ပေသသည်။

နဟစ်မျိုသရဟိပါတယ်။ ပထမတစ်ခုက ပေါ်ပင်အလံ။ Znode သည် session တစ်ခုအတလင်သနေထိုင်သည်။ ဥပမာအာသဖဌင့်၊ client သည် session တစ်ခုကို တည်ထောင်ထာသသည်။ ပဌီသတော့ ဒီ session က အသက်ရဟင်နေသရလေ့တော့ တည်ရဟိနေမဟာပါ။ မလိုအပ်သော အရာမျာသ မထုတ်လုပ်နိုင်ရန် ကအချက်သည် လိုအပ်ပါသည်။ ၎င်သသည် စက်ရဟင်တစ်ခုအတလင်သ ဒေတာ primitives မျာသကို သိမ်သဆည်သရန် အရေသကဌီသသည့်အချိန်မျာသအတလက်လည်သ သင့်လျော်ပါသည်။

ဒုတိယအမျိုသအစာသမဟာ ဆင့်ကဲအလံဖဌစ်သည်။ ၎င်သသည် znode သို့သလာသရာလမ်သတလင်ကောင်တာတိုသပေသသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့တလင် အပလီကေသရဟင်သ 1_5 ပါသည့် လမ်သညလဟန်တစ်ခုရဟိသည်။ ပထမ node ကိုဖန်တီသသောအခါ၊ ၎င်သသည် p_1၊ ဒုတိယ - p_2 ကိုရရဟိခဲ့သည်။ ကျလန်ုပ်တို့သည် ကနည်သလမ်သကို အကဌိမ်တိုင်သခေါ်ဆိုသောအခါ၊ ကျလန်ုပ်တို့သည် လမ်သကဌောင်သ၏ တစ်စိတ်တစ်ပိုင်သကိုသာ ညလဟန်ပဌပဌီသ လမ်သကဌောင်သတစ်ခုလုံသကို ကျော်သလာသကာ node အမျိုသအစာသကို ဆက်တိုက်ဖော်ပဌသောကဌောင့် ကနံပါတ်သည် အလိုအလျောက်တိုသလာပါသည်။

ပုံမဟန် znode သူမသည် အမဌဲနေထိုင်ပဌီသ ကျလန်ုပ်တို့ သူမကို ပဌောပဌသော နာမည်ရဟိသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

နောက်ထပ်အသုံသဝင်တာကတော့ နာရီအလံပါ။ ၎င်သကို ကျလန်ုပ်တို့ထည့်သလင်သပါက၊ client သည် သီသခဌာသ node တစ်ခုအတလက် အချို့သောဖဌစ်ရပ်မျာသကို စာရင်သသလင်သနိုင်ပါသည်။ အဲဒါကို ဘယ်လိုလုပ်ပဌီသပဌီလဲ နောက်မဟ ဥပမာပဌမယ်။ Node ပေါ်ရဟိ ဒေတာမျာသ ပဌောင်သလဲသလာသကဌောင်သ ZooKeeper ကိုယ်တိုင်က သုံသစလဲသူအာသ အသိပေသသည်။ သို့သော်၊ အကဌောင်သကဌာသချက်မျာသသည် အချို့သောဒေတာအသစ်မျာသရောက်ရဟိလာကဌောင်သ အာမမခံနိုင်ပါ။ တစ်ခုခုပဌောင်သလဲသလာသသည်ဟု ၎င်သတို့က ရိုသရိုသရဟင်သရဟင်သပဌောသောကဌောင့် နောက်ပိုင်သတလင် သီသခဌာသခေါ်ဆိုမဟုမျာသနဟင့် ဒေတာကို နဟိုင်သယဟဉ်ရန် လိုအပ်နေသေသသည်။

ကျလန်တော်ပဌောခဲ့သလိုပဲ ဒေတာရဲ့ အစီအစဥ်ကို ကီလိုဘိုက်နဲ့ ဆုံသဖဌတ်ပါတယ်။ ဒေတာဘေ့စ်တစ်ခုမဟုတ်သောကဌောင့် ၎င်သသည် ကဌီသမာသသော စာသာသဒေတာကို သိမ်သဆည်သရန်မလိုအပ်ပါ၊ ၎င်သသည် လုပ်ဆောင်ချက်ညဟိနဟိုင်သရေသဆာဗာတစ်ခုဖဌစ်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

သင်တန်သတလေအကဌောင်သ နည်သနည်သပဌောပဌမယ်။ ကျလန်ုပ်တို့တလင် ဆာဗာမျာသစလာရဟိပါက၊ session identifier ကို အသုံသပဌု၍ ဆာဗာမဟ ဆာဗာသို့ ပလင့်လင်သမဌင်သာစလာ ရလဟေ့ပဌောင်သနိုင်ပါသည်။ တော်တော်အဆင်ပဌေပါတယ်။

Session တစ်ခုစီတလင် အချိန်ကုန်ဆုံသမဟု တစ်မျိုသစီရဟိသည်။ ထိုစက်ရဟင်အတလင်သ ဖောက်သည်သည် ဆာဗာသို့ တစ်စုံတစ်ရာ ပေသပို့ခဌင်သ ရဟိ၊ အချိန်ကုန်သလာသချိန်တလင် မည်သည့်အရာမဟ မပို့ပါက၊ စက်ရဟင် ပျက်သလာသသည်၊ သို့မဟုတ် client သည် ၎င်သကို ကိုယ်တိုင်ပိတ်နိုင်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

၎င်သတလင် မျာသစလာသော အင်္ဂါရပ်မျာသ မပါရဟိသော်လည်သ က API ဖဌင့် မတူညီသောအရာမျာသကို သင်လုပ်ဆောင်နိုင်သည်။ ကျလန်ုပ်တို့ဖန်တီသထာသသော ခေါ်ဆိုမဟုသည် znode တစ်ခုကို ဖန်တီသပဌီသ ဘောင်သုံသခုကို ယူသည်။ ကသည်မဟာ znode သို့သလာသရာလမ်သကဌောင်သဖဌစ်ပဌီသ ၎င်သကို root မဟ အပဌည့်အစုံသတ်မဟတ်ထာသရပါမည်။ နောက်ပဌီသ ဒါက ကျလန်တော်တို့ အဲဒီကို လလဟဲပဌောင်သချင်တဲ့ ဒေတာတချို့လည်သ ဖဌစ်ပါတယ်။ အလံအမျိုသအစာသနဟင့်။ ဖန်တီသပဌီသနောက်၎င်သသည် znode သို့လမ်သကဌောင်သပဌန်ပေသသည်။

ဒုတိယအနေနဲ့ သင်က အဲဒါကို ဖျက်နိုင်တယ်။ ကတလင်လဟည့်ကလက်မဟာ znode သို့သလာသသည့်လမ်သကဌောင်သအပဌင် ဒုတိယ parameter သည် ဗာသရဟင်သကို သတ်မဟတ်နိုင်သည် ။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့လလဟဲပဌောင်သပေသသော ၎င်သ၏ဗာသရဟင်သသည် အမဟန်တကယ်ရဟိနေသည့် ဗာသရဟင်သနဟင့် ညီမျဟပါက အဆိုပါ znode ကို ဖျက်လိုက်ပါမည်။

ကဗာသရဟင်သကို ကျလန်ုပ်တို့ မစစ်ဆေသလိုပါက "-1" အငဌင်သအခုံကို ရိုသရိုသရဟင်သရဟင်သ ကျော်ဖဌတ်ပါ။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

တတိယ၊ ၎င်သသည် znode ၏တည်ရဟိမဟုကိုစစ်ဆေသသည်။ node ရဟိလျဟင် မဟန်သည်၊ မဟုတ်ပါက false ပဌန်ပေသသည်။

ထို့နောက် က node ကို စောင့်ကဌည့်ရန် ခလင့်ပဌုသည့် အလံနာရီ ပေါ်လာသည်။

ကအလံကို တည်ရဟိခဌင်သမရဟိသော ကုဒ်တစ်ခုပေါ်တလင်ပင် သင်သတ်မဟတ်နိုင်ပဌီသ ပေါ်လာသည့်အခါ အကဌောင်သကဌာသချက်တစ်ခု လက်ခံရရဟိနိုင်ပါသည်။ ဒါကလည်သ အသုံသဝင်နိုင်ပါတယ်။

နောက်ထပ် စိန်ခေါ်မဟုတလေ ရဟိပါသေသတယ်။ getData. ကျလန်ုပ်တို့သည် znode မဟတဆင့် data ကိုလက်ခံရရဟိနိုင်ကဌောင်သရဟင်သလင်သသည်။ အလံနာရီကိုလည်သ သုံသနိုင်သည်။ ကကိစ္စတလင်၊ node မရဟိပါက install လုပ်မည်မဟုတ်ပါ။ ထို့ကဌောင့်၊ ၎င်သသည် တည်ရဟိကဌောင်သ နာသလည်ရန် လိုအပ်ပဌီသ ဒေတာကို ရယူပါ။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

လည်သရဟိတယ်။ SetData. ကတလင်ကျလန်ုပ်တို့ဗာသရဟင်သကိုဖဌတ်သန်သပါ။ ၎င်သကိုကျလန်ုပ်တို့ဖဌတ်သန်သပါက၊ အချို့သောဗာသရဟင်သ၏ znode ပေါ်ရဟိဒေတာကိုမလမ်သမံမည်ဖဌစ်သည်။

ကစစ်ဆေသမဟုကို ဖယ်ထုတ်ရန် "-1" ကိုလည်သ သင် သတ်မဟတ်နိုင်သည်။

နောက်ထပ်အသုံသဝင်သောနည်သလမ်သတစ်ခုဖဌစ်သည်။ ကလေသယူပါ။. ၎င်သနဟင့်သက်ဆိုင်သည့် znode မျာသအာသလုံသ၏စာရင်သကိုလည်သ ကျလန်ုပ်တို့ရနိုင်သည်။ အလံနာရီကို သတ်မဟတ်ခဌင်သဖဌင့် ၎င်သကို ကျလန်ုပ်တို့ စောင့်ကဌည့်နိုင်ပါသည်။

နဟင့်နည်သလမ်သ ထပ်တူပဌုခဌင်သ ပဌောင်သလဲမဟုအာသလုံသကို တစ်ပဌိုင်နက် ပေသပို့နိုင်စေခဌင်သဖဌင့် ၎င်သတို့ကို သိမ်သဆည်သပဌီသ ဒေတာအာသလုံသကို လုံသဝပဌောင်သလဲသလာသကဌောင်သ သေချာစေပါသည်။

ပုံမဟန် ပရိုဂရမ်သမင်သစနစ်ဖဌင့် တူညီသောအချက်မျာသ ရေသဆလဲပါက၊ အကယ်၍ သင်သည် စာရေသရန်၊ ဒစ်ခ်သို့ တစ်ခုခုရေသပေသသည့် နည်သလမ်သမျာသကို အသုံသပဌုသည့်အခါ၊ ၎င်သသည် သင့်ထံ တုံ့ပဌန်မဟုကို ပဌန်ပေသပဌီသနောက်၊ သင်သည် ဒေတာကို ဒစ်ခ်သို့ ရေသထာသကဌောင်သ အာမခံချက်မရဟိပါ။ လည်ပတ်မဟုစနစ်သည် အရာအာသလုံသကို ရေသပဌီသကဌောင်သ ယုံကဌည်သောအခါတလင်ပင်၊ လုပ်ငန်သစဉ်သည် buffers အလလဟာမျာသမဟတစ်ဆင့် ဖဌတ်သန်သသလာသသည့် ဒစ်ခ်တလင် ယန္တရာသမျာသရဟိပဌီသ၊ ဒေတာကို ဒစ်ပေါ်တလင် ထာသရဟိပဌီသနောက်မဟသာ လုပ်ဆောင်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

အမျာသအာသဖဌင့် asynchronous ခေါ်ဆိုမဟုမျာသကို အသုံသပဌုသည်။ ဒါက client ကို မတူညီတဲ့ တောင်သဆိုချက်တလေနဲ့ အပဌိုင်အလုပ်လုပ်နိုင်စေတယ်။ synchronous ချဉ်သကပ်မဟုကို သင်သုံသနိုင်သော်လည်သ ၎င်သသည် အကျိုသနည်သသည်။

ကျလန်ုပ်တို့ပဌောခဲ့သော လုပ်ဆောင်ချက်နဟစ်ခုမဟာ ဒေတာကို ပဌောင်သလဲပေသသည့် အပ်ဒိတ်/ရေသခဌင်သ ဖဌစ်သည်။ ၎င်သတို့သည် ဖန်တီသခဌင်သ၊ setData၊ ထပ်တူပဌုခဌင်သ၊ ဖျက်ခဌင်သ တို့ဖဌစ်သည်။ ပဌီသသည်နဟင့်ဖတ်ရန်၊ getData၊ getChildren ရဟိနေသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ယခုတလင် ဖဌန့်ဝေမဟုစနစ်တလင် အလုပ်လုပ်ရန်အတလက် primitives မျာသကို သင်မည်ကဲ့သို့ပဌုလုပ်နိုင်ပုံ၏ ဥပမာအချို့။ ဥပမာအာသဖဌင့်၊ တစ်စုံတစ်ခု၏ဖလဲ့စည်သပုံနဟင့်သက်ဆိုင်သည်။ အလုပ်သမာသအသစ် ပေါ်လာတယ်။ ကျလန်ုပ်တို့သည် စက်ကိုထည့်သလင်သပဌီသ လုပ်ငန်သစဉ်ကို စတင်ခဲ့သည်။ ပဌီသတော့ အောက်ပါမေသခလန်သသုံသခုရဟိပါတယ်။ ဖလဲ့စည်သမဟုပုံစံအတလက် ZooKeeper ကို မည်သို့မေသမဌန်သသနည်သ။ configuration ကိုပဌောင်သချင်ရင်၊ ဘယ်လိုပဌောင်သမလဲ။ အဲဒါကို ငါတို့ပဌောင်သပဌီသရင် ငါတို့ရထာသတဲ့ အလုပ်သမာသတလေက ဘယ်လိုရလဲ။

ZooKeeper သည် ၎င်သကို အတော်လေသ လလယ်ကူစေသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့၏ znode tree ရဟိသည်။ ကနေရာတလင် ကျလန်ုပ်တို့၏အပလီကေသရဟင်သအတလက် node တစ်ခုရဟိသည်၊ ကျလန်ုပ်တို့သည် ၎င်သတလင် အပို node တစ်ခုကိုဖန်တီသပဌီသ configuration မဟဒေတာမျာသပါရဟိသည်။ ၎င်သတို့သည် သီသခဌာသကန့်သတ်ချက်မျာသ ဖဌစ်နိုင်သည် သို့မဟုတ် ဖဌစ်နိုင်သည်။ အရလယ်အစာသသည် သေသငယ်သောကဌောင့်၊ ဖလဲ့စည်သမဟုအရလယ်အစာသသည် အမျာသအာသဖဌင့် သေသငယ်သောကဌောင့် ကနေရာတလင် သိမ်သဆည်သရန် အတော်လေသ ဖဌစ်နိုင်သည်။

သင်အသုံသပဌုနေသောနည်သလမ်သ getData node မဟ အလုပ်သမာသအတလက် configuration ကိုရယူရန်။ အမဟန်ဟု သတ်မဟတ်သည်။ အကဌောင်သတစ်ခုခုကဌောင့် က node မရဟိပါက၊ ၎င်သကို ပေါ်လာသည့်အခါ သို့မဟုတ် ပဌောင်သလဲသည့်အခါတလင် ကျလန်ုပ်တို့အာသ အသိပေသပါမည်။ တစ်စုံတစ်ခု ပဌောင်သလဲသလာသကဌောင်သ သိချင်ပါက ၎င်သကို အမဟန်အဖဌစ် သတ်မဟတ်လိုက်ပါ။ ပဌီသတော့ ဒီ node ထဲက data တလေ ပဌောင်သသလာသရင်တော့ အဲဒါကို သိပါလိမ့်မယ်။

SetData. ကျလန်ုပ်တို့သည် ဒေတာကို သတ်မဟတ်ပဌီသ၊ “-1” ဟု သတ်မဟတ်သည်၊ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် ဗာသရဟင်သကို မစစ်ဆေသဘဲ၊ ကျလန်ုပ်တို့တလင် ဖလဲ့စည်သမဟုပုံစံတစ်ခု အမဌဲရဟိနေသည်ဟု ကျလန်ုပ်တို့ ယူဆသည်၊ ကျလန်ုပ်တို့သည် မျာသစလာသောဖလဲ့စည်သပုံမျာသကို သိမ်သဆည်သရန် မလိုအပ်ပါ။ အမျာသကဌီသ သိမ်သထာသဖို့ လိုရင် နောက်ထပ် အဆင့်တစ်ခု ထပ်ထည့်ဖို့ လိုပါလိမ့်မယ်။ ကတလင်တစ်ခုသာရဟိမည်ဟုကျလန်ုပ်တို့ယုံကဌည်သည်၊ ထို့ကဌောင့်ကျလန်ုပ်တို့သည်နောက်ဆုံသထလက်တစ်ခုတည်သကိုသာအပ်ဒိတ်လုပ်သောကဌောင့်ဗာသရဟင်သကိုမစစ်ဆေသပါ။ ယခုအချိန်တလင်၊ ယခင်က စာရင်သသလင်သထာသသည့် သုံသစလဲသူမျာသအာသလုံသသည် က node တလင် တစ်စုံတစ်ခု ပဌောင်သလဲသလာသကဌောင်သ အကဌောင်သကဌာသချက်ကို ရရဟိသည်။ သူတို့လက်ခံပဌီသရင် အချက်အလက်တလေကိုလည်သ ထပ်ပဌီသ တောင်သဆိုရမယ်။ အကဌောင်သကဌာသချက်မဟာ ၎င်သတို့ကိုယ်တိုင်က ဒေတာကို မရရဟိသော်လည်သ အပဌောင်သအလဲမျာသကို အသိပေသခဌင်သသာဖဌစ်သည်။ အဲဒါပဌီသရင် ဒေတာအသစ်တလေ တောင်သရမယ်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

primitive ကိုအသုံသပဌုရန် ဒုတိယရလေသချယ်မဟုမဟာ အုပ်စုအဖလဲ့ဝင်. ကျလန်ုပ်တို့တလင် ဖဌန့်ဝေထာသသော လျဟောက်လလဟာတစ်ခု ရဟိပဌီသ အလုပ်သမာသမျာသ အစုအဝေသ ရဟိနေပဌီသ ၎င်သတို့အာသလုံသ နေရာတလင် ရဟိနေကဌောင်သ နာသလည်ပေသစေလိုပါသည်။ ထို့ကဌောင့် ၎င်သတို့သည် ကျလန်ုပ်တို့၏လျဟောက်လလဟာတလင် အလုပ်လုပ်ရန် ၎င်သတို့ကိုယ်တိုင် မဟတ်ပုံတင်ရမည်ဖဌစ်သည်။ ထို့အပဌင် ကျလန်ုပ်တို့သည် Master လုပ်ငန်သစဉ်မဟဖဌစ်စေ အခဌာသတစ်နေရာတလင်ဖဌစ်စေ ကျလန်ုပ်တို့လက်ရဟိရရဟိနေသော တက်ကဌလသောအလုပ်သမာသမျာသအာသလုံသအကဌောင်သကိုလည်သ ကျလန်ုပ်တို့ သိရဟိလိုပါသည်။

ဒါကို ဘယ်လို လုပ်မလဲ။ အပလီကေသရဟင်သအတလက်၊ ကျလန်ုပ်တို့သည် အလုပ်သမာသ node တစ်ခုကို ဖန်တီသပဌီသ ဖန်တီသမဟုနည်သလမ်သကို အသုံသပဌု၍ ထိုနေရာတလင် အဆင့်ခလဲတစ်ခုကို ပေါင်သထည့်ပါသည်။ ဆလိုက်ပေါ်တလင် အမဟာသအယလင်သတစ်ခုရဟိသည်။ ဒီမဟာ မင်သလိုတယ်။ နောက်ဆက်တလဲ သတ်မဟတ်ပါ၊ ထို့နောက် အလုပ်သမာသအာသလုံသကို တစ်ညသပဌီသတစ်ယောက် ဖန်တီသပါမည်။ ပဌီသတော့ ဒီ node လေသတလေရဲ့ အချက်အလက်အာသလုံသကို တောင်သဆိုတဲ့ application ဟာ ရဟိနေတဲ့ တက်ကဌလတဲ့ အလုပ်သမာသအာသလုံသကို လက်ခံပါတယ်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

၎င်သသည် Java ကုဒ်တလင် ကကဲ့သို့ လုပ်ဆောင်နိုင်သည့် ဆိုသရလာသသော အကောင်အထည်ဖော်မဟုတစ်ခုဖဌစ်သည်။ အဓိကနည်သလမ်သဖဌင့် အဆုံသမဟစကဌပါစို့။ ဒါကျလန်ုပ်တို့ရဲ့အတန်သပါ၊ သူ့ရဲ့နည်သလမ်သကိုဖန်တီသကဌပါစို့။ ပထမအငဌင်သအခုံအဖဌစ် ကျလန်ုပ်တို့ချိတ်ဆက်နေသည့် host ကိုအသုံသပဌုသည်၊ ဆိုလိုသည်မဟာ ၎င်သကို အငဌင်သအခုံတစ်ခုအဖဌစ် သတ်မဟတ်သည်။ ဒုတိယအငဌင်သအခုံသည် အဖလဲ့၏အမည်ဖဌစ်သည်။

ချိတ်ဆက်မဟုက ဘယ်လိုဖဌစ်တာလဲ။ ကသည်မဟာ အသုံသပဌုသော API ၏ ရိုသရဟင်သသော ဥပမာတစ်ခုဖဌစ်သည်။ ကတလင်အရာအာသလုံသသည်အတော်လေသရိုသရဟင်သသည်။ စံအဆင့် ZooKeeper ရဟိပါသည်။ ကျလန်တော်တို့က အိမ်ရဟင်တလေကို လလဟဲပေသတယ်။ ဥပမာအာသဖဌင့် အချိန်ကုန်ဆုံသချိန်ကို 5 စက္ကန့်သတ်မဟတ်ပါ။ ပဌီသတော့ ကျလန်တော်တို့မဟာ connectionSignal လို့ခေါ်တဲ့ အဖလဲ့ဝင်တစ်ယောက်ရဟိတယ်။ အခဌေခံအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် ကူသစက်လမ်သကဌောင်သတစ်လျဟောက်တလင် အုပ်စုတစ်ခုကို ဖန်တီသသည်။ တစ်ခုခုရေသနိုင်ပေမယ့် အဲဒီနေရာမဟာ ဒေတာမရေသပါဘူသ။ ကနေရာတလင် node သည် persistent type ဖဌစ်သည်။ အခဌေခံအာသဖဌင့်၊ ၎င်သသည် အချိန်တိုင်သတည်ရဟိနေမည့် သာမန်ပုံမဟန် node တစ်ခုဖဌစ်သည်။ ကနေရာတလင် session ကိုဖန်တီသထာသသည်။ ဒါက client ကိုယ်တိုင်ရဲ့ အကောင်အထည်ဖော်မဟုပါ။ ကျလန်ုပ်တို့၏ဖောက်သည်သည် စက်ရဟင်အသက်ဝင်ကဌောင်သ ညလဟန်ပဌသော အချိန်အခါအလိုက် မက်ဆေ့ဂျ်မျာသ ပေသပို့ပါမည်။ ကျလန်ုပ်တို့သည် စက်ရဟင်ကို အဆုံသသတ်သောအခါတလင် ကျလန်ုပ်တို့သည် အနီသကပ်ခေါ်ဆိုကဌပဌီသ၊ အစည်သအဝေသ ပျက်သလာသပါသည်။ ကအရာသည် ကျလန်ုပ်တို့အတလက် တစ်ခုခု ပျက်သလာသပါက ZooKeeper သည် ၎င်သအကဌောင်သကို သိရဟိပဌီသ စက်ရဟင်ကို ဖဌတ်တောက်ရန်ဖဌစ်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

အရင်သအမဌစ်ကို ဘယ်လိုလော့ခ်ချမလဲ။ ကတလင်အရာအာသလုံသအနည်သငယ်ပိုရဟုပ်ထလေသသည်။ ကျလန်တော်တို့မဟာ အလုပ်သမာသတလေ အစုံရဟိတယ်၊ သော့ခတ်ချင်တဲ့ အရင်သအမဌစ်တလေရဟိတယ်။ ဒါကိုလုပ်ဖို့၊ ဥပမာ၊ lock1 လို့ခေါ်တဲ့ သီသခဌာသ node တစ်ခုကို ဖန်တီသတယ်။ အဲဒါကို ဖန်တီသနိုင်ရင် ဒီမဟာ သော့ခတ်လို့ရပါပဌီ။ ၎င်သကိုကျလန်ုပ်တို့မဖန်တီသနိုင်ခဲ့ပါက၊ အလုပ်သမာသသည် ကနေရာမဟ getData ကိုရယူရန်ကဌိုသစာသပဌီသ node ကိုဖန်တီသပဌီသဖဌစ်သောကဌောင့်၊ ကျလန်ုပ်တို့သည် စောင့်ကဌည့်သူအာသ ကနေရာတလင်ထာသရဟိပဌီသ က node ၏အခဌေအနေပဌောင်သလဲမဟုအခိုက်အတန့်တလင် ကျလန်ုပ်တို့သည် ၎င်သအကဌောင်သကို သိရဟိမည်ဖဌစ်ပါသည်။ ပဌီသတော့ အဲဒါကို ပဌန်ဖန်တီသဖို့ ကျလန်တော်တို့ ကဌိုသစာသနိုင်တယ်။ အကယ်၍ ကျလန်ုပ်တို့သည် က node ကိုယူကာ၊ ကသော့ကိုယူခဲ့ပါက၊ ထို့နောက် ကျလန်ုပ်တို့သည် သော့ကို မလိုအပ်တော့သည့်နောက်၊ node သည် session အတလင်သသာရဟိနေသောကဌောင့် ၎င်သကို စလန့်လလဟတ်လိုက်ပါမည်။ ထို့ကဌောင့် ပျောက်ကလယ်သလာသလိမ့်မည်။ အခဌာသစက်ရဟင်၏ မူဘောင်အတလင်သ အခဌာသ client သည် က node တလင် လော့ခ်ချနိုင်လိမ့်မည် သို့မဟုတ် တစ်ခုခုပဌောင်သလဲသလာသပဌီဖဌစ်ကဌောင်သ အသိပေသချက်ကို လက်ခံရရဟိမည်ဖဌစ်ပဌီသ ၎င်သကို အချိန်မီလုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ပင်မခေါင်သဆောင်ကို ဘယ်လိုရလေသချယ်နိုင်မလဲဆိုတာရဲ့ နောက်ထပ်ဥပမာတစ်ခု။ ၎င်သသည် အနည်သငယ်ပိုရဟုပ်ထလေသသော်လည်သ အတော်လေသရိုသရဟင်သပါသည်။ ဒီမဟာဘာတလေဖဌစ်နေတာလဲ? အလုပ်သမာသအာသလုံသကို စုစည်သပေသသည့် အဓိက ဆုံမဟတ်တစ်ခု ရဟိသည်။ ခေါင်သဆောင်နဟင့်ပတ်သက်သော အချက်အလက်မျာသကို ရယူရန် ကဌိုသစာသနေပါသည်။ အကယ်၍ ကအရာ အောင်မဌင်ခဲ့ပါက၊ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် ဒေတာအချို့ကို လက်ခံရရဟိပဌီသနောက်၊ ကျလန်ုပ်တို့၏ အလုပ်သမာသသည် ကခေါင်သဆောင်နောက်သို့ စတင်လိုက်ပါသည်။ ခေါင်သဆောင်ရဟိနေပဌီဟု ယုံကဌည်သည်။

ဥပမာအာသဖဌင့် ခေါင်သဆောင်က အကဌောင်သတစ်ခုခုကဌောင့် ပဌုတ်ကျရင်၊ ခေါင်သဆောင်အသစ်ကို ဖန်တီသဖို့ ကဌိုသစာသတယ်။ ငါတို့အောင်မဌင်ရင် ငါတို့အလုပ်သမာသက ခေါင်သဆောင်ဖဌစ်လာတယ်။ ဒီအချိန်မဟာ တစ်ယောက်ယောက်က ခေါင်သဆောင်အသစ်ကို ဖန်တီသနိုင်ခဲ့ရင်၊ ငါတို့က ဘယ်သူလဲဆိုတာ နာသလည်အောင်ကဌိုသစာသပဌီသ သူ့နောက်ကို လိုက်သလာသလိုက်ပါ။

ကတလင် အစုအပဌုံလိုက်အကျိုသသက်ရောက်မဟုသည် ဖဌစ်ပေါ်လာသည်၊ ဆိုလိုသည်မဟာ၊ ခေါင်သဆောင်တစ်ညသသေဆုံသသောအခါ၊ အချိန်မီမီသောသူသည် ခေါင်သဆောင်ဖဌစ်လာနိုင်သောကဌောင့်ဖဌစ်သည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

အရင်သအမဌစ်တစ်ခုအာသ ဖမ်သယူရာတလင် အောက်ပါအတိုင်သ အနည်သငယ်ကလဲပဌာသသောချဉ်သကပ်နည်သကို အသုံသပဌုရန် ကဌိုသစာသနိုင်သည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် သော့ခတ်ခဌင်သကို ရယူလိုသော်လည်သ hert အကျိုသသက်ရောက်မဟုမရဟိပါ။ ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သသည် သော့ခတ်ထာသပဌီသ ရဟိပဌီသသာသ node တစ်ခုအတလက် node ids မျာသစာရင်သကို တောင်သဆိုနေသောကဌောင့် ၎င်သတလင် ပါဝင်မည်ဖဌစ်သည်။ ကျလန်ုပ်တို့ဖန်တီသထာသသော သော့ခလောက်သည် ကျလန်ုပ်တို့လက်ခံရရဟိသည့် set ၏အသေသဆုံသဖဌစ်သည်ဆိုလျဟင်၊ ယင်သက ကျလန်ုပ်တို့သည် သော့ကိုဖမ်သမိပဌီဟု ဆိုလိုပါသည်။ ကျလန်ုပ်တို့သည် လော့ခ်ချခဌင်သကို လက်ခံရရဟိကဌောင်သ စစ်ဆေသပါသည်။ စစ်ဆေသမဟုတစ်ခုအနေဖဌင့် လော့ခ်အသစ်ဖန်တီသရာတလင် ကျလန်ုပ်တို့ရရဟိသော id သည် အနည်သငယ်မျဟသာရဟိသော အခဌေအနေတစ်ခုရဟိပါမည်။ လက်ခံရရဟိပါက၊ ဆက်လက်လုပ်ဆောင်သလာသပါမည်။

ကျလန်ုပ်တို့၏သော့ထက်ငယ်သော ID အချို့ရဟိပါက၊ ထို့နောက် ကျလန်ုပ်တို့သည် ကဖဌစ်ရပ်တလင် စောင့်ကဌည့်သူအာသ ထာသရဟိကာ တစ်စုံတစ်ခု ပဌောင်သလဲသလာသသည်အထိ အကဌောင်သကဌာသချက်ကို စောင့်ပါ။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် ကသော့ခတ်ခဌင်သကို လက်ခံရရဟိခဲ့သည်။ ပဌုတ်ကျသည်အထိ ကျလန်ုပ်တို့သည် အနိမ့်ဆုံသ id ဖဌစ်လာမည်မဟုတ်သည့်အပဌင် အနိမ့်ဆုံသသော့ကို လက်ခံရရဟိမည်မဟုတ်သောကဌောင့် ကျလန်ုပ်တို့သည် လော့ဂ်အင်ဝင်နိုင်မည်ဖဌစ်သည်။ အကယ်၍ ကအခဌေအနေနဟင့်မကိုက်ညီပါက၊ ကအချိန်အတောအတလင်သ တစ်ခုခုပဌောင်သလဲသလာသနိုင်သောကဌောင့် ကလော့ခ်ကို ချက်ချင်သရယူရန် ကဌိုသစာသပါ။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ZooKeeper တလင် အဘယ်အရာပါဝင်သနည်သ။ အဓိကအချက် ၄ ချက်ရဟိပါတယ်။ ၎င်သသည် စီမံဆောင်ရလက်ဆဲ လုပ်ငန်သစဉ်မျာသ - တောင်သဆိုချက်။ ZooKeeper Atomic Broadcast လည်သဖဌစ်ပါတယ်။ လုပ်ဆောင်ချက်အာသလုံသကို မဟတ်တမ်သတင်ထာသသည့် Commit Log တစ်ခုရဟိသည်။ နဟင့် In-memory Replicated DB ကိုယ်တိုင်၊ ဆိုလိုသည်မဟာ ကသစ်ပင်တစ်ခုလုံသကို သိမ်သဆည်သထာသသည့် ဒေတာဘေ့စ်ကိုယ်တိုင်ဖဌစ်သည်။

စာရေသခဌင်သလုပ်ငန်သအာသလုံသသည် Request Processor မဟတဆင့်သလာသသည်ကို သတိပဌုသင့်သည်။ နဟင့်ဖတ်ခဌင်သလုပ်ဆောင်ချက်မျာသသည် In-memory database သို့ တိုက်ရိုက်သလာသပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ဒေတာဘေ့စ်ကိုယ်တိုင်က အပဌည့်အဝ ထပ်တူလုပ်ထာသပါတယ်။ ZooKeeper ၏ဖဌစ်ရပ်အာသလုံသသည် အချက်အလက်အပဌည့်အစုံကို မိတ္တူတစ်ခုသိမ်သဆည်သထာသသည်။

ပျက်ကျပဌီသနောက် ဒေတာဘေ့စ်ကို ပဌန်လည်ရယူရန်အတလက်၊ Commit မဟတ်တမ်သတစ်ခု ရဟိပါသည်။ စံအလေ့အကျင့်တစ်ခုကတော့ ဒေတာမမ်မိုရီထဲကို မဝင်ခင်မဟာ ပျက်သလာသရင် ဒီလော့ဂ်ကို ပဌန်ဖလင့်နိုင်ပဌီသ စနစ်အခဌေအနေကို ပဌန်ယူနိုင်စေဖို့ အဲဒီနေရာမဟာ ရေသထာသပါတယ်။ ဒေတာဘေ့စ်၏ အချိန်အပိုင်သအခဌာသအလိုက် လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသကိုလည်သ အသုံသပဌုပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

ZooKeeper Atomic Broadcast သည် ပုံတူကူသထာသသော ဒေတာကို ထိန်သသိမ်သရန် အသုံသပဌုသည့် အရာတစ်ခုဖဌစ်သည်။

ZAB သည် ZooKeeper node ၏ရဟုထောင့်မဟ ခေါင်သဆောင်တစ်ညသကို အတလင်သပိုင်သမဟ ရလေသချယ်သည်။ အခဌာသ node မျာသသည် သူမ၏နောက်လိုက်မျာသဖဌစ်လာပဌီသ သူမထံမဟ လုပ်ဆောင်ချက်အချို့ကို မျဟော်လင့်ထာသသည်။ ဝင်ခလင့်ရရဟိပါက အာသလုံသကို ခေါင်သဆောင်ထံ ပေသပို့သည်။ သူသည် ပထမညသစလာ စာရေသခဌင်သလုပ်ငန်သကို လုပ်ဆောင်ပဌီသနောက် ၎င်သ၏နောက်လိုက်မျာသထံ အပဌောင်သအလဲမျာသအကဌောင်သ မက်ဆေ့ချ်ပေသပို့သည်။ ၎င်သသည် အမဟန်တကယ်အာသဖဌင့် အက်တမ်နည်သအရ လုပ်ဆောင်ရမည်၊ ဆိုလိုသည်မဟာ အရာတစ်ခုလုံသ၏ အသံသလင်သခဌင်သနဟင့် ထုတ်လလဟင့်ခဌင်သလုပ်ငန်သကို အက်တမ်ပုံစံအတိုင်သ လုပ်ဆောင်ရမည်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် ဒေတာညီညလတ်မဟုကို အာမခံပါသည်။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ" ၎င်သသည် တောင်သဆိုမဟုမျာသကို ရေသရန်သာ လုပ်ဆောင်သည်။ ၎င်သ၏အဓိကတာဝန်မဟာ လုပ်ဆောင်ချက်အာသ အရောင်သအ၀ယ်ဆိုင်ရာ အပ်ဒိတ်အဖဌစ်သို့ ပဌောင်သလဲပေသခဌင်သဖဌစ်သည်။ ကသည်မဟာ အထူသထုတ်လုပ်ထာသသော တောင်သဆိုချက်ဖဌစ်သည်။

ကနေရာတလင် တူညီသောလုပ်ဆောင်ချက်အတလက် အပ်ဒိတ်မျာသ၏ အစလမ်သသတ္တိမရဟိခဌင်သကို အာမခံကဌောင်သ ကနေရာတလင် သတိပဌုသင့်သည်။ ဒါဘာလဲ? ကအရာအာသ နဟစ်ကဌိမ်လုပ်ဆောင်ပါက တူညီသောအခဌေအနေရဟိမည်၊ ဆိုလိုသည်မဟာ တောင်သဆိုချက်သည် ပဌောင်သလဲမည်မဟုတ်ပါ။ ပျက်ကျသလာသသည့်အခါတလင် သင်သည် လည်ပတ်မဟုကို ပဌန်လည်စတင်နိုင်ပဌီသ လက်ရဟိအချိန်တလင် ပျက်သလာသသော အပဌောင်သအလဲမျာသကို ပဌန်လည်စတင်နိုင်ရန် ၎င်သကို လုပ်ဆောင်ရန်လိုအပ်သည်။ ကအခဌေအနေတလင်၊ စနစ်၏အခဌေအနေသည် တူညီလိမ့်မည်၊ ဆိုလိုသည်မဟာ တူညီသောစီသရီသမျာသ၊ ဥပမာ၊ အပ်ဒိတ်လုပ်ငန်သစဉ်မျာသသည် စနစ်၏မတူညီသောနောက်ဆုံသအခဌေအနေမျာသဆီသို့ ညသတည်သလာသသည့်ကိစ္စမျိုသ မဖဌစ်သင့်ပါ။

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

“ဟာဒူသ။ Mail.Ru Group Technostream စီသရီသမဟ ZooKeeper "Hadoop တလင် ဒေတာပမာဏမျာသစလာကို ဖဌန့်ဝေခဌင်သအတလက် နည်သလမ်သမျာသ"

source: www.habr.com

မဟတ်ချက် Add