"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"Hadoop. ZooKeeper" ከሚለው ተከታታይ "በሃዱፕ ውስጥ ትላልቅ ጥራዞችን ለማሰራጨት የሚረዱ ዘዴዎች" የሚለውን የንግግር ግልባጭ እንዲያነቡ እጠቁማለሁ.

ZooKeeper ምንድን ነው፣ በ Hadoop ስነ-ምህዳር ውስጥ ያለው ቦታ። ስለ ተከፋፈለ ኮምፒዩተር እውነት ያልሆነ ነገር። የመደበኛ ስርጭት ስርዓት ንድፍ. የተከፋፈሉ ስርዓቶችን የማስተባበር ችግር. የተለመዱ የማስተባበር ችግሮች. ከ ZooKeeper ንድፍ በስተጀርባ ያሉት መርሆዎች። ZooKeeper ውሂብ ሞዴል. znode ባንዲራዎች. ክፍለ-ጊዜዎች. የደንበኛ ኤፒአይ ፕሪሚቲቭስ (ማዋቀር, የቡድን አባልነት, ቀላል መቆለፊያዎች, የመሪዎች ምርጫ, ያለ መንጋ ውጤት መቆለፍ). ZooKeeper አርክቴክቸር። ZooKeeper DB ZAB. ተቆጣጣሪ ይጠይቁ።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ዛሬ ስለ ZooKeeper እንነጋገራለን. ይህ ነገር በጣም ጠቃሚ ነው. እሱ፣ ልክ እንደ ማንኛውም Apache Hadoop ምርት፣ አርማ አለው። ሰውን ያሳያል።

ከዚህ በፊት በዋነኛነት የተነጋገርነው መረጃ እዚያ እንዴት እንደሚካሄድ፣ እንዴት ማከማቸት እንዳለብን ማለትም እንደምንም እንደምንጠቀምበት እና እንደምንም ከእሱ ጋር እንደምንሰራ ነበር። እና ዛሬ ስለ ተከፋፈሉ አፕሊኬሽኖች ስለመገንባት ትንሽ ማውራት እፈልጋለሁ. እና ZooKeeper ይህንን ጉዳይ ለማቃለል ከሚፈቅዱት ውስጥ አንዱ ነው። ይህ በስርጭት ስርዓቶች ውስጥ ፣ በተከፋፈሉ አፕሊኬሽኖች ውስጥ የሂደቶችን መስተጋብር ለአንዳንድ ቅንጅቶች የታሰበ የአገልግሎት ዓይነት ነው።

የእንደዚህ አይነት አፕሊኬሽኖች ፍላጎት በየቀኑ ከጊዜ ወደ ጊዜ እየጨመረ ነው, የእኛ ኮርስ ስለዚያ ነው. በአንድ በኩል፣ MapReduce እና ይህ ዝግጁ የሆነ ማዕቀፍ ይህንን ውስብስብነት ደረጃ ለማውጣት እና ፕሮግራመርን እንደ መስተጋብር እና የሂደቶችን ቅንጅት ካሉ ጥንታዊ ጽሑፎችን ነፃ ለማድረግ ያስችልዎታል። በሌላ በኩል ግን ይህ በምንም መልኩ መከናወን እንደሌለበት ማንም ዋስትና አይሰጥም። MapReduce ወይም ሌሎች ዝግጁ የሆኑ ማዕቀፎች ሁልጊዜ ይህንን በመጠቀም ሊተገበሩ የማይችሉ አንዳንድ ጉዳዮችን ሙሉ በሙሉ አይተኩም። MapReduce እራሱን እና ሌሎች የ Apache ፕሮጄክቶችን ጨምሮ፣ እነሱ፣ በእውነቱ፣ እንዲሁም የሚሰራጩ መተግበሪያዎች ናቸው። እና መጻፍ ቀላል ለማድረግ, ZooKeeper ጻፉ.

ልክ እንደ ሁሉም ከሃዱፕ ጋር የተገናኙ መተግበሪያዎች፣ በYahoo! አሁን ደግሞ ኦፊሴላዊ Apache መተግበሪያ ነው። እንደ HBase በንቃት አልዳበረም። ወደ JIRA HBase ከሄዱ ታዲያ በየቀኑ ብዙ የሳንካ ሪፖርቶች አሉ ፣ የሆነ ነገር ለማመቻቸት ብዙ ሀሳቦች አሉ ፣ ማለትም በፕሮጀክቱ ውስጥ ያለው ሕይወት ያለማቋረጥ ይከናወናል። እና ZooKeeper, በአንድ በኩል, በአንጻራዊነት ቀላል ምርት ነው, በሌላ በኩል, ይህ አስተማማኝነቱን ያረጋግጣል. እና ለመጠቀም በጣም ቀላል ነው፣ ለዚህም ነው በሃዱፕ ስነ-ምህዳር ውስጥ ባሉ መተግበሪያዎች ውስጥ መደበኛ የሆነው። ስለዚህ እንዴት እንደሚሰራ እና እንዴት እንደሚጠቀሙበት ለመረዳት እሱን መከለስ ጠቃሚ ነው ብዬ አስቤ ነበር።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ይህ ከነበረን የአንዳንድ ንግግር ምስል ነው። እስካሁን ካየናቸው ነገሮች ሁሉ ኦርቶጎን ነው ማለት እንችላለን። እና እዚህ የተመለከተው ነገር ሁሉ በአንድ ዲግሪ ወይም በሌላ ከ ZooKeeper ጋር ይሰራል, ማለትም, እነዚህን ሁሉ ምርቶች የሚጠቀም አገልግሎት ነው. HDFSም ሆኑ MapReduce ለእነርሱ የሚሠሩትን የራሳቸውን ተመሳሳይ አገልግሎቶች አይጽፉም። በዚህ መሠረት, ZooKeeper ጥቅም ላይ ይውላል. እና ይሄ እድገትን እና አንዳንድ ከስህተቶች ጋር የተያያዙ ነገሮችን ቀላል ያደርገዋል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ይህ ሁሉ የመጣው ከየት ነው? በተለያዩ ኮምፒውተሮች ላይ በትይዩ ሁለት አፕሊኬሽኖችን ያስጀመርን ይመስላል፣ በገመድ ወይም በሜሽ ያገናኘናቸው እና ሁሉም ነገር ይሰራል። ችግሩ ግን አውታረ መረቡ አስተማማኝ አይደለም, እና ትራፊክን ካሸቱት ወይም እዚያ ምን እየተከናወነ እንዳለ በዝቅተኛ ደረጃ ላይ, ደንበኞች በአውታረ መረቡ ላይ እንዴት እንደሚገናኙ ከተመለከቱ, አንዳንድ እሽጎች እንደጠፉ ወይም እንደገና እንደሚላኩ ማየት ይችላሉ. የ TCP ፕሮቶኮሎች የተፈጠሩት በከንቱ አይደለም፣ ይህም የተወሰነ ክፍለ ጊዜ ለመመስረት እና የመልእክት አቅርቦትን ዋስትና ለመስጠት ያስችላል። ግን በማንኛውም ሁኔታ, TCP እንኳን ሁልጊዜ ሊያድንዎት አይችልም. ሁሉም ነገር ጊዜው ያለፈበት ነው። አውታረ መረቡ በቀላሉ ለተወሰነ ጊዜ ሊወድቅ ይችላል። ዝም ብሎ ብልጭ ድርግም የሚል ሊሆን ይችላል። እና ይህ ሁሉ በአውታረ መረቡ ላይ አስተማማኝ መሆን ወደማትችል እውነታ ይመራል. ይህ በአንድ ኮምፒዩተር ላይ ወይም በአንድ ሱፐር ኮምፒዩተር ላይ የሚሰሩ ትይዩ አፕሊኬሽኖችን ከመፃፍ ዋናው ልዩነት ነው ኔትዎርክ በሌለበት ፣በማህደረ ትውስታ ውስጥ የበለጠ አስተማማኝ የመረጃ ልውውጥ አውቶቡስ ባለበት። እና ይህ መሠረታዊ ልዩነት ነው.

ከሌሎች ነገሮች በተጨማሪ ኔትወርክን ሲጠቀሙ ሁልጊዜ የተወሰነ መዘግየት አለ. ዲስኩ እንዲሁ አለው ፣ ግን አውታረ መረቡ ብዙ አለው። መዘግየት አንዳንድ የመዘግየት ጊዜ ነው፣ እሱም ትንሽ ወይም በጣም ጠቃሚ ሊሆን ይችላል።

የኔትወርክ ቶፖሎጂ እየተቀየረ ነው። ቶፖሎጂ ምንድን ነው - ይህ የእኛ የአውታረ መረብ መሣሪያ አቀማመጥ ነው። የውሂብ ማእከሎች አሉ, እዚያ የሚቆሙ መደርደሪያዎች አሉ, ሻማዎች አሉ. ይህ ሁሉ እንደገና ሊገናኝ, ሊንቀሳቀስ, ወዘተ ሊሆን ይችላል. ይህ ሁሉ እንዲሁ ግምት ውስጥ መግባት አለበት. የአይ ፒ ስሞች ይቀየራሉ፣ የእኛ የትራፊክ መሄጃ መንገዶች ይቀየራሉ። ይህ ደግሞ ግምት ውስጥ መግባት ይኖርበታል.

አውታረ መረቡ በመሳሪያዎችም ሊለወጥ ይችላል። ከተግባር ጀምሮ የኛ የኔትወርክ መሐንዲሶች በእርግጥ በሻማዎቹ ላይ የሆነ ነገር በየጊዜው ማዘመን ይወዳሉ ማለት እችላለሁ። በድንገት አዲስ ፈርምዌር ወጣ እና ለአንዳንድ የሃዱፕ ክላስተር ፍላጎት አልነበራቸውም። የራሳቸው ሥራ አላቸው። ለእነሱ, ዋናው ነገር አውታረ መረቡ ይሰራል. በዚህ መሠረት አንድ ነገር እዚያ እንደገና መጫን ይፈልጋሉ, በሃርድዌር ላይ ብልጭ ድርግም ይላሉ, እና ሃርድዌሩ በየጊዜው ይለዋወጣል. ይህ ሁሉ በሆነ መንገድ ግምት ውስጥ መግባት ይኖርበታል. ይህ ሁሉ በተሰራጨው መተግበሪያችን ላይ ተጽዕኖ ያሳድራል።

ብዙውን ጊዜ በሆነ ምክንያት በከፍተኛ መጠን ውሂብ መስራት የጀመሩ ሰዎች አውታረ መረቡ ገደብ የለሽ ነው ብለው ያምናሉ። ብዙ ቴራባይት ያለው ፋይል ካለ ወደ አገልጋይዎ ወይም ኮምፒተርዎ ወስደው በመጠቀም መክፈት ይችላሉ። ድመት እና ተመልከት. ሌላ ስህተት ገብቷል። Vim መዝገቦችን ተመልከት. ይህንን በጭራሽ አታድርጉ ምክንያቱም መጥፎ ነው። ቪም ሁሉንም ነገር ለመዝጋት ስለሚሞክር፣ ሁሉንም ነገር ወደ ማህደረ ትውስታ ጫን፣ በተለይም በዚህ ሎግ ውስጥ መንቀሳቀስ ስንጀምር እና የሆነ ነገር ስንፈልግ። እነዚህ የተረሱ ነገሮች ናቸው, ግን ግምት ውስጥ መግባት አለባቸው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

በአንድ ፕሮሰሰር በአንድ ኮምፒውተር ላይ የሚሰራ አንድ ፕሮግራም መፃፍ ቀላል ነው።

ስርዓታችን ሲያድግ ሁሉንም ትይዩ ማድረግ እንፈልጋለን እና በኮምፒዩተር ላይ ብቻ ሳይሆን በክላስተር ላይም ጭምር። ጥያቄው የሚነሳው-ይህን ጉዳይ እንዴት ማስተባበር ይቻላል? አፕሊኬሽኖቻችን እርስበርስ መስተጋብር ላይፈጥሩ ይችሉ ይሆናል፣ ነገር ግን በርካታ ሂደቶችን በበርካታ ሰርቨሮች ላይ በትይዩ እንሰራ ነበር። እና ሁሉም ነገር ለእነሱ ጥሩ መሆኑን እንዴት መከታተል እንደሚቻል? ለምሳሌ, በኢንተርኔት ላይ የሆነ ነገር ይልካሉ. ስለ ግዛታቸው የሆነ ቦታ ላይ መጻፍ አለባቸው፡ ለምሳሌ፡ በአንድ ዓይነት ዳታቤዝ ወይም ሎግ ውስጥ፡ ከዚያም ይህን ምዝግብ ማስታወሻ በማዋሃድ ከዚያም የሆነ ቦታ መተንተን አለባቸው። በተጨማሪም ፣ ሂደቱ እየሰራ እና እየሰራ መሆኑን ከግምት ውስጥ ማስገባት አለብን ፣ በድንገት አንድ ስህተት በእሱ ውስጥ ታየ ወይም ተሰናክሏል ፣ ከዚያ ስለ እሱ ምን ያህል በፍጥነት እናገኛለን?

ይህ ሁሉ በፍጥነት ክትትል ሊደረግበት እንደሚችል ግልጽ ነው. ይህ ደግሞ ጥሩ ነው, ነገር ግን ክትትል አንዳንድ ነገሮችን በከፍተኛ ደረጃ እንዲከታተሉ የሚያስችልዎ ውስን ነገር ነው.

የእኛ ሂደቶች እርስ በርስ መስተጋብር እንዲጀምሩ ስንፈልግ, ለምሳሌ, አንዳችን ለሌላው አንዳንድ መረጃዎችን ለመላክ, ከዚያም ጥያቄው ይነሳል - ይህ እንዴት ይሆናል? አንድ ዓይነት የዘር ሁኔታ ይኖራል, እርስ በእርሳቸው ይፃፉ, ውሂቡ በትክክል ይደርሳል, በመንገድ ላይ የሆነ ነገር ይጠፋል? አንድ ዓይነት ፕሮቶኮል ማዘጋጀት አለብን, ወዘተ.

የእነዚህ ሁሉ ሂደቶች ቅንጅት ቀላል ነገር አይደለም. እና ገንቢው ወደ ዝቅተኛ ደረጃ እንዲወርድ ያስገድደዋል, እና ስርዓቶችን ከባዶ አይደለም, ወይም ከባዶ አይደለም, ነገር ግን ይህ በጣም ቀላል አይደለም.

ክሪፕቶግራፊክ ስልተ-ቀመር ካመጡ ወይም እሱን ተግባራዊ ካደረጉ ወዲያውኑ ይጣሉት ፣ ምክንያቱም ምናልባት ለእርስዎ ላይሰራ ይችላል። እርስዎ ለማቅረብ የረሷቸውን ብዙ ስህተቶችን ይይዛል። ለከባድ ነገር በጭራሽ አይጠቀሙበት ምክንያቱም ምናልባት ያልተረጋጋ ሊሆን ይችላል። ምክንያቱም ሁሉም ስልተ ቀመሮች በጊዜ ተፈትነዋል በጣም ረጅም ጊዜ። በማህበረሰቡ ተበላሽቷል። ይህ የተለየ ርዕስ ነው። እና እዚህ ተመሳሳይ ነው. አንድ ዓይነት የሂደት ማመሳሰልን እራስዎ አለመተግበር ከተቻለ ይህንን ባታደርጉት ይሻላል ምክንያቱም በጣም የተወሳሰበ እና ያለማቋረጥ ስህተቶችን ለመፈለግ ወደ መንቀጥቀጥ መንገድ ይመራዎታል።

ዛሬ ስለ ZooKeeper እየተነጋገርን ነው. በአንድ በኩል ማዕቀፍ ነው, በሌላ በኩል, ለገንቢው ህይወትን ቀላል የሚያደርግ እና በተቻለ መጠን የአመክንዮአዊ አተገባበርን እና የሂደታችንን ቅንጅት ቀላል የሚያደርግ አገልግሎት ነው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

መደበኛ የተከፋፈለ ስርዓት ምን እንደሚመስል እናስታውስ። የተነጋገርነው ይህ ነው - ኤችዲኤፍኤስ ፣ ኤችቢሴ። የሰራተኞች እና የባሪያ ሂደቶችን የሚያስተዳድር የማስተር ሂደት አለ። ሥራዎችን የማቀናጀትና የማከፋፈል፣ ሠራተኞችን እንደገና የማስጀመር፣ አዳዲሶችን የማስጀመር እና ጭነቱን የማከፋፈል ኃላፊነት አለበት።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

የበለጠ የላቀ ነገር የማስተባበር አገልግሎት ነው፣ ማለትም፣ የማስተባበር ስራውን እራሱ ወደተለየ ሂደት ያንቀሳቅሱት፣ በተጨማሪም አንዳንድ አይነት ምትኬን ወይም ስታንባይ ማስተርን በትይዩ ያሂዱ፣ ምክንያቱም ጌታው ሊሳካ ይችላል። መምህሩ ከወደቀ ደግሞ ስርዓታችን አይሰራም። ምትኬን እየሰራን ነው። አንዳንዶቹ ማስተር ወደ ምትኬ መድገም እንዳለበት ይናገራሉ። ይህ ደግሞ ለማስተባበር አገልግሎት በአደራ ሊሰጥ ይችላል። በዚህ ሥዕል ላይ ግን ሠራተኞቹን የማስተባበር ኃላፊነቱ መምህሩ ራሱ ነው፤ እዚህ አገልግሎቱ የመረጃ ማባዛት ሥራዎችን እያስተባበረ ነው።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

የበለጠ የላቀ አማራጭ ሁሉም ቅንጅት በአገልግሎታችን ሲከናወን ነው፣ እንደተለመደው። ሁሉም ነገር እንደሚሰራ ለማረጋገጥ ሃላፊነቱን ይወስዳል. እና የሆነ ነገር ካልሰራ, ስለእሱ ለማወቅ እና በዚህ ሁኔታ ውስጥ ለመዞር እንሞክራለን. ለማንኛውም ከባሪያዎች ጋር እንደምንም የሚገናኝ እና ዳታ፣መረጃ፣መልእክት ወዘተ የሚልክ አገልግሎት የሚሰጥ መምህር ቀርተናል።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

የበለጠ የላቀ እቅድ አለ፣ ጌታ ከሌለን ሁሉም አንጓዎች በባህሪያቸው የተለዩ ዋና ባሮች ናቸው። ግን አሁንም እርስ በርስ መግባባት ያስፈልጋቸዋል, ስለዚህ እነዚህን ድርጊቶች ለማስተባበር አሁንም የተወሰነ አገልግሎት ይቀራል. ምናልባት, በዚህ መርህ ላይ የሚሰራው ካሳንድራ, ለዚህ እቅድ ተስማሚ ነው.

ከእነዚህ እቅዶች ውስጥ የትኛው የተሻለ እንደሚሰራ ለመናገር አስቸጋሪ ነው. እያንዳንዳቸው የራሳቸው ጥቅሞች እና ጉዳቶች አሏቸው።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

እና አንዳንድ ነገሮችን ከመምህሩ ጋር መፍራት አያስፈልግም, ምክንያቱም እንደ ልምምድ እንደሚያሳየው, ያለማቋረጥ ለማገልገል በጣም የተጋለጠ አይደለም. እዚህ ያለው ዋናው ነገር ይህንን አገልግሎት በተለየ ኃይለኛ መስቀለኛ መንገድ ለማስተናገድ ትክክለኛውን መፍትሄ መምረጥ ነው, ስለዚህም በቂ ሀብቶች እንዲኖሩት, ከተቻለ ተጠቃሚዎች እዚያ እንዳይደርሱበት, ይህን ሂደት በድንገት እንዳይገድሉት. ግን በተመሳሳይ ጊዜ, በእንደዚህ አይነት እቅድ ውስጥ ሰራተኞችን ከማስተር ሂደቱ ማስተዳደር በጣም ቀላል ነው, ማለትም ይህ እቅድ ከትግበራው አንፃር ቀላል ነው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

እና ይህ እቅድ (ከላይ) ምናልባት የበለጠ ውስብስብ ነው, ግን የበለጠ አስተማማኝ ነው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ዋናው ችግር ከፊል ውድቀት ነው. ለምሳሌ በኔትወርኩ ላይ መልእክት ስንልክ አንድ ዓይነት አደጋ ይከሰታል መልእክቱን የላከው ሰው መልእክቱ እንደደረሰው እና በተቀባዩ በኩል የተፈጠረውን ነገር አያውቅም መልእክቱ በትክክል መካሄዱን አያውቅም። , ማለትም ምንም ማረጋገጫ አይቀበልም.

በዚህ መሠረት, ይህንን ሁኔታ ማካሄድ አለብን. እና ቀላሉ ነገር ይህንን መልእክት እንደገና መላክ እና ምላሽ እስክንቀበል ድረስ መጠበቅ ነው። በዚህ ሁኔታ, የተቀባዩ ሁኔታ እንደተለወጠ ግምት ውስጥ አይገቡም. መልእክት ልከን እና ተመሳሳይ ውሂብ ሁለት ጊዜ ልንጨምር እንችላለን።

ZooKeeper እንደዚህ አይነት እምቢታዎችን ለመቋቋም መንገዶችን ያቀርባል ይህም ህይወታችንን ቀላል ያደርገዋል።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ትንሽ ቀደም ብሎ እንደተገለፀው, ይህ ባለብዙ-ክር ፕሮግራሞችን ከመጻፍ ጋር ተመሳሳይ ነው, ነገር ግን ዋናው ልዩነት በተለያዩ ማሽኖች ላይ በምንገነባው በተከፋፈሉ አፕሊኬሽኖች ውስጥ, የመገናኛ ዘዴው ኔትወርክ ብቻ ነው. በመሰረቱ፣ ይህ የጋራ-ምንም አርክቴክቸር ነው። በአንድ ማሽን ላይ የሚሰራ እያንዳንዱ ሂደት ወይም አገልግሎት የራሱ ማህደረ ትውስታ፣ የራሱ ዲስክ፣ የራሱ ፕሮሰሰር አለው፣ ከማንም ጋር የማይጋራው።

በአንድ ኮምፒዩተር ላይ ባለ ብዙ-ክር ፕሮግራም ከጻፍን, ከዚያም የጋራ ማህደረ ትውስታን በመጠቀም መረጃን መለዋወጥ እንችላለን. እዚያ የአውድ መቀየሪያ አለን, ሂደቶች መቀየር ይችላሉ. ይህ በአፈፃፀም ላይ ተጽዕኖ ያሳድራል. በአንድ በኩል, በክላስተር ላይ በፕሮግራሙ ውስጥ እንደዚህ አይነት ነገር የለም, ነገር ግን በኔትወርክ ላይ ችግሮች አሉ.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

በዚህ መሠረት የተከፋፈሉ ስርዓቶችን በሚጽፉበት ጊዜ የሚነሱ ዋና ዋና ችግሮች ውቅር ናቸው. አንድ ዓይነት መተግበሪያ እየጻፍን ነው። ቀላል ከሆነ በኮዱ ውስጥ ያሉትን ሁሉንም አይነት ቁጥሮች በሃርድ ኮድ እናስቀምጠዋለን ነገር ግን ይህ የማይመች ነው ምክንያቱም የግማሽ ሰከንድ ጊዜ ከማለቁ ይልቅ የአንድ ሰከንድ ጊዜ ማለፍ እንፈልጋለን ብለን ከወሰንን አፕሊኬሽኑን እንደገና ማጠናቀር አለብን እና ሁሉንም ነገር እንደገና ይንከባለል. በአንድ ማሽን ላይ አንድ ነገር ነው, እንደገና ማስጀመር ሲችሉ, ነገር ግን ብዙ ማሽኖች ሲኖረን, ሁሉንም ነገር ያለማቋረጥ መቅዳት አለብን. አፕሊኬሽኑን ለማዋቀር መሞከር አለብን።

እዚህ እየተነጋገርን ያለነው ስለ የስርዓት ሂደቶች የማይንቀሳቀስ ውቅር ነው። ይህ ሙሉ በሙሉ አይደለም, ምናልባት ከስርዓተ ክወናው እይታ አንጻር, ለሂደቶቻችን የማይለዋወጥ ውቅር ሊሆን ይችላል, ማለትም, ይህ በቀላሉ ሊወሰድ እና ሊዘመን የማይችል ውቅር ነው.

ተለዋዋጭ ውቅርም አለ. እነዚህ እዚያ እንዲወሰዱ በበረራ ላይ ለመለወጥ የምንፈልጋቸው መለኪያዎች ናቸው.

እዚህ ያለው ችግር ምንድን ነው? አወቃቀሩን አዘምነነዋል፣ ገለበጥነው፣ እና ምን? ችግሩ በአንድ በኩል አወቃቀሩን አውጥተናል, ነገር ግን ስለ አዲሱ ነገር ረሳው, ውቅሩ እዚያው እንደቆየ ሊሆን ይችላል. በሁለተኛ ደረጃ፣ እየለቀቅን ሳለ፣ አወቃቀሩ በአንዳንድ ቦታዎች ተዘምኗል፣ ግን በሌሎች ላይ አይደለም። እና በአንድ ማሽን ላይ የሚሰሩ አንዳንድ የመተግበሪያችን ሂደቶች በአዲስ ውቅር እና የሆነ ቦታ ከአሮጌ ጋር እንደገና ተጀምረዋል። ይህ የእኛ የተከፋፈለ መተግበሪያ ከውቅረት አንፃር ወጥነት የሌለው እንዲሆን ሊያደርግ ይችላል። ይህ ችግር የተለመደ ነው. ለተለዋዋጭ ውቅረት, በበረራ ላይ ሊለወጥ እንደሚችል ስለሚያመለክት የበለጠ ተዛማጅ ነው.

ሌላው ችግር የቡድን አባልነት ነው። እኛ ሁል ጊዜ አንዳንድ የሰራተኞች ስብስብ አለን ፣ ሁል ጊዜ ከመካከላቸው የትኛው በሕይወት እንዳለ ፣ ከመካከላቸው የትኛው እንደሞተ ማወቅ እንፈልጋለን። ማስተር ካለ ታዲያ የትኛዎቹ ሰራተኞች ስሌት እንዲሰሩ ወይም በመረጃ እንዲሰሩ ወደ ደንበኞቻቸው ሊዘዋወሩ እንደሚችሉ እና የማይችለውን መረዳት አለበት። በየጊዜው የሚነሳው ችግር በክላስተር ውስጥ ማን እየሰራ እንደሆነ ማወቅ አለብን።

ሌላው ዓይነተኛ ችግር የመሪዎች ምርጫ ነው, ማን እንደሚመራው ማወቅ ስንፈልግ. አንድ ምሳሌ ማባዛት ነው፣ አንዳንድ ሂደት ሲኖረን የመፃፍ ስራዎችን የሚቀበል እና ከዚያም ከሌሎች ሂደቶች መካከል የሚደጋገም። እሱ መሪ ይሆናል, ሁሉም ይታዘዙታል, ይከተሉታል. ሁለት መሪዎች መመረጣቸው እንዳይታወቅ ለሁሉም ሰው የማያሻማ እንዲሆን ሂደትን መምረጥ ያስፈልጋል።

እርስ በርሱ የሚስማማ መዳረሻም አለ። እዚህ ያለው ችግር የበለጠ የተወሳሰበ ነው. ባለብዙ-ክር ፕሮግራሞችን ሲጽፉ እና አንዳንድ ሀብቶችን ማግኘት ሲፈልጉ ፣ ለምሳሌ ፣ የማስታወሻ ሴል ፣ በአንድ ክር ብቻ እንዲገደቡ እና እንዲከናወኑ እንደ ሙቴክስ ያለ ነገር አለ ። እዚህ ሀብቱ የበለጠ ረቂቅ ነገር ሊሆን ይችላል። እና ከተለያዩ የአውታረ መረቡ አንጓዎች የመጡ የተለያዩ አፕሊኬሽኖች ልዩ መዳረሻን ማግኘት ያለባቸው ለተጠቀሰው ሃብት ብቻ ነው እንጂ ሁሉም ሰው እንዲለውጠው ወይም የሆነ ነገር እንዲጽፍ አይደለም። እነዚህ መቆለፊያዎች የሚባሉት ናቸው.

ZooKeeper እነዚህን ሁሉ ችግሮች በአንድ ዲግሪ ወይም በሌላ እንዲፈቱ ይፈቅድልዎታል. እና ይህን ለማድረግ እንዴት እንደሚፈቅድልዎ በምሳሌዎች አሳይሻለሁ.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ምንም የሚያግድ ፕሪሚቲቭ የለም. የሆነ ነገር መጠቀም ስንጀምር ይህ ፕሪሚቲቭ ምንም አይነት ክስተት እስኪከሰት ድረስ አይጠብቅም። ምናልባትም ፣ ይህ ነገር ባልተመሳሰል ሁኔታ ይሰራል ፣ በዚህም አንድ ነገር እየጠበቁ ሳሉ ሂደቶች እንዳይሰቀሉ ያስችላቸዋል። ይህ በጣም ጠቃሚ ነገር ነው.

ሁሉም የደንበኛ ጥያቄዎች በአጠቃላይ ወረፋ ቅደም ተከተል ይከናወናሉ.

እና ደንበኞች ደንበኛው የተለወጠውን ውሂብ እራሳቸው ከማየታቸው በፊት ስለ አንዳንድ ግዛት ለውጦች, ስለ ውሂብ ለውጦች ማሳወቂያ የመቀበል እድል አላቸው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ZooKeeper በሁለት ሁነታዎች መስራት ይችላል። የመጀመሪያው ብቻውን ነው, በአንድ አንጓ ላይ. ይህ ለሙከራ ምቹ ነው. እንዲሁም በማንኛውም የአገልጋይ ቁጥር ላይ በክላስተር ሁነታ መስራት ይችላል። የ 100 ማሽኖች ክላስተር ካለን, ከዚያም በ 100 ማሽኖች ላይ እንዲሠራ አስፈላጊ አይደለም. ZooKeeper ን ማስኬድ የሚችሉባቸውን ብዙ ማሽኖችን መምረጥ በቂ ነው። እና ከፍተኛ ተደራሽነት መርህን ያሳያል። በእያንዳንዱ አሂድ ምሳሌ ላይ፣ ZooKeeper ሙሉውን የውሂብ ቅጂ ያከማቻል። በኋላ እንዴት እንደሚሰራ እነግርዎታለሁ። መረጃን አያፈርስም ወይም አይከፋፍለውም። በአንድ በኩል, እኛ ብዙ ማከማቸት የማንችለው ሲቀነስ ነው, በሌላ በኩል, ይህን ማድረግ አያስፈልግም. ለዚያ የተነደፈው አይደለም, የውሂብ ጎታ አይደለም.

መረጃ በደንበኛው በኩል ሊቀመጥ ይችላል። አገልግሎቱን እንዳናቋርጥ እና በተመሳሳይ ጥያቄዎች እንዳንጫን ይህ መደበኛ መርህ ነው። ብልህ ደንበኛ ብዙውን ጊዜ ስለዚህ ጉዳይ ያውቃል እና ይሸፍነዋል።

ለምሳሌ, እዚህ የሆነ ነገር ተለውጧል. አንድ ዓይነት መተግበሪያ አለ. አዲስ መሪ ተመርጧል, እሱም ለምሳሌ, የጽሁፍ ስራዎችን የማካሄድ ሃላፊነት ያለው. እና ውሂቡን ማባዛት እንፈልጋለን. አንድ መፍትሄ በ loop ውስጥ ማስቀመጥ ነው. እና አገልግሎታችንን አዘውትረን እንጠይቃለን - የተለወጠ ነገር አለ? ሁለተኛው አማራጭ በጣም ጥሩ ነው. ይህ የሆነ ነገር እንደተለወጠ ለደንበኞች ለማሳወቅ የሚያስችል የሰዓት ዘዴ ነው። ይህ ከሀብቶች አንፃር በጣም ውድ ያልሆነ ዘዴ እና ለደንበኞች የበለጠ ምቹ ነው።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ደንበኛ ZooKeeperን የሚጠቀም ተጠቃሚ ነው።

አገልጋይ ራሱ የ ZooKeeper ሂደት ​​ነው።

Znode በ ZooKeeper ውስጥ ቁልፍ ነገር ነው። ሁሉም znodes በማህደረ ትውስታ ውስጥ በ ZooKeeper የተከማቹ እና በተዋረድ ዲያግራም መልክ፣ በዛፍ መልክ የተደራጁ ናቸው።

ሁለት አይነት ኦፕሬሽኖች አሉ። የመጀመሪያው ማዘመን/መፃፍ ነው፣ አንዳንድ ክዋኔዎች የዛፎቻችንን ሁኔታ ሲቀይሩ። ዛፉ የተለመደ ነው.

እና ደንበኛው አንድ ጥያቄን አላጠናቀቀም እና ግንኙነቱ ተቋርጧል, ነገር ግን ከ ZooKeeper ጋር የሚገናኝበትን ክፍለ ጊዜ መመስረት ይችላል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

የ ZooKeeper ውሂብ ሞዴል ከፋይል ስርዓት ጋር ይመሳሰላል። አንድ መደበኛ ሥር አለ እና ከዚያ ከሥሩ በሚወጡት ማውጫዎች ውስጥ እንደገባን ሄድን። እና ከዚያ የአንደኛ ደረጃ ፣ ሁለተኛ ደረጃ ካታሎግ። ይህ ሁሉ znodes ነው።

እያንዳንዱ znode አንዳንድ ውሂብ ማከማቸት ይችላል, አብዛኛውን ጊዜ በጣም ትልቅ አይደለም, ለምሳሌ, 10 ኪሎባይት. እና እያንዳንዱ znode የተወሰነ ቁጥር ያላቸው ልጆች ሊኖሩት ይችላል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

Znodes በበርካታ ዓይነቶች ይመጣሉ. ሊፈጠሩ ይችላሉ። እና znode ሲፈጥሩ, መሆን ያለበትን አይነት እንገልፃለን.

ሁለት ዓይነት ዓይነቶች አሉ. የመጀመሪያው የኢፌመር ባንዲራ ነው። Znode የሚኖረው በአንድ ክፍለ ጊዜ ውስጥ ነው። ለምሳሌ, ደንበኛው አንድ ክፍለ ጊዜ አቋቁሟል. እና ይህ ክፍለ ጊዜ በህይወት እስካለ ድረስ, ይኖራል. አንድ አላስፈላጊ ነገር ላለማድረግ ይህ አስፈላጊ ነው. ይህ በክፍለ-ጊዜ ውስጥ የውሂብ ቀዳሚዎችን ማከማቸት ለእኛ አስፈላጊ በሚሆንበት ጊዜ ለአፍታዎች ተስማሚ ነው።

ሁለተኛው ዓይነት ተከታታይ ባንዲራ ነው። ወደ znode በሚወስደው መንገድ ላይ ቆጣሪውን ይጨምራል. ለምሳሌ፣ ከመተግበሪያ 1_5 ጋር ማውጫ ነበረን። እና የመጀመሪያውን መስቀለኛ መንገድ ስንፈጥር p_1 ተቀብሏል, ሁለተኛው - p_2. እና ይህንን ዘዴ በእያንዳንዱ ጊዜ ስንጠራው ሙሉውን መንገድ እናልፋለን, ይህም የመንገዱን ክፍል ብቻ ይጠቁማል, እና ይህ ቁጥር በራስ-ሰር ይጨምራል ምክንያቱም የመስቀለኛ ክፍልን - በቅደም ተከተል.

መደበኛ znode. ሁልጊዜም ትኖራለች እና የምንነግራት ስም አላት.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ሌላው ጠቃሚ ነገር የሰዓት ባንዲራ ነው. ከጫንነው ደንበኛው ለተወሰነ መስቀለኛ መንገድ ለአንዳንድ ክስተቶች መመዝገብ ይችላል። በኋላ ላይ ይህ እንዴት እንደሚደረግ በምሳሌ አሳይሃለሁ። ZooKeeper ራሱ በመስቀለኛ መንገዱ ላይ ያለው መረጃ መቀየሩን ለደንበኛው ያሳውቃል። ሆኖም፣ ማሳወቂያዎች አንዳንድ አዲስ ውሂብ እንደመጣ ዋስትና አይሰጡም። በቀላሉ የሆነ ነገር ተለውጧል ይላሉ፣ ስለዚህ አሁንም በኋላ ላይ ውሂብ ከተለየ ጥሪዎች ጋር ማወዳደር አለብዎት።

እና ቀደም ብዬ እንደተናገርኩት የመረጃው ቅደም ተከተል የሚወሰነው በኪሎባይት ነው። ትልቅ የጽሑፍ ውሂብን እዚያ ማከማቸት አያስፈልግም, ምክንያቱም የውሂብ ጎታ አይደለም, የድርጊት ማስተባበሪያ አገልጋይ ነው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ስለ ክፍለ-ጊዜዎች ትንሽ እነግርዎታለሁ. ብዙ አገልጋዮች ካሉን የክፍለ ጊዜ መለያውን ተጠቅመን ከአገልጋይ ወደ አገልጋይ በግልፅ መንቀሳቀስ እንችላለን። በጣም ምቹ ነው።

እያንዳንዱ ክፍለ ጊዜ የተወሰነ የጊዜ ማብቂያ አለው። ክፍለ-ጊዜ የሚገለጸው ደንበኛው ምንም ነገር ወደ አገልጋዩ በሚልክበት ጊዜ እንደሆነ ነው። በጊዜ ማብቂያው ምንም ነገር ካላስተላለፈ, ክፍለ-ጊዜው ይቋረጣል, ወይም ደንበኛው ራሱ ሊዘጋው ይችላል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ያን ያህል ባህሪያት የሉትም፣ ግን በዚህ ኤፒአይ የተለያዩ ነገሮችን ማድረግ ይችላሉ። ሲፈጥር ያየነው ጥሪ znode ይፈጥራል እና ሶስት መለኪያዎችን ይወስዳል። ይህ ወደ znode የሚወስደው መንገድ ነው, እና ከሥሩ ሙሉ በሙሉ መገለጽ አለበት. እና ደግሞ ይህ እኛ ወደዚያ ማስተላለፍ የምንፈልገው አንዳንድ ውሂብ ነው። እና የባንዲራ አይነት። እና ከተፈጠረ በኋላ ወደ znode የሚወስደውን መንገድ ይመልሳል.

ሁለተኛ, ሊሰርዙት ይችላሉ. እዚህ ያለው ዘዴ ሁለተኛው መለኪያ, ወደ znode ከሚወስደው መንገድ በተጨማሪ, ስሪቱን ሊገልጽ ይችላል. በዚህ መሠረት ያ znode እኛ ያስተላለፍነው ሥሪት በትክክል ካለው ጋር የሚመጣጠን ከሆነ ይሰረዛል።

ይህን ስሪት መፈተሽ ካልፈለግን በቀላሉ "-1" የሚለውን ክርክር እናልፋለን.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ሦስተኛ, የ znode መኖሩን ይፈትሻል. መስቀለኛ መንገድ ካለ እውነት ይመልሳል፣ ካልሆነ ውሸት።

እና ከዚያ የባንዲራ ሰዓት ይታያል, ይህም ይህን መስቀለኛ መንገድ እንዲከታተሉ ያስችልዎታል.

ይህንን ባንዲራ በሌለበት መስቀለኛ መንገድ ላይ እንኳን ማዘጋጀት እና በሚታይበት ጊዜ ማሳወቂያ መቀበል ይችላሉ። ይህ ደግሞ ጠቃሚ ሊሆን ይችላል.

ሁለት ተጨማሪ ፈተናዎች አሉ። getData. በ znode በኩል መረጃን መቀበል እንደምንችል ግልጽ ነው. የባንዲራ ሰዓት መጠቀምም ትችላለህ። በዚህ ሁኔታ, ምንም መስቀለኛ መንገድ ከሌለ አይጫንም. ስለዚህ, መኖሩን መረዳት አለብዎት, እና ከዚያ ውሂብ ይቀበሉ.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

በተጨማሪም አለ ዳታ አዘጋጅ. እዚህ ስሪት እናልፋለን. እና ይህንን ካሳለፍን, የአንድ የተወሰነ ስሪት znode ላይ ያለው ውሂብ ይዘምናል.

ይህን ቼክ ለማስቀረት "-1" መግለጽም ይችላሉ።

ሌላው ጠቃሚ ዘዴ ነው ልጆችን ማግኘት. እንዲሁም የእሱ የሆኑትን ሁሉንም znodes ዝርዝር ማግኘት እንችላለን። የባንዲራ ሰዓትን በማዘጋጀት ይህንን መከታተል እንችላለን።

እና ዘዴ ሥምሪያ ሁሉም ለውጦች በአንድ ጊዜ እንዲላኩ ያስችላቸዋል, በዚህም መቀመጡን እና ሁሉም ውሂብ ሙሉ ለሙሉ መቀየሩን ያረጋግጣል.

ከመደበኛ ፕሮግራሚንግ ጋር ተመሳሳይ ምሳሌዎችን ከሳልን ፣ እንደ መጻፍ ያሉ ዘዴዎችን ሲጠቀሙ ፣ የሆነ ነገር ወደ ዲስክ የሚጽፉ እና ለእርስዎ ምላሽ ከመለሰ በኋላ ውሂቡን ወደ ዲስክ ለመፃፍ ምንም ዋስትና የለም። እና ስርዓተ ክወናው ሁሉም ነገር እንደተፃፈ በሚተማመንበት ጊዜ እንኳን, በዲስክ ውስጥ በራሱ ውስጥ ሂደቱ በመጠባበቂያዎች ንብርብሮች ውስጥ የሚያልፍባቸው ስልቶች አሉ, እና ከዚያ በኋላ ውሂቡ በዲስክ ላይ ይቀመጣል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

በአብዛኛው ያልተመሳሰሉ ጥሪዎች ጥቅም ላይ ይውላሉ። ይህ ደንበኛው ከተለያዩ ጥያቄዎች ጋር በትይዩ እንዲሰራ ያስችለዋል. የተመሳሰለውን አካሄድ መጠቀም ትችላለህ፣ ግን ብዙም ውጤታማ ነው።

የተነጋገርናቸው ሁለቱ ኦፕሬሽኖች ማዘመን/መፃፍ ናቸው፣ይህም መረጃን ይቀይራል። እነዚህ ፍጠር፣ አዘጋጅ ዳታ፣ ማመሳሰል፣ ሰርዝ ናቸው። እና ማንበብ አለ፣ getData፣ getChildren።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

አሁን በተከፋፈለ ስርዓት ውስጥ ለመስራት ፕሪሚየርስ እንዴት ማድረግ እንደሚችሉ ጥቂት ምሳሌዎች። ለምሳሌ, ከአንድ ነገር ውቅር ጋር የተያያዘ. አዲስ ሰራተኛ ታየ። ማሽኑን ጨምረን ሂደቱን ጀመርን. እና የሚከተሉት ሦስት ጥያቄዎች አሉ. ለማዋቀር ZooKeeperን እንዴት ይጠይቃል? እና አወቃቀሩን መለወጥ ከፈለግን እንዴት እንለውጣለን? ከቀየርነው በኋላ፣ እኛ የነበርናቸው ሠራተኞች እንዴት አገኙት?

ZooKeeper ይህን በአንፃራዊነት ቀላል ያደርገዋል። ለምሳሌ, የእኛ የዝኖድ ዛፍ አለ. እዚህ ለመተግበሪያችን መስቀለኛ መንገድ አለ, በውስጡ ተጨማሪ መስቀለኛ መንገድን እንፈጥራለን, ይህም ከውቅር ውስጥ መረጃን ይዟል. እነዚህ የተለዩ መለኪያዎች ሊሆኑ ወይም ላይሆኑ ይችላሉ። መጠኑ ትንሽ ስለሆነ የማዋቀሪያው መጠን ብዙውን ጊዜ ትንሽ ነው, ስለዚህ እዚህ ማከማቸት በጣም ይቻላል.

ዘዴውን እየተጠቀምክ ነው። getData ለሠራተኛው አወቃቀሩን ከኖድ ለማግኘት. ወደ እውነት አዘጋጅ። በሆነ ምክንያት ይህ መስቀለኛ መንገድ ከሌለ, በሚታይበት ጊዜ ወይም በሚቀየርበት ጊዜ ስለ እሱ ይነገረናል. አንድ ነገር እንደተለወጠ ለማወቅ ከፈለግን ወደ እውነት እናስቀምጠዋለን። እና በዚህ መስቀለኛ መንገድ ውስጥ ያለው መረጃ ከተቀየረ, ስለእሱ እናውቀዋለን.

ዳታ አዘጋጅ. ውሂቡን እናስቀምጣለን, "-1" አዘጋጅተናል, ማለትም ስሪቱን አንፈትሽም, ሁልጊዜ አንድ ውቅር እንዳለን እንገምታለን, ብዙ አወቃቀሮችን ማከማቸት አያስፈልገንም. ብዙ ማከማቸት ካስፈለገዎት ሌላ ደረጃ መጨመር ያስፈልግዎታል. እዚህ አንድ ብቻ እንዳለ እናምናለን, ስለዚህ የቅርብ ጊዜውን ብቻ እናዘምነዋለን, ስለዚህ ስሪቱን አንፈትሽም. በዚህ ጊዜ፣ ከዚህ ቀደም ለደንበኝነት የተመዘገቡ ሁሉም ደንበኞች በዚህ መስቀለኛ መንገድ ውስጥ የሆነ ነገር እንደተለወጠ ማሳወቂያ ይደርሳቸዋል። እና ከተቀበሉ በኋላ ውሂቡን እንደገና መጠየቅ አለባቸው. ማሳወቂያው ራሱ ውሂቡን እንደማይቀበሉ ነው, ነገር ግን ለውጦችን ማሳወቅ ብቻ ነው. ከዚህ በኋላ አዲስ ውሂብ መጠየቅ አለባቸው.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ዋናውን ለመጠቀም ሁለተኛው አማራጭ ነው የቡድን አባልነት. እኛ የተከፋፈለ መተግበሪያ አለን ፣ የሰራተኞች ስብስብ አለ እና ሁሉም በቦታው እንዳሉ ለመረዳት እንፈልጋለን። ስለዚህ, በእኛ ማመልከቻ ውስጥ እንደሚሰሩ እራሳቸውን መመዝገብ አለባቸው. እና አሁን ስላለን ስለ ሁሉም ንቁ ሰራተኞች፣ ከማስተር ሂደቱም ሆነ ሌላ ቦታ ለማወቅ እንፈልጋለን።

ይህንን እንዴት እናደርጋለን? ለትግበራው የሰራተኛ መስቀለኛ መንገድን እንፈጥራለን እና የመፍጠር ዘዴን በመጠቀም እዚያ ላይ አንድ ንዑስ ክፍል እንጨምራለን ። በስላይድ ላይ ስህተት አለኝ። እዚህ ያስፈልግዎታል ተከተል ይግለጹ, ከዚያም ሁሉም ሰራተኞች አንድ በአንድ ይፈጠራሉ. እና አፕሊኬሽኑ ስለ የዚህ መስቀለኛ መንገድ ልጆች ሁሉንም መረጃዎች በመጠየቅ ያሉትን ሁሉንም ንቁ ሰራተኞች ይቀበላል።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ይህ በጃቫ ኮድ ውስጥ እንዴት እንደሚደረግ ይህ በጣም አሰቃቂ አተገባበር ነው። ከዋናው ዘዴ ጋር ከመጨረሻው እንጀምር. ይህ የእኛ ክፍል ነው, የእሱን ዘዴ እንፍጠር. እንደ መጀመሪያው ክርክር አስተናጋጅ እንጠቀማለን, እየተገናኘን ነው, ማለትም እንደ ክርክር እናዘጋጃለን. እና ሁለተኛው መከራከሪያ የቡድኑ ስም ነው.

ግንኙነቱ እንዴት ይከሰታል? ይህ ጥቅም ላይ የዋለው የኤፒአይ ቀላል ምሳሌ ነው። እዚህ ሁሉም ነገር በአንጻራዊነት ቀላል ነው. ደረጃውን የጠበቀ ZooKeeper ክፍል አለ። አስተናጋጆችን እናስተላልፋለን. እና የጊዜ ማብቂያውን ለምሳሌ ወደ 5 ሰከንድ ያዘጋጁ። እና የተገናኘ ሲግናል የሚባል አባል አለን። በመሠረቱ, በሚተላለፈው መንገድ ላይ ቡድን እንፈጥራለን. ምንም እንኳን የሆነ ነገር መፃፍ ቢቻልም እዚያ ውሂብ አንጽፍም። እና እዚህ ያለው መስቀለኛ መንገድ የማያቋርጥ ዓይነት ነው. በመሠረቱ, ይህ ሁል ጊዜ የሚኖር ተራ መደበኛ መስቀለኛ መንገድ ነው. ይህ ክፍለ ጊዜ የተፈጠረበት ነው. ይህ የደንበኛው ራሱ አተገባበር ነው. ደንበኞቻችን ክፍለ ጊዜው በህይወት እንዳለ የሚጠቁሙ ወቅታዊ መልዕክቶችን ይልካል። እና ክፍለ-ጊዜውን ስንጨርስ, በቅርብ እንጠራዋለን እና ያ ነው, ክፍለ-ጊዜው ይወድቃል. ይህ የሆነ ነገር ቢወድቅብን ነው፣ ስለዚህም ZooKeeper ስለእሱ አውቆ ክፍለ ጊዜውን እንዲያቋርጥ።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ሀብትን እንዴት መቆለፍ ይቻላል? እዚህ ሁሉም ነገር ትንሽ የተወሳሰበ ነው. እኛ የሰራተኞች ስብስብ አለን ፣ ልንቆልፈው የምንፈልገው አንዳንድ ሀብቶች አሉ። ይህንን ለማድረግ የተለየ መስቀለኛ መንገድ እንፈጥራለን, ለምሳሌ, መቆለፊያ1 ይባላል. መፍጠር ከቻልን እዚህ መቆለፊያ አግኝተናል። እና መፍጠር ካልቻልን ሰራተኛው ከዚህ ለማግኘት ይሞክራል getData , እና መስቀለኛ መንገድ ቀድሞውኑ ስለተፈጠረ, እዚህ ጠባቂ እናስቀምጠዋለን እና የዚህ መስቀለኛ ሁኔታ በሚቀየርበት ጊዜ, ስለእሱ እናውቀዋለን. እና እንደገና ለመፍጠር ጊዜ ለማግኘት መሞከር እንችላለን. ይህንን መስቀለኛ መንገድ ከወሰድን ፣ ይህንን መቆለፊያ ከወሰድን ፣ ከዚያ በኋላ መቆለፊያውን ካላስፈልገን በኋላ ፣ መስቀለኛ መንገዱ በክፍለ-ጊዜው ውስጥ ብቻ ስለሚገኝ እንተወዋለን። በዚህ መሠረት ይጠፋል. እና ሌላ ደንበኛ, በሌላ ክፍለ ጊዜ ማዕቀፍ ውስጥ, በዚህ መስቀለኛ መንገድ ላይ መቆለፊያውን መውሰድ ይችላል, ወይም ይልቁንስ, አንድ ነገር እንደተለወጠ ማሳወቂያ ይደርሰዋል እና በጊዜ ውስጥ ለማድረግ መሞከር ይችላል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ዋናውን መሪ እንዴት መምረጥ እንደሚችሉ የሚያሳይ ሌላ ምሳሌ. ይህ ትንሽ ውስብስብ ነው, ግን በአንጻራዊነት ቀላል ነው. እዚህ ምን እየሆነ ነው? ሁሉንም ሰራተኞች የሚያጠቃልለው ዋና መስቀለኛ መንገድ አለ. ስለ መሪው መረጃ ለማግኘት እየሞከርን ነው። ይህ በተሳካ ሁኔታ ከተከሰተ, ማለትም አንዳንድ መረጃዎችን ተቀብለናል, ከዚያም የእኛ ሰራተኛ ይህንን መሪ መከተል ይጀምራል. መሪ አለ ብሎ ያምናል።

መሪው በሆነ ምክንያት ከሞተ, ለምሳሌ, ከወደቀ, ከዚያም አዲስ መሪ ለመፍጠር እንሞክራለን. ከተሳካልን ደግሞ ሰራተኛችን መሪ ይሆናል። እና በዚህ ጊዜ አንድ ሰው አዲስ መሪ መፍጠር ከቻለ ማን እንደሆነ ለመረዳት እና እሱን ለመከተል እንሞክራለን።

እዚህ የመንጋው ውጤት የሚባሉት ይነሳል, ማለትም የመንጋው ውጤት, ምክንያቱም መሪ ሲሞት, በጊዜ ውስጥ የመጀመሪያ የሆነው መሪ ይሆናል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ሀብትን በሚይዙበት ጊዜ, ትንሽ ለየት ያለ አቀራረብ ለመጠቀም መሞከር ይችላሉ, ይህም እንደሚከተለው ነው. ለምሳሌ, መቆለፊያ ማግኘት እንፈልጋለን, ነገር ግን ያለ hert ውጤት. የእኛ መተግበሪያ ቀድሞ ላለው መስቀለኛ መንገድ መቆለፊያ ያለው የሁሉም መስቀለኛ መታወቂያዎች ዝርዝር መጠየቁን ያካትታል። እና ከዚያ በፊት መቆለፊያን የፈጠርንበት መስቀለኛ መንገድ ከተቀበልነው ስብስብ ውስጥ ትንሹ ከሆነ, ይህ ማለት መቆለፊያውን ወስደናል ማለት ነው. መቆለፊያ እንደደረሰን እናረጋግጣለን። እንደ ቼክ አዲስ መቆለፊያ ስንፈጥር የተቀበልነው መታወቂያ በጣም አናሳ የሚሆንበት ሁኔታ ይኖራል። እና ከተቀበልን, ከዚያም የበለጠ እንሰራለን.

ከመቆለፊያችን ያነሰ የተወሰነ መታወቂያ ካለ፣ በዚህ ክስተት ላይ ተመልካች እናስቀምጣለን እና የሆነ ነገር እስኪቀየር ድረስ ማሳወቂያ እንጠብቃለን። ማለትም ይህን መቆለፊያ ተቀብለናል. እና እስኪወድቅ ድረስ ዝቅተኛው መታወቂያ አንሆንም እና አነስተኛውን መቆለፊያ አንቀበልም እና በዚህ መንገድ መግባት እንችላለን። እና ይህ ሁኔታ ካልተሟላ, ወዲያውኑ ወደዚህ ሄደን ይህንን መቆለፊያ እንደገና ለማግኘት እንሞክራለን, ምክንያቱም በዚህ ጊዜ ውስጥ የሆነ ነገር ተለውጧል.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ZooKeeper ምንን ያካትታል? 4 ዋና ነገሮች አሉ. ይህ የማስኬጃ ሂደቶች ነው - ጥያቄ. እንዲሁም ZooKeeper አቶሚክ ስርጭት። ሁሉም ክዋኔዎች የሚመዘገቡበት የኮሚት ሎግ አለ። እና In-memory Replicated DB እራሱ ማለትም ይህ ሙሉ ዛፍ የሚቀመጥበት ዳታቤዝ ራሱ።

ሁሉም የመጻፍ ስራዎች በጥያቄ ፕሮሰሰር ውስጥ እንደሚሄዱ ልብ ሊባል የሚገባው ጉዳይ ነው. እና የንባብ ስራዎች በቀጥታ ወደ In-memory ዳታቤዝ ይሄዳሉ።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

የመረጃ ቋቱ ራሱ ሙሉ በሙሉ ተባዝቷል። ሁሉም የZooKeeper ምሳሌዎች የተሟላ የውሂብ ቅጂ ያከማቻሉ።

ከብልሽት በኋላ የውሂብ ጎታውን ወደነበረበት ለመመለስ፣ የCommit ምዝግብ ማስታወሻ አለ። መደበኛ ልምምዱ መረጃው ወደ ማህደረ ትውስታ ከመግባቱ በፊት እዚያ ይጻፋል ስለዚህ ከተበላሸ ይህ ምዝግብ ማስታወሻ ተመልሶ እንዲጫወት እና የስርዓት ሁኔታው ​​ወደነበረበት ሊመለስ ይችላል. እና የውሂብ ጎታ ወቅታዊ ቅጽበተ-ፎቶዎች እንዲሁ ጥቅም ላይ ይውላሉ።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ZooKeeper አቶሚክ ብሮድካስት የተባዛ ውሂብ ለማቆየት የሚያገለግል ነገር ነው።

ZAB በውስጥ በኩል ከ ZooKeeper node እይታ አንፃር መሪን ይመርጣል። ሌሎች አንጓዎች ተከታዮቿ ይሆናሉ እና አንዳንድ እርምጃዎችን ከእርሷ ይጠብቃሉ። ግቤቶችን ከተቀበሉ, ሁሉንም ወደ መሪው ያስተላልፋሉ. በመጀመሪያ የመጻፍ ኦፕሬሽን ይሠራል ከዚያም ለተከታዮቹ ምን እንደተለወጠ መልእክት ይልካል. ይህ በእውነቱ ፣ በአቶሚክ መከናወን አለበት ፣ ማለትም የሁሉም ነገር ቀረፃ እና ስርጭት ሥራ በአቶሚክ መከናወን አለበት ፣ በዚህም የውሂብ ወጥነት ያረጋግጣል።

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች" ጥያቄዎችን መፃፍ ብቻ ነው የሚያስኬደው። ዋናው ሥራው ቀዶ ጥገናውን ወደ የግብይት ማሻሻያነት መለወጥ ነው. ይህ ልዩ የመነጨ ጥያቄ ነው።

እና እዚህ ለተመሳሳይ ክዋኔ የዝማኔዎች አቅም የተረጋገጠ መሆኑን ልብ ሊባል ይገባል። ምንድን ነው? ይህ ነገር, ሁለት ጊዜ ከተፈፀመ, ተመሳሳይ ሁኔታ ይኖረዋል, ማለትም ጥያቄው ራሱ አይለወጥም. እና ይህ በብልሽት ጊዜ ክዋኔውን እንደገና ማስጀመር እንዲችሉ ይህ መደረግ አለበት ፣ በዚህም በአሁኑ ጊዜ የወደቁትን ለውጦች ወደ ኋላ ይመልሱ። በዚህ ሁኔታ, የስርዓቱ ሁኔታ አንድ አይነት ይሆናል, ማለትም, ተከታታይ ተመሳሳይ, ለምሳሌ, የማዘመን ሂደቶች, ወደ የተለያዩ የስርዓቱ የመጨረሻ ሁኔታዎች እንዲመሩ መደረጉ መሆን የለበትም.

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

"ሃዱፕ. ZooKeeper" ከ Mail.Ru Group Technostream ተከታታይ "በሃዶፕ ውስጥ ከፍተኛ መጠን ያለው መረጃን የማሰራጨት ዘዴዎች"

ምንጭ: hab.com

አስተያየት ያክሉ