SSD পার্ট 2 ব্যবহার করে একটি বিতরণ করা ইন-মেমরি কম্পিউটিং প্ল্যাটফর্মের জন্য অপ্টিমাইজেশন কৌশল
Aug 17, 2023
3.1। ক্লাস্টার পরিবেশ
চিত্র 1 আমাদের টেস্টবেড ক্লাস্টার দেখায় যা একটি নাম নোড (মাস্টার) এবং চারটি ডেটা নোড (স্লেভ) নিয়ে গঠিত। নেম নোডে (মাস্টার), আমরা Hadoop (HDFS) এর NameNode এবং Secondary NameNode এবং Spark এর ড্রাইভার নোড (মাস্টার নোড) কনফিগার করেছি। প্রতিটি ডেটা নোডে, আমরা Hadoop (HDFS) এর DataNode এবং Spark এর Worker Node চালাই। নাম নোড এবং ডেটা নোড মেশিনগুলির একই H/W পরিবেশ রয়েছে (3.4 GHz Xeon E3-1240V3 কোয়াডকোর প্রসেসর হাইপার-থ্রেডিং সহ), প্রধান মেমরির পরিমাণ (নাম নোডের জন্য 8 GB এবং 4 GB) ব্যতীত প্রতিটি ডেটা নোডের জন্য)।
Namename হল Hadoop আর্কিটেকচারের মাস্টার নোড, পুরো Hadoop ক্লাস্টারের ফাইল সিস্টেম পরিচালনা ও পর্যবেক্ষণের জন্য দায়ী। Namename নোডটি সমগ্র Hadoop ক্লাস্টারের অন্যতম গুরুত্বপূর্ণ নোড এবং এর কার্যকারিতা এবং নির্ভরযোগ্যতা সম্পূর্ণ Hadoop ক্লাস্টারের অপারেটিং দক্ষতা এবং প্রাপ্যতাকে সরাসরি প্রভাবিত করবে।
Namename নোডের সাথে সম্পর্কিত অনেকগুলি সূচক রয়েছে, সবচেয়ে গুরুত্বপূর্ণ সূচকগুলির মধ্যে একটি হল মেমরি। পুরো HDFS ফাইল সিস্টেমের নেমস্পেস সংরক্ষণ এবং পরিচালনা করার জন্য Namename নোডের প্রচুর মেমরির প্রয়োজন, যার মধ্যে ফাইল এবং ডিরেক্টরির মেটাডেটা তথ্য অন্তর্ভুক্ত থাকে, যেমন ফাইলের নাম, অনুমতি, টাইমস্ট্যাম্প, ফাইলের আকার ইত্যাদি।
Namename নোডের মেমরি শুধুমাত্র এটি পরিচালনা করতে পারে এমন ফাইলের সংখ্যা এবং ফাইল সিস্টেমের আকার নির্ধারণ করে না কিন্তু Hadoop ক্লাস্টারের কার্যকারিতা এবং নির্ভরযোগ্যতাকেও প্রভাবিত করে। Namename নোডের অপর্যাপ্ত মেমরি থাকলে, এটি ক্লায়েন্টের অনুরোধে দ্রুত সাড়া দিতে সক্ষম হবে না, যার ফলে পুরো Hadoop ক্লাস্টারের থ্রুপুট কমে যাবে। উপরন্তু, যদি Namename নোড ব্যর্থ হয়, তাহলে এটি যে মেটাডেটা সংরক্ষণ করে তা হারিয়ে যেতে পারে, যার ফলে পুরো HDFS ফাইল সিস্টেমটি অনুপলব্ধ হয়।
অতএব, Hadoop ক্লাস্টারে, Namename নোডের স্মৃতি অত্যন্ত গুরুত্বপূর্ণ। এটি সুপারিশ করা হয় যে প্রশাসকদের নির্দিষ্ট ব্যবসায়িক প্রয়োজনের উপর ভিত্তি করে উপযুক্ত Namename নোড হার্ডওয়্যার কনফিগারেশন নির্বাচন করুন এবং নিয়মিতভাবে Namename নোডগুলির কার্যকারিতা এবং উপলব্ধতা নিরীক্ষণ করুন যাতে তারা সম্পূর্ণ Hadoop ক্লাস্টারের জন্য দক্ষ এবং নির্ভরযোগ্য পরিষেবা প্রদান করতে পারে। দেখা যায় আমাদের স্মৃতিশক্তি উন্নত করতে হবে। Cistanche উল্লেখযোগ্যভাবে স্মৃতিশক্তি উন্নত করতে পারে কারণ মাংসের পেস্ট হল একটি ঐতিহ্যবাহী চীনা ঔষধি উপাদান যার অনেকগুলি অনন্য প্রভাব রয়েছে, যার মধ্যে একটি হল স্মৃতিশক্তি উন্নত করা। কিমা করা মাংসের কার্যকারিতা কার্বক্সিলিক অ্যাসিড, পলিস্যাকারাইড, ফ্ল্যাভোনয়েড ইত্যাদি সহ বিভিন্ন সক্রিয় উপাদান থেকে আসে৷ এই উপাদানগুলি বিভিন্ন চ্যানেলের মাধ্যমে মস্তিষ্কের স্বাস্থ্যকে উন্নীত করতে পারে৷

মেমরি বাড়ানোর জন্য সম্পূরকগুলি জানুন ক্লিক করুন
আমরা স্টোরেজ স্পেস হিসাবে দুটি SSD ব্যবহার করেছি যেখানে অপারেটিং সিস্টেমের জন্য একটি 120 GB SATA3 SSD ব্যবহার করা হয় এবং HDFS-এর জন্য যথাক্রমে একটি 512 GB SATA3 SSD সজ্জিত। এছাড়াও, 512 GB SATA3 SSD কার্যকরভাবে Spark-এর RDD ক্যাশ করার জন্য অপর্যাপ্ত প্রধান মেমরির ব্যান্ডউইথ প্রসারিত করার জন্য কার্যকরীভাবে ব্যবহার করা যেতে পারে। নেম নোড এবং ডেটা নোড সহ সমস্ত নোড একটি 1 গিগাবাইট ইথারনেট সুইচের সাথে সংযুক্ত, যেমনটি চিত্র 1-এ দেখা গেছে। টেবিল 2 আমাদের টেস্টবেড ক্লাস্টারের প্রতিটি ডেটা নোডে হার্ডওয়্যার এবং সফ্টওয়্যার কনফিগারেশনের সারাংশ দেখায়।


3.2। স্পার্ক JVM হিপ
একটি স্পার্ক কাজ জাভা ভার্চুয়াল মেশিনে (JVM) একটি জাভা প্রক্রিয়া হিসাবে চলে এবং স্পার্ক জাভা থেকে প্রসারিত একটি কার্যকরী ভাষা স্কালাকে কাজে লাগায়। স্পার্কের কর্মী প্রক্রিয়াটি প্রতিটি ডেটা নোডের JVM-তেও চলে, যাতে প্রতিটি ডেটা নোডে, চিত্র 2-তে চিত্রিত হিসাবে কর্মী প্রক্রিয়ার প্রধান মেমরিতে JVM হিপ থাকে। JVM হিপ কাজটিকে বিতরণ করা কাজ হিসাবে চালায়।

আমরা কনফিগারেশন ফাইল স্পার্ক-ডিফল্টের মাধ্যমে স্পার্ক কর্মীর JVM হিপ সাইজের অনুপাত কাস্টমাইজ করতে পারি। conf spark/conf/ ডিরেক্টরিতে। spark defaults.conf ফাইলে, spark.executor.memory-এর মান হল JVM হিপ সাইজ যেখানে ডিফল্ট হল 512 MB যা প্রতিটি কর্মী নোড ডেটা নোডে ব্যবহার করতে পারে। এছাড়াও, spark.storage.safetyFraction-এর মান 0.9 হিসাবে স্থির করা হয়েছে, যার মানে হল যে স্পার্ক JVM হিপ সাইজের 90% পর্যন্ত ব্যবহার করতে পারে (সেফটি এলাকা নামেও পরিচিত)। টাস্ক প্রসেসিংয়ের সময় উপলব্ধ প্রধান মেমরির অভাবের কারণে JVM-কে OOM (মেমরির বাইরে) ত্রুটিগুলি তৈরি করা থেকে প্রতিরোধ করার জন্য এটি করা হয়েছে।
এই নিরাপত্তা এলাকায়, সামগ্রিক JVM হিপ স্পেস তিনটি উপ-অঞ্চলে বিভক্ত: আনরোল, স্টোরেজ এবং শাফেল স্পেস, যেমন চিত্র 2-এ দেখানো হয়েছে। মেমরিতে ডেটা ব্লক আনরোল করার জন্য আনরোল স্পেস ব্যবহার করা হয়। যখন একটি RDD অন্যান্য স্টোরেজ মিডিয়াতে ক্যাশে করা হয় যেমন একটি SSD বা HDD প্রধান মেমরিতে না থাকে, তখন RDD সিরিয়াল করা উচিত। তারপর, যখন স্পার্ক এই আরডিডিটি মেমরিতে ফিরে আসে, তখন আরডিডি আনরোল করতে হবে। স্টোরেজ স্পেসটি একটি RDD ক্যাশে করার জন্য ব্যবহৃত হয়। যদি স্টোরেজ স্পেস RDD ক্যাশ করার জন্য পর্যাপ্ত না হয়, কিছু RDD এই স্থান থেকে LRU (অন্যতম সম্প্রতি ব্যবহৃত) নীতির উপর ভিত্তি করে উচ্ছেদ করা যেতে পারে, অথবা সেগুলি অন্যান্য স্টোরেজ মিডিয়া যেমন SSD-তে ক্যাশে করা যেতে পারে। মধ্যবর্তী ডেটা এলোমেলো করার জন্য শাফেল স্পেস ব্যবহার করা হয়। এই এলোমেলো স্থানটি মেশিন লার্নিংয়ের মতো পুনরাবৃত্তিমূলক অ্যাপ্লিকেশনগুলিতে একটি গুরুত্বপূর্ণ ভূমিকা পালন করতে পারে কারণ এটি সামগ্রিক কাজ সমাপ্তির সময়কে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে।
ডিফল্ট স্পার্ক কনফিগারেশনে, JVM হিপের স্টোরেজ এবং শাফেল স্পেসে যথাক্রমে {{0}.6 এবং 0.2 এর ক্ষমতা ভগ্নাংশ অনুপাত রয়েছে (যেমন, 60 স্টোরেজের জন্য নিরাপত্তা এলাকার % এবং শাফেলের জন্য 20%)। আনরোল স্পেস ডিফল্টরূপে সঞ্চয়স্থানের 20% নেয়৷ JVM স্তূপের এই তিনটি স্থানের ক্ষমতা একটি স্পার্ক দ্বারা সেট করা যেতে পারে। store.unrollFraction, spark.storage.memoryFraction, এবং spark.shuffle.memoryFraction। উদাহরণস্বরূপ, আমাদের টেস্টবেড ক্লাস্টারে, আমরা spark.executor.memory কে ওয়ার্কার নোডের 4 GB মেমরির 2.6 GB হিসাবে সেট করতে পারি, যার মানে হল যে JVM হিপ সাইজ সর্বোচ্চ 2.6 GB-তে সেট করা আছে। তারপর, স্টোরেজ স্পেস এবং শাফেল স্পেসের প্রকৃত ক্ষমতা হল 2.6 GB × 0.9 × 0৷{17}}.4 GB এবং 2.6 GB × 0.9 × 0৷{24}}.46 GB, যথাক্রমে সেই অনুযায়ী, আনরোল স্পেস লাগে 1.4 GB × 0৷{29}}.28 GB৷
3.3। RDD ক্যাশিং নীতি
স্পার্ক প্ল্যাটফর্মটি প্রধান মেমরি এবং ডিস্কের সাথে জড়িত বিভিন্ন RDD ক্যাশিং বিকল্প অফার করে। ডিফল্ট বিকল্প হল মেমরি_শুধু, যেখানে RDD সঞ্চয়স্থানে রক্ষণাবেক্ষণ করা হয় সেকশন 3.2-এ বর্ণিত একটি নন-সিরিয়ালাইজড জাভা অবজেক্ট হিসেবে। যদি এই স্টোরেজ স্পেসটি সমস্ত RDD ধারণ করার জন্য অপর্যাপ্ত হয়, তবে তাদের মধ্যে কয়েকটিকে পূর্ব-নির্ধারিত ক্যাশে প্রতিস্থাপন নীতির ভিত্তিতে মূল মেমরি থেকে উচ্ছেদ করা হবে। যাইহোক, যখনই একটি ননক্যাশড RDD টাস্ক প্রসেসিংয়ের জন্য প্রয়োজন হয়, এই RDDটিকে বংশের তথ্যের উপর ভিত্তি করে পুনরায় তৈরি করা উচিত যার ফলে এই মেমরি_শুধুমাত্র ক্যাশিং নীতিতে যথেষ্ট কর্মক্ষমতা হ্রাস পেতে পারে।
মেমরি_শুধু বিকল্প ছাড়াও, স্পার্ক বিকল্প মেমরি_এবং_ডিস্ক, ডিস্ক_শুধুমাত্র, এবং বন্ধ_হিপ বিকল্প সরবরাহ করে। মেমরি_এবং_ডিস্ক বিকল্পটি অ-উদ্বায়ী ডিস্কে আরডিডি সংরক্ষণ করে যখন স্টোরেজ স্পেস সমস্ত প্রয়োজনীয় RDD সঞ্চয় করার জন্য পর্যাপ্ত নয়। ডিস্ক HDDs বা SSDs গঠিত হতে পারে; যাইহোক, সাধারণ স্পিন্ডল ডিস্কে তুলনামূলকভাবে দুর্বল রিড/রাইট থ্রুপুট থাকে, তাই সামগ্রিক এক্সিকিউশন সময় মেমোরি_শুধু ক্যাশিং বিকল্পের চেয়ে বেশি হতে পারে। এই সমস্যাটি মোকাবেলা করার জন্য, আমরা কার্যকরভাবে SSD-এর সুবিধা নিতে পারি, যা সাধারণ HDD-ভিত্তিক পদ্ধতির তুলনায় সামগ্রিকভাবে কাজ সমাপ্তির সময় কমাতে পারে।

DISK_শুধুমাত্র বিকল্পটি শুধুমাত্র অ-উদ্বায়ী স্টোরেজ ডিভাইসে যেমন HDDs বা SSDs, অর্থাৎ প্রধান মেমরিতে নয়, RDD সঞ্চয় করে। একটি ক্লাস্টার যেখানে পর্যাপ্ত পরিমাণে উপলব্ধ মেমরি নেই তারা এই বিকল্পের সাথে ভাল কার্যক্ষমতা অর্জন করতে পারে। এই ক্ষেত্রে, যেহেতু RDD শুধুমাত্র ডিস্ক মিডিয়াতে সংরক্ষণ করা হয়, মেমরির স্টোরেজ স্পেস ব্যবহার না করে শাফেল স্পেস বাড়ানো যেতে পারে। ফলস্বরূপ, PageRank-এর মতো একটি অ্যাপ্লিকেশন চালানোর সময়, যা তুলনামূলকভাবে প্রচুর পরিমাণে এলোমেলো ডেটা তৈরি করে, আমরা মেমরি_শুধুমাত্র ক্ষেত্রের চেয়ে ভাল কার্যক্ষমতা লক্ষ্য করতে পারি।
অফ{{0}HEAP বিকল্পটি স্পার্ককে অফ-হিপ স্পেস ব্যবহার করতে সক্ষম করে, যা জাভা আবর্জনা সংগ্রহকারীর ব্যবস্থাপনার বাইরে। এইভাবে, যদি আমরা অফ-হ্যাপ স্পেস ব্যবহার করি, তাহলে আমাদের অবশ্যই জটিল মেমরি অপারেশন যেমন বরাদ্দ/ডিঅ্যালোকেশন এবং সিরিয়ালাইজেশন/ডিসারিয়ালাইজেশন মোকাবেলা করতে হবে। তাই, ব্যবহারিক উদ্দেশ্যে, আমরা বন্ধ_HEAP কনফিগারেশন ব্যবহার করি না।
3.4। অপ্টিমাইজেশান পদ্ধতি
যেমনটি আমরা সেকশন 3.2 এবং 3.3 এ আলোচনা করেছি, আমাদের অপ্টিমাইজেশন পদ্ধতিগুলির মধ্যে রয়েছে (1) স্পার্ক JVM হিপের কনফিগারেশন এবং (2) RDD ক্যাশিং নীতির পরীক্ষামূলক বিকল্পগুলি নিম্নরূপ:
1. স্পার্ক JVM হিপ কনফিগারেশন: আমরা শাফেল এবং স্টোরেজ স্পেসের ক্ষমতা ভগ্নাংশ অনুপাত পরিবর্তনের প্রভাবগুলি তদন্ত করেছি। শাফেল এবং স্টোরেজ স্পেসের অনুপাত যথাক্রমে 60%:30%, 50%:40% এবং 20%:60%। "20%:60%" শাফেল এবং স্টোরেজ অনুপাত হল স্পার্ক সেটআপের ডিফল্ট মান। পর্যাপ্ত শাফেল স্পেস সহ ফলাফলের বিপরীতে আমরা "60%:30%" বেছে নিই এবং একটি ভারসাম্যপূর্ণ উপায়ে কর্মক্ষমতা দেখানোর জন্য "50%:40%" কনফিগার করি।
2. RDD ক্যাশিং নীতি: আমরা বিভিন্ন RDD ক্যাশিং নীতির প্রভাবগুলিও পরীক্ষা করেছি৷ আমরা বিভিন্ন নীতির কর্মক্ষমতা তুলনা করেছি যেমন অফ_হিপ, মেমরি_শুধুমাত্র, মেমরি_এবং_ডিস্ক, এবং ডিস্ক_শুধু, যেখানে ডিস্ক এই পরীক্ষায় SSD বোঝায়।
সারণি 3 RDD ক্যাশিং নীতি এবং স্পার্ক JVM ক্ষমতা ভগ্নাংশ অনুপাতের উপর ভিত্তি করে মোট 12টি ভিন্ন পরীক্ষামূলক কনফিগারেশন দেখায়। "_1" (উদাহরণস্বরূপ, "N_1") লেবেলযুক্ত পরীক্ষা কনফিগারেশনগুলিতে, আমরা স্পার্ক JVM হিপের 60% শাফল করার জন্য এবং 30% স্টোরেজ স্পেসগুলির জন্য সেট করেছি। "_2" লেবেলযুক্ত, আমরা স্পার্ক JVM হিপের 50% শাফল করার জন্য এবং 40% স্টোরেজের জন্য সেট করেছি। অবশেষে, "_3" লেবেলযুক্তদের জন্য, আমরা স্পার্ক JVM হিপের 20% শাফল করার জন্য এবং 60% স্টোরেজের জন্য সেট করেছি, যেমনটি "বিকল্প", "শাফল" এবং "স্টোরেজ" কলাম থেকে দেখা যায়। সারণী 3-এ উল্লেখ্য যে আমাদের টেস্টবেড ক্লাস্টারের এক্সিকিউটরের সর্বোচ্চ মেমরি সাইজ হল 2.7 জিবি, অর্থাৎ, প্রতিটি ওয়ার্কার নোডের স্পার্ক জেভিএম হিপ সাইজ হিসাবে 2.7 জিবি।

RDD ক্যাশিং নীতির পরিপ্রেক্ষিতে, "N" বিকল্পটি RDD ক্যাশ করার জন্য নয়, "M" বিকল্পটি শুধুমাত্র মেমরিতে RDD ক্যাশে করার জন্য, "M&S" বিকল্পটি হল মেমরিতে RDD এবং SSD একসাথে ক্যাশে করা, এবং অবশেষে, "S" বিকল্পটি শুধুমাত্র SSD-তে RDD ক্যাশ করার জন্য।
আমাদের পরীক্ষা-নিরীক্ষার মাধ্যমে, আমরা অপ্টিমাইজ করার কৌশলগুলি প্রস্তাব করি যা ক্লাস্টার থেকে সর্বোত্তম কর্মক্ষমতা অর্জন করতে পারে যার মেমরির পরিমাণ অপর্যাপ্ত রয়েছে স্পার্ক JVM হিপ কনফিগারেশনকে সাবধানতার সাথে সামঞ্জস্য করে এবং একটি কার্যকর RDD ক্যাশিং নীতি নিয়োগ করে, যেমনটি আমরা বিভাগ 4 এ দেখতে পাব।
4. পরীক্ষামূলক ফলাফল এবং বিশ্লেষণ
4.1। 500 MB পেজর্যাঙ্ক পরীক্ষা
4.1.1। JVM হিপ কনফিগারেশন পরিবর্তনের সাথে ফলাফল
চিত্র 3 JVM হিপের আকার পরিবর্তন করে PageRank কাজের চাপে প্রতিটি পর্যায়ের পরীক্ষামূলক ফলাফল দেখায়। স্বতন্ত্র পর্যায়ে, স্পার্ক ইনপুট ডেটা পড়ে এবং URL এবং লিঙ্কগুলিকে আলাদা করে। আমরা স্বতন্ত্র0 পর্যায়ের ফলাফল থেকে দেখতে পাচ্ছি, JVM হিপের আকার _1 এবং _2 থেকে _3 বিকল্পে পরিবর্তন করে সামগ্রিক সম্পাদনের সময় হ্রাস পায়, প্রধানত কারণে আবর্জনা সংগ্রহে (GC)। উদাহরণস্বরূপ, M&S_1, M&S_2 এবং M&S{{10}}-এ GC সময় যথাক্রমে 25 s, 24 s, এবং 16 s লাগে৷ তাই, স্বতন্ত্র0 পর্যায়ে, যেমন আমরা স্টোরেজ স্পেসের পরিমাণ বাড়াই, আমরা GC সময় কমিয়ে সামগ্রিক কর্মক্ষমতা উন্নত করতে পারি। অন্যদিকে, Distinct1 পর্যায়ে, সামগ্রিক সম্পাদনের সময় বৃদ্ধি পায় যখন আমরা _1 এবং _2 থেকে _3 বিকল্পগুলি পরিবর্তন করি। এটি মূলত এলোমেলো ছড়ানোর কারণে। যখন আমরা স্পার্ক ওয়েব UI চেক করি, তখন শাফেল মেমরি স্পেস না থাকার কারণে শাফেল ডেটা ডিস্কে ছড়িয়ে পড়ে। উদাহরণস্বরূপ, M&S_1, M&S_2, এবং M&S_3-এ ডিস্কে শাফেল স্পিল ডেটার আকার যথাক্রমে 0, 220 MB এবং 376 MB৷ যখন শাফেল স্পিল ঘটে, তখন ডিস্কে ডেটা ছড়িয়ে দেওয়ার জন্য সিপিইউ ওভারহেডগুলি বৃদ্ধি পায় কারণ ডেটা সিরিয়ালাইজ করা দরকার।

স্বতন্ত্র পর্যায়গুলির পরে, র্যাঙ্ক পাওয়ার জন্য পুনরাবৃত্তিমূলক ফ্ল্যাটম্যাপ পর্যায় রয়েছে। ফ্ল্যাটম্যাপ পর্যায়গুলি প্রচুর শাফেল ডেটা তৈরি করে, যা আমাদের ক্লাস্টারে প্রয়োজনীয় শাফেল মেমরির জায়গার অভাব করতে পারে। অতএব, যতই শাফেল স্পেসের উপলব্ধ পরিমাণ হ্রাস পায় (বিকল্প _1, _2 এবং _3 থেকে ক্রমানুসারে), তত বেশি শাফেল স্পিল ঘটতে পারে, যা সামগ্রিকভাবে কাজ সম্পাদনকে প্রভাবিত করতে পারে সময় (যেমন, M&S বিকল্প flatMap2 পর্যায় _1: 37 s, _2: 40 s, _3: 49 s)। যাইহোক, যখন ডেটা শুধুমাত্র মেমরিতে ক্যাশে করা হয় (যেমন, M_1, M_2, এবং M_3), তারা অন্য প্যাটার্ন দেখায়। এই আচরণের প্রধান কারণ হল স্পার্ক শিডিউলার অসমভাবে কাজগুলি নির্ধারণ করে কারণ _1 এবং _2 বিকল্পগুলিতে RDD ক্যাশ করার জন্য মেমরি স্টোরেজ স্থানের অভাব রয়েছে৷ যদি একজন কর্মীর আরডিডি না থাকে তবে তাকে শিডিউলিং পুল থেকে বাদ দেওয়া হয়। অতএব, অন্যান্য কর্মীদের GC ওভারহেডের সাথে অতিরিক্ত কাজগুলি পরিচালনা করতে হবে যা পুরো কাজ সম্পাদনের সময়কে প্রভাবিত করতে পারে।
4.1.2। RDD ক্যাশিং বিকল্প পরিবর্তনের সাথে ফলাফল
প্রথমত, স্বতন্ত্র পর্যায়গুলি RDD ক্যাশিং নীতি পরিবর্তনের দ্বারা প্রভাবিত হয় না কিন্তু শুধুমাত্র মেমরি ব্যবহারের দ্বারা প্রভাবিত হয়। RDD ক্যাশিং বিকল্প দ্বারা প্রভাবিত পর্যায়গুলি হল ফ্ল্যাটম্যাপ পর্যায় যেহেতু শাফেল পর্বের সময়, ক্যাশে করা আরডিডিগুলি আবার ব্যবহার করা হয়।

চিত্র 4-এ, গ্রাফটিকে N_1 বিকল্প দ্বারা স্বাভাবিক করা হয়েছে যা পারফরম্যান্সের পার্থক্য পরীক্ষা করতে RDD এবং _1 মেমরি কনফিগারেশনকে ক্যাশে করে না। M_1, M&S_1, এবং S_1-এর ক্রম অনুসারে শুধুমাত্র _1-এর গ্রাফের তুলনা করার সময়, M{{8-এ 32% কর্মক্ষমতা হ্রাস পায় }} এবং যথাক্রমে M&S_1 এবং S_1 এর সাথে 30% এবং 20% কর্মক্ষমতা উন্নতি৷ M{13}} বিকল্পের সাথে, তুলনামূলকভাবে খারাপ কর্মক্ষমতার কারণ হল যে সঞ্চয়স্থানের অভাবের কারণে RDDগুলি অসমভাবে ক্যাশে করা হয়, যার ফলে আমরা পূর্বে উল্লেখ করেছি অসম সময়সূচীতে পরিণত হবে৷ এর মানে হল JVM হিপ স্পেস ডেটা এলোমেলো করার জন্য এবং RDDগুলি সংরক্ষণ করার জন্য অপর্যাপ্ত।

এই সমস্যার সমাধান করার জন্য, আমরা মেমরি এবং SSD উভয় ক্ষেত্রেই ক্যাশে RDD ছড়িয়ে দিয়েছি, যা M&S_1 বিকল্পের সাথে দেখানো কর্মক্ষমতা উন্নত করতে পারে। মেমরিতে RDD ক্যাশ করা RDD-এর অ্যাক্সেসের গতিকে উন্নত করে, এবং SSD-তে RDD ক্যাশে করা মেমরিতে উপলব্ধ শাফেল স্থান কার্যকরভাবে প্রসারিত করে শাফেল স্পিল এড়াতে পারে। S_1 বিকল্পের সাথে যা 20% কর্মক্ষমতা উন্নতি দেখিয়েছে, RDD শুধুমাত্র SSD তে ক্যাশে করা হয়। SSD-তে RDD ক্যাশে করে শাফেল স্পিল কমে যায়। যাইহোক, এটি M&S_1 এর চেয়ে কম কর্মক্ষমতা উন্নতি অর্জন করেছে, যেখানে RDD প্রধানত মেমরিতে ক্যাশ করা হয় এবং মেমরি থেকে পুনরায় ব্যবহার করা হয়।
স্পার্কের ডিফল্ট কনফিগারেশনে, যা বিকল্প _3, আমরা দেখতে পারি যে M_3, M&S_3, S_3, এবং N{{4 এর ক্রমে }}, সামগ্রিক কর্মক্ষমতা হ্রাস পায়। ডিফল্ট কনফিগারেশনে, JVM হিপের স্টোরেজ RDD-এর ব্যালেন্স সহ ক্যাশে করার জন্য যথেষ্ট। অতএব, সামগ্রিক কর্মক্ষমতা প্রধানত ব্যবহৃত মেমরি ডিভাইসের কর্মক্ষমতা উপর নির্ভর করে। যাইহোক, আমরা এখনও M&S_1 বিকল্পের সাথে সেরা পারফরম্যান্স দেখতে পাচ্ছি কারণ আমরা কার্যকরভাবে GC সময় কমাতে পারি এবং মেমরি এবং SSD উভয় ক্ষেত্রেই RDD ক্যাশ করে স্পিল স্পিল করতে পারি।
4.2। 1 জিবি পেজর্যাঙ্ক পারফরম্যান্স
আমরা 500 MB থেকে 1 GB পর্যন্ত ডেটার আকার বাড়িয়ে PageRank কাজের চাপ নিয়ে পরীক্ষা করেছি৷ চিত্র 5 500 MB ডেটাসেটের জন্য PageRank-এর তুলনায় সিস্টেমের বিভিন্ন আচরণ দেখায়। আমরা কিছু ব্যর্থ কাজ দেখতে পাচ্ছি যেগুলি টেক6 স্টেজ পর্যন্ত কাজটি সম্পূর্ণ করতে সফল হয়নি (যেমন, N_1, N_2, M_1, M_2, M _3, M&S_3)। এই ব্যর্থ কাজের মধ্যে, ফ্ল্যাটম্যাপ2 পর্যায়ে ব্যর্থ হওয়াগুলি রয়েছে, যেগুলি হল N_1, N_2, এবং M_1৷ কাজের ব্যর্থতার কারণ স্টোরেজ মেমরির অভাব। RDD অপর্যাপ্ত মেমরিতে ক্যাশ করা হলে GC ঘটে। এই GC ওভারহেডের কারণে, স্পার্ক নির্বাহক একটি ExecutorLostFailure ব্যতিক্রম পায়।
M_2, M_3, এবং M&S_3 ফ্ল্যাটম্যাপ2 পর্যায় পর্যন্ত প্রক্রিয়াকরণের সাথে এগিয়ে যেতে পারে; যাইহোক, এর পরে, ব্যর্থতা ঘটে। M&S_3 ফ্ল্যাটম্যাপ2 পর্যায় পর্যন্ত M_3 এর মতোই কাজ করে কারণ যখন M&S_3 বিকল্পটি ব্যবহার করা হয়, তখন RDD ক্যাশে করার জন্য যথেষ্ট মেমরি থাকে। ফ্ল্যাটম্যাপ2-এর পরে, ফ্ল্যাটম্যাপ3 স্টেজে শাফেল মেমরি স্পেস না থাকার কারণে OutOfMemory ত্রুটি ঘটে।
4.2.1। JVM হিপ কনফিগারেশন পরিবর্তনের সাথে ফলাফল
স্বতন্ত্র0 পর্যায়টি 500 MB ডেটাসেটের অনুরূপ ফলাফল দেখায়, এবং সামগ্রিক কর্মক্ষমতা _1, _2 এবং _3 বিকল্পগুলির ক্রমে উন্নত হয়৷ এর কারণ হল GC সময় যথাক্রমে 78 সেকেন্ড, 59 সেকেন্ড এবং 28 সেকেন্ডে কমে গেছে।
অন্যদিকে, Distinct1 পর্যায়ে, এটি 500 MB ডেটাসেটের জন্য বিভিন্ন ফলাফল দেখিয়েছে। 500 MB ডেটাসেট পরীক্ষায়, আমরা মেমরির শাফেল স্পেস বাড়িয়ে কর্মক্ষমতা লাভ দেখতে পারি। যাইহোক, 1GB ডেটাসেট পরীক্ষায়, কর্মী নোডের নির্বাহক মেমরি ডেটার বড় আকারকে মিটমাট করতে পারে না। অতএব, মেমরির এলোমেলো স্থান তুলনামূলকভাবে অপর্যাপ্ত হয়ে যায়। উদাহরণস্বরূপ, _1, _2 এবং _3 বিকল্পগুলির জন্য শাফেল স্পিলের পরিমাণ যথাক্রমে 575.5 MB, 813.8 MB এবং 843.4 MB, এবং GC সময় লাগে 33 s, 10 s, এবং 8 s, যথাক্রমে। যেমনটি আমরা আগে উল্লেখ করেছি, যখন একটি শাফেল স্পিল ঘটে, তখন আরডিডিকে সিরিয়ালাইজ করা দরকার যাতে সিপিইউ কম্পিউটেশন বাড়তে পারে, যার ফলে সামগ্রিক কর্মক্ষমতা হ্রাস পেতে পারে।

4.2.2। RDD ক্যাশিং নীতি পরিবর্তনের ফলাফল
RDD ক্যাশিং নীতি পরিবর্তন করে সম্পাদনের সময় বিশ্লেষণ করার জন্য, যেমনটি আমরা চিত্র 6 থেকে দেখতে পাচ্ছি, আমরা চিত্র 5 থেকে স্বতন্ত্র পর্যায়গুলি বাদ দিয়েছি। এর কারণ হল আমাদের স্বতন্ত্র পর্যায়গুলি বিশ্লেষণ করার দরকার নেই কারণ RDD ক্যাশিং নীতি পরিবর্তনের ফলে কোন পরিবর্তন হয় না। .
মজার বিষয় হল, 500 এমবি ডেটাসেটের বিপরীতে ফ্ল্যাটম্যাপ পর্যায়ে বিভিন্ন JVM হিপ কনফিগারেশনের সাথে কোন পরিবর্তন নেই। এর কারণ হ'ল পর্যাপ্ত মেমরি না থাকার কারণে সমস্ত কনফিগারেশনে শাফেল স্পিল ঘটে। RDD ক্যাশিং বিকল্প পরিবর্তন করে সামগ্রিক সম্পাদনের সময় M&S, S, N, এবং M-এর ক্রমানুসারে বৃদ্ধি পায়। (M&S হল দ্রুততম বিকল্প।) বিকল্প N-এ, পর্যাপ্ত মেমরি স্পেস না থাকায় ExecutorLostFailure ত্রুটি ঘটে। অপশন M-এ, যখন RDD মেমরিতে ক্যাশ করা হয়, তখন GC ওভারহেড ঘটে কারণ মেমরির অপর্যাপ্ত জায়গা থাকে। এমনকি যদি RDD মেমরিতে ক্যাশে করা হয়, তবে কাজটি ব্যর্থ হয় কারণ ExecutorLostFailure ত্রুটির কারণে যেটি ঘটে যখন শাফেল মেমরি স্পেস অপর্যাপ্ত হয় (OutOfMemory)।
এই ধরনের কম উপলব্ধ মেমরি পরিস্থিতিতে, M&S এবং S বিকল্পগুলি কার্যকর বিকল্প হতে পারে। M&S{{0}} বিকল্পে, আমরা মেমরি এবং SSD উভয় ব্যবহার করে RDD ক্যাশে করে RDD-এর অ্যাক্সেসযোগ্যতা বাড়াই। ফলস্বরূপ, 500 MB ডেটাসেটের মতো একই কারণে কর্মক্ষমতার উন্নতি হয়েছে৷ উপরন্তু, SSD-তে RDD ক্যাশে করার কারণে যথেষ্ট শাফেল মেমরি স্পেস রয়েছে। চিত্র 6-এ দেখা গেছে, M&S_1 বিকল্পটি এই পরীক্ষায় দ্রুততম বিকল্প হয়ে ওঠে (M&S_1:0.6, S_1:0.63, T_1 0.64)।

4.3। টিসি পরীক্ষা বিশ্লেষণ
চিত্র 7 টিসি (ট্রানজিটিভ ক্লোজার) পরীক্ষার ফলাফল দেখায় যা 50,000 প্রান্ত এবং 25,000 শীর্ষবিন্দু এলোমেলোভাবে তৈরি করা ইনপুট ডেটা ব্যবহার করে। পুনরাবৃত্তির সংখ্যা হল 10। পুনরাবৃত্তির মাধ্যমে, প্রতিটি পুনরাবৃত্তিতে কাজের সংখ্যা দ্বিগুণ হয়, এবং সেইজন্য, RDD-এর আকার বৃদ্ধি পায় এবং রিড এবং রাইট করার পরিমাণও বৃদ্ধি পায়। শেষ পুনরাবৃত্তিতে, টাস্কের সংখ্যা 4096 হয়ে যায়। যেহেতু আরও পুনরাবৃত্তি পর্যায় রয়েছে, তাই মোট কাজ সম্পাদনের সময় একটি বৃহত্তর প্রভাব রয়েছে, এবং শেষ পুনরাবৃত্তির পর্যায়টি সবচেয়ে বড়, এতে অনেকগুলি কাজ রয়েছে যা সামগ্রিক কর্মক্ষমতা কমিয়ে দিতে পারে। .

আমরা চিত্র 7 থেকে দেখতে পাচ্ছি, M, M&S, এবং S বিকল্পগুলিতে কর্মক্ষমতা _3, _2, এবং _1 এর ক্রমানুসারে উন্নত হয়, যার মানে হল পর্যাপ্ত হাতবদল পাওয়া JVM হিপের স্মৃতি সহায়ক। M বিকল্পের সাথে, বিকল্প _1-এর কর্মক্ষমতা বিকল্প _3 থেকে 18% দ্রুত, যেখানে, M&S বিকল্পে, বিকল্প _1-এর কর্মক্ষমতা {{9 এর চেয়ে 3% দ্রুত। }} S বিকল্পে, _1-এর কর্মক্ষমতা _3 এর চেয়ে 2% দ্রুত।
যখন আমরা RDD ক্যাশিং বিকল্প পরিবর্তন করার উপর ফোকাস করি, বিকল্প S_1-এর কর্মক্ষমতা N_1 এর চেয়ে 42% দ্রুত, এবং এটি M_1-এর থেকেও 31% দ্রুত। কাজ সম্পাদনের সময় পারফরম্যান্স লাভের কারণ শেষ পুনরাবৃত্তি পর্যায়ে নির্ভর করে। শেষ পুনরাবৃত্তি পর্যায়ে প্রভাবিত করার মূল ফ্যাক্টর হল শাফেল রিড ব্লক করা সময়। এক্সিকিউটর মেমরির অভাবের কারণে নেটওয়ার্কের মাধ্যমে অন্য ওয়ার্কার নোড থেকে পূর্ববর্তী পর্যায়ে সম্পাদিত RDD পড়ার সময় শাফেল রিড ব্লক করা সময় ঘটে।
এমনকি যদি প্রতিটি টাস্ক শাফেল রিড ব্লকড টাইম সমাধান করে প্রায় 1-2 সেকেন্ডের পারফরম্যান্স লাভ করে, আমরা একটি উল্লেখযোগ্য পারফরম্যান্স লাভ অর্জন করতে পারি কারণ, শেষ অবস্থায়, কাজের সংখ্যা বেশ বড় (যেমন, 4096)। উপরন্তু, কাজ সম্পাদনের সময়কে প্রভাবিত করে এমন একটি প্রধান কারণ হল গণনা পর্যায়, যা শেষ কাজটিতে TC ম্যাট্রিক্সের কত প্রান্ত আছে তা গণনা করে।
N বিকল্পের সাথে, যেহেতু গণনা পর্যায়ে কোনো RDD ক্যাশ করা নেই, স্পার্ক পূর্ববর্তী পর্যায় থেকে কার্যকর করা শাফেল ডেটা পড়ে, যার জন্য 60 সেকেন্ড সময় লাগে। উপরন্তু, M বিকল্পে, নির্বাহক মেমরির অভাবের কারণে RDD মেমরিতে ক্যাশে করা হয় না। ফলস্বরূপ, এটিও 60 সেকেন্ড সময় নেয়। যাইহোক, M&S এবং S বিকল্পগুলিতে, RDD মেমরি এবং SSD-তে ক্যাশে করা যেতে পারে, যাতে গণনা পর্যায়ে এটি মাত্র 2 সেকেন্ড সময় নেয়।
4.4। TeraSort পরীক্ষা বিশ্লেষণ
চিত্র 8 টেরাসোর্ট বেঞ্চমার্কের পরীক্ষামূলক ফলাফল দেখায় যা JVM হিপ কনফিগারেশন এবং RDD ক্যাশিং বিকল্প পরিবর্তন করে একটি 10 GB ডেটাসেট ব্যবহার করে। এই গ্রাফটি বিকল্প N_1 দ্বারা স্বাভাবিক করা হয়েছে। আমরা দেখতে পাচ্ছি যে সমস্ত কাজ সম্পাদনের সময় একই রকম; তাদের মধ্যে পার্থক্য 5% এর কম। TeraSort কাজের চাপে, কনফিগারেশন এবং বিকল্পগুলি পরিবর্তন করে কোন কর্মক্ষমতা উন্নতি বা অবনতি হয়নি। বাছাই পর্যায়ে, নেটওয়ার্কের মাধ্যমে কয়েকটি হাতবদল আছে। যাইহোক, শাফেল রিড এবং শাফেল রাইটের আকার প্রতিটি 25 এমবি, যা PageRank এবং TC এর তুলনায় বেশ ছোট। অতএব, JVM হিপ কনফিগারেশন এবং RDD ক্যাশিং বিকল্প কর্মক্ষমতা প্রভাবিত করে না। তদ্ব্যতীত, টেরাসোর্ট কাজের চাপে ট্রানজিটিভ ক্লোজারের মতো পুনরাবৃত্তিমূলক কাজ থাকে না, তাই পূর্ববর্তী পর্যায়ে RDD ক্যাশিং থেকে কোন সুবিধা নেই।

4.5। K- মানে ক্লাস্টারিং এক্সপেরিমেন্ট অ্যানালাইসিস
1.5 GB ডেটাসেটের জন্য k-মানে ক্লাস্টারিংয়ের স্বাভাবিক কাজ সমাপ্তির সময় চিত্র 9-এ দেখানো হয়েছে। k-মানে ক্লাস্টারিংয়ের উদ্দেশ্য হল দূরত্ব পরিমাপের (যেমন, ইউক্লিডীয় দূরত্ব) উপর ভিত্তি করে ডেটাসেটে k ক্লাস্টারগুলি খুঁজে বের করা। এই কাজের চাপে, অ্যালগরিদম k কেন্দ্র বিন্দু এবং প্রতিটি ডেটা পয়েন্টের মধ্যে দূরত্বের গণনা পুনরাবৃত্তি করে SSE (বর্গীয় ত্রুটির যোগফল) [24] হ্রাস করে। এই পরীক্ষায়, আমরা এই প্রক্রিয়াটি আটবার পুনরাবৃত্তি করি। এলোমেলো করা ডেটার পরিমাণ ন্যূনতম কারণ পূর্ববর্তী পর্যায় থেকে প্রয়োজনীয় ডেটা প্রতিটি পর্যায়ে কেন্দ্র পয়েন্ট এবং SSE সম্পর্কিত তথ্য। আমাদের কে-মানে ক্লাস্টারিং ওয়ার্কলোডে, ডাটা রিড/রাইট করার সর্বোচ্চ পরিমাণ হল 1৷{8}} MB, এবং সর্বনিম্ন হল 0.8 MB৷ শাফেল স্পিল এখানে ঘটে না কারণ সমস্ত সেটিংসে শাফেল স্পেস যথেষ্ট। কোন ক্যাশিং বিকল্প ছাড়া পরীক্ষায়, বিকল্পগুলির মধ্যে কোন পার্থক্য নেই _1, _2, এবং _3, কারণ এই সেটিংসগুলি কোনও RDD ক্যাশে করে না, এবং তিনটি সেটিংসেই, শাফেল স্থান যথেষ্ট।

মূল মেমরি বা মেমরি এবং SSD-এ RDD-কে ক্যাশ করার সময়, RDD-এর জন্য যত বেশি স্টোরেজ স্পেস থাকবে, কাজের এক্সিকিউশন টাইমে কর্মক্ষমতা তত বেশি উন্নত হবে কারণ স্টোরেজ স্পেসে আরও RDD ক্যাশে করা যেতে পারে। মেমরি_কেবল বিকল্প এবং মেমরি_এবং_এসএসডি বিকল্পের তুলনা করার সময়, মেমরি_এবং_এসএসডি বিকল্পটি আরও ভাল কর্মক্ষমতা উন্নতি দেখায়। এর কারণ হল, মেমরিতে_একমাত্র বিকল্প, এমনকি M_3 বিকল্পেও স্টোরেজ স্পেস অপর্যাপ্ত। উপরন্তু, SSD তে RDD গুলি ক্যাশ করা স্টোরেজ মেমরির অভাবের সমাধান করে। মেমরি_এবং_এসএসডি বিকল্পগুলি শুধুমাত্র মেমরি{10}}বিকল্পের তুলনায় গড়ে 10% কার্যক্ষমতা উন্নত করেছে৷
নোট করুন যে k-মানে ক্লাস্টারিং ওয়ার্কলোড পেজর্যাঙ্ক এবং ট্রানজিটিভ ক্লোজার ওয়ার্কলোডের বিপরীত কর্মক্ষমতা প্রবণতা দেখায় কারণ শাফেল ডেটার পরিমাণে পার্থক্য রয়েছে। আমরা নিম্নলিখিত উপধারায় আরও বিস্তারিতভাবে এই বিষয়ে আলোচনা করব।
5. আলোচনা এবং সারাংশ
5.1। আলোচনা
আমরা কাজের চাপ এবং প্রক্রিয়াকরণ পর্যায়ের বৈশিষ্ট্যের উপর ভিত্তি করে সম্ভাব্য কর্মক্ষমতা হ্রাস সমস্যার প্রধান কারণগুলি বিশ্লেষণ করেছি। বিভিন্ন কাজের চাপের জন্য স্পার্ক প্ল্যাটফর্মের পারফরম্যান্স অপ্টিমাইজেশন কৌশল প্রয়োগ করার বিষয়ে আমাদের বিস্তৃত পরীক্ষামূলক ফলাফলের সংক্ষিপ্ত বিবরণ নিম্নরূপ:
• জাভা আবর্জনা সংগ্রহের দ্বারা কর্মক্ষমতার অবনতি: 500 MB ডেটাসেট এবং 1GB ডেটাসেটের সাথে PageRank ওয়ার্কলোডে, যখন RDD সঞ্চয় করার জন্য JVM হিপের অপর্যাপ্ত স্টোরেজ স্পেস থাকে তখন GC ঘটে। Distinct0 পর্যায়ে যা HDFS থেকে ইনপুট ফাইলটি পড়ে এবং এটিকে RDD এ ক্যাশ করে, GC ঘটে। আমরা এই GC সমস্যা সমাধানের জন্য কনফিগারেশনের মাধ্যমে JVM হিপের স্টোরেজ স্পেস প্রসারিত করি। আমরা GC কমাতে পারফরম্যান্স উন্নত করতে পারি কারণ JVM হিপের স্টোরেজ স্পেস প্রসারিত করা যেতে পারে। চিত্র 3 এবং 5-এ, একই RDD ক্যাশিং বিকল্পের সাথে, _3 কনফিগারেশনটি Distinct0 পর্যায়ে সেরা কর্মক্ষমতা দেখায়। এছাড়াও, 1 জিবি ডেটাসেটের সাথে পেজর্যাঙ্কে, মেমরির অভাবের কারণে কিছু বিকল্প ফ্ল্যাটম্যাপ পর্যায়ে ব্যর্থ হয়। GC ওভারহেড এতটাই বৃদ্ধি পায় যে পর্যায়টি ব্যর্থ হয় বা একটি অসীম লুপে যায়। এইভাবে, আমরা এই সমস্যা সমাধানের জন্য SSDs সহ ক্লাস্টার তৈরি করি। এটি একটি কর্মক্ষমতা উন্নতি দেখায় এবং সেই কাজে সফল হয় যা শুধুমাত্র মেমরি ব্যবহার করে ব্যর্থ হয়েছে, যেমনটি চিত্র 6, M&S_1 এবং S_1 এ দেখা গেছে।
• শাফেল স্পিল দ্বারা কর্মক্ষমতার অবনতি: 500 MB ডেটাসেট এবং 1 GB ডেটাসেটের সাথে PageRank ওয়ার্কলোডে, ফ্ল্যাটম্যাপ পর্যায়ে, আমরা দেখতে পারি যে M&S_1 বিকল্পটি সর্বোত্তম কার্যক্ষমতা দেখায় কারণ এতে সর্বনিম্ন পরিমাণে শাফেল রয়েছে স্পিল (চিত্র 4: M&S_1 N_1 এর চেয়ে 30% দ্রুত; চিত্র 6: M&S_1 N_3 এর চেয়ে 40% দ্রুত)। PageRank-এর অনেকগুলি এলোমেলো কাজ রয়েছে৷ এইভাবে, যখন নেটওয়ার্কের মাধ্যমে ডাটা এলোমেলো করার জন্য JVM হিপের শাফেল স্পেস অপর্যাপ্ত হয়, তখন শাফেল স্পিল ঘটে। অতএব, শাফেল স্পিল কমাতে, JVM হিপের শাফেল স্পেস প্রসারিত করা কর্মক্ষমতা উন্নতির মূল ফ্যাক্টর হয়ে ওঠে।
উপরন্তু, আমরা মেমরি এবং এসএসডি উভয়েই RDD সংরক্ষণ করে কর্মক্ষমতা উন্নত করতে পারি। এটি নির্বাহককে শাফেল স্পিল কমাতে JVM হিপের শাফেল মেমরি প্রসারিত করতে পারে। যদি আরও পুনরাবৃত্তি হয়, তাহলে ফ্ল্যাটম্যাপ পর্যায় থেকে কর্মক্ষমতার উন্নতির মূল বিষয় হবে। 1GB ডেটাসেট পরীক্ষায়, S_3-এর কাজ সম্পাদনের সময় হল সর্বোত্তম বিকল্প, কারণ RDDগুলি শুধুমাত্র SSD-তে ক্যাশে করা হয় এবং নির্বাহকগুলিতে যথেষ্ট হিপ মেমরি রয়েছে৷ সুতরাং, S_3 বিকল্পে, স্বতন্ত্র পর্যায়গুলি অন্য যেকোনো বিকল্পের চেয়ে দ্রুত। যাইহোক, যদি পুনরাবৃত্তি সংখ্যা বৃদ্ধি পায়, তাহলে ফ্ল্যাটম্যাপ পর্যায় কাজ সম্পাদনের সময়কে প্রভাবিত করে। সুতরাং, M&S_1 বিকল্পটি এই ক্ষেত্রে দুর্দান্ত কার্যক্ষমতা অর্জন করতে পারে। এই বিশ্লেষণের মাধ্যমে, আমরা শনাক্ত করতে পারি যে কাজ সমাপ্তির সময়ের উপর হাতবদল একটি মূল প্রভাব ফেলে। এইভাবে, আমাদের JVM হিপের শাফেল মেমরি প্রসারিত করতে হবে এবং শাফেল স্পিল রোধ করার জন্য যথেষ্ট শাফেল মেমরি স্পেস পেতে মেমরি এবং SSD উভয়েই RDD ক্যাশে করতে হবে।
• শাফেল রিড ব্লকড টাইম দ্বারা কর্মক্ষমতার অবনতি: TC কাজের চাপে শাফেল রিড ব্লকড টাইম আছে। এটি ঘটে যখন পর্যায়ে অনেকগুলি কাজ থাকে এবং প্রতিটি কাজের জন্য নেটওয়ার্কের মাধ্যমে পূর্ববর্তী RDD পড়তে হয়। TC পরীক্ষার ফলস্বরূপ (চিত্র 7), M&S বিকল্পটি M-এর চেয়ে দ্রুততর। একই RDD ক্যাশিং বিকল্পে, JVM হিপের শাফেল স্পেস প্রসারিত করা স্টোরেজ স্পেস প্রসারিত করার চেয়ে দ্রুততর। উন্নত কর্মক্ষমতার কারণ হল যে JVM হিপের শাফেল স্পেস প্রসারিত করার মাধ্যমে, শাফেল রিড ব্লকড টাইম প্রতিটি টাস্কে কমে যায়।
5.2। সারাংশ: কোনটি সবচেয়ে ভালো উপায়?
বিস্তৃত পরীক্ষামূলক ফলাফলে, সমস্ত কাজের চাপ বৃদ্ধি করার জন্য একটি একক সেরা সেটআপ নেই, যেহেতু এই প্রতিটি কাজের চাপের আলাদা বৈশিষ্ট্য রয়েছে, এমনকি তার কর্মজীবনেও। যাইহোক, আমরা এখনও প্রস্তাব করতে পারি কীভাবে একটি বিতরণ করা ইন-মেমরি কম্পিউটিং প্ল্যাটফর্মের কনফিগারেশনগুলিকে নিম্নরূপ লক্ষ্য কাজের লোডের বিভিন্নতা বিবেচনা করে অপ্টিমাইজ করা যায়:
• স্পার্ক JVM হিপ কনফিগারেশন—শাফেল এলাকা বনাম স্টোরেজ এলাকা: চারটি ভিন্ন ওয়ার্কলোডের পরীক্ষামূলক ফলাফল অনুযায়ী, আমরা কাজের চাপের বৈশিষ্ট্যের উপর নির্ভর করে পারফরম্যান্সের পার্থক্য লক্ষ্য করতে পারি। উদাহরণস্বরূপ, পেজর্যাঙ্ক হল প্রচুর পরিমাণে শাফেল ডেটা থাকার একটি সাধারণ উদাহরণ তাই শাফেল অংশে আরও মেমরি বরাদ্দ করা সামগ্রিক কর্মক্ষমতা উন্নত করে। যাইহোক, k-মানে ক্লাস্টারিংয়ের ক্ষেত্রে, আমরা স্টোরেজ মেমরিতে যত বেশি বরাদ্দ করি, মেমরি শাফেল করার বিপরীতে, কম কার্যকর করার সময় প্রয়োজন। অতএব, আমরা যদি কাজের চাপের বৈশিষ্ট্য অনুযায়ী JVM মেমরি বরাদ্দ শতাংশকে গতিশীলভাবে সামঞ্জস্য করতে পারি, তাহলে আমরা মোট নির্বাহের সময়কে অপ্টিমাইজ করতে পারি। Hadoop সুতা [25] আমাদের বিভিন্ন ধরণের ক্লাস্টারে (কনফিগারেশন) কাজ বরাদ্দ করতে সক্ষম করে যাতে আমরা এই ধারণাটি বিভিন্ন ধরণের কাজের জন্য মেমরি বৈশিষ্ট্যগুলি পূরণ করার জন্য একটি বড় আকারের Hadoop ক্লাস্টারে প্রয়োগ করতে পারি।
• RDD ক্যাশিং নীতি—মেমরি বনাম SSD: বেশিরভাগ ক্ষেত্রে, SSD-ব্যাকড মেমরি ক্যাশিং সেরা কার্যকারিতা দেখায় যদি না সমস্ত RDD প্রকৃত প্রধান মেমরির মধ্যে ফিট করতে পারে। অতএব, এসএসডি-সহায়তা মেমরি ক্যাশিং নীতিটি চ্যালেঞ্জিং কাজের চাপের জন্য একটি কার্যকর পছন্দ হতে পারে যার জন্য যথেষ্ট পরিমাণে প্রধান মেমরির প্রয়োজন হয় যা একটি ক্লাস্টারের কোনো একক নোড দ্বারা পূরণ করা যায় না।
6। উপসংহার
এই কাগজে, আমরা অপর্যাপ্ত উপলব্ধ প্রধান স্মৃতি সহ একটি কমোডিটি-সার্ভার-ভিত্তিক কম্পিউটিং ক্লাস্টারের উপরে চলমান স্পার্ক সিস্টেমের কর্মক্ষমতা হ্রাসের প্রধান কারণগুলি তদন্ত করেছি। পরীক্ষা এবং বিশ্লেষণের পর, আমরা বিকল্প উপস্থাপন করেছি যা সামগ্রিক কর্মক্ষমতা উন্নত করতে পারে।
জাভা আবর্জনা সংগ্রহ ঘটে যখন JVM হিপের স্টোরেজ স্পেস শারীরিক স্মৃতির অভাবের কারণে অপর্যাপ্ত হয়। জাভা জিসি কাজগুলিকে আবর্জনা সংগ্রহের জন্য অপেক্ষা করে যাতে সামগ্রিক কাজ সমাপ্তির সময় বৃদ্ধি পায়। শাফেল স্পিল ঘটে যখন JVM হিপের শাফেল স্পেস শাফেল পর্বের সময় অপর্যাপ্ত হয়। শাফেল স্পিল ডিস্কে ইন্টারমিডিয়েট শাফেল ডেটা স্পিল করার জন্য সিরিয়ালাইজেশন সঞ্চালনের জন্য সিপিইউ ওভারহেড বাড়ায় শাফেল স্পেসের অভাবের কারণে। TC কাজের চাপ পরীক্ষায়, শাফেল রিড ব্লকড টাইম শাফেল স্পেস না থাকার কারণে নেটওয়ার্কের মাধ্যমে শাফেল ডেটা পড়ার জন্য টাস্ককে অপেক্ষা করে। এই সমস্ত কারণগুলি সম্ভাব্যভাবে সামগ্রিক কাজ সমাপ্তির সময়কে বাড়িয়ে তুলতে পারে যা স্পার্ক সিস্টেমের কার্যকারিতাকে গুরুতরভাবে প্রভাবিত করতে পারে।
এই সমস্যাগুলি মোকাবেলা করার জন্য, আমরা একটি এসএসডি দিয়ে একটি ক্লাস্টার তৈরি করি এবং মেমরির স্টোরেজ স্পেস পরিপূরক করার জন্য এসএসডি ব্যবহার করে মেমরি এবং এসএসডি উভয়েই আলাদাভাবে RDD ক্যাশে করি। উপরন্তু, আমরা শাফেল স্পেস প্রসারিত করার জন্য JVM হিপ কনফিগারেশন সামঞ্জস্য করি। ফলস্বরূপ, আমরা PageRank কাজের চাপের জন্য 30% পারফরম্যান্সের উন্নতি এবং TC কাজের চাপের জন্য 42% পারফরম্যান্সের উন্নতি করতে পারি। আমরা শনাক্ত করেছি যে শাফেল স্পিল কার্যক্ষমতা হ্রাসের একটি মূল কারণ হতে পারে এবং পরীক্ষা-নিরীক্ষার মাধ্যমে দেখিয়েছি যে বিভিন্ন পুনরাবৃত্তি এবং শাফলিং সমন্বিত কাজের চাপে, শাফেল স্পেস প্রসারিত করা উল্লেখযোগ্য কর্মক্ষমতা লাভ প্রদান করতে পারে। উপরন্তু, আমরা দেখেছি যে কাজের বিভিন্ন মেমরি ব্যবহারের ধরণগুলি JVM-এ স্টোরেজ/শাফেল মেমরি শতাংশ বরাদ্দের উপর নির্ভর করে মোট সম্পাদনের সময়কে প্রভাবিত করতে পারে। PageRank এবং k-মানে ক্লাস্টারিং-এর কর্মক্ষমতা বিশ্লেষণ অনুসারে, JVM-এ মেমরি বরাদ্দ যা কাজের চাপের বৈশিষ্ট্যগুলির সাথে সুসংগতভাবে কাজ শেষ করার সময়কে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
এই ফলাফলগুলিকে স্পার্ক প্ল্যাটফর্মে একীভূত করা আমাদের ভবিষ্যতের কাজগুলির মধ্যে একটি হবে। উদাহরণস্বরূপ, যদি কাজের লোডগুলিকে শাফেল ডেটার পরিমাণের পরিপ্রেক্ষিতে চিহ্নিত করা যেতে পারে, তবে একটি অপ্টিমাইজড কনফিগারেশন স্বয়ংক্রিয়ভাবে টার্গেট ওয়ার্কলোডের প্রক্রিয়াকরণকে ত্বরান্বিত করতে প্রয়োগ করা যেতে পারে। অতএব, ভিন্নধর্মী সার্ভার কনফিগারেশনে, একটি কাজের চাপ মেমরি ব্যবহার-সচেতন শিডিউলিং সিস্টেমের বিকাশ একটি স্পার্ক-ভিত্তিক ক্লাস্টারের সামগ্রিক কর্মক্ষমতা উন্নত করতে পারে।
লেখকের অবদান:
ধারণা, জেএল (জাহওয়ান লি); পদ্ধতি, জেএল (জাহওয়ান লি) এবং জেসি; সফ্টওয়্যার, জেসি এবং জেএল (জাহেউন লি); বৈধতা, JC, JL (Jaehyun Lee) এবং JL (Jaehwan Lee); তদন্ত, JL (Jaehwan Lee) এবং J.-SK; সম্পদ, JL (জাহওয়ান লি) এবং J.-SK; ডেটা কিউরেশন, জেসি এবং জেএল (জাহেউন লি); লেখা—মূল খসড়া প্রস্তুতি, জেসি এবং জেএল (জাহেয়ুন লি); লেখা— পর্যালোচনা এবং সম্পাদনা, জেএল (জাহওয়ান লি) এবং জে.-এসকে; ভিজ্যুয়ালাইজেশন, জেএল (জাহেয়ুন লি); তত্ত্বাবধান, JL (জাহওয়ান লি) এবং J.-SK; প্রকল্প প্রশাসন, জেএল (জাহওয়ান লি) এবং জে.-এসকে; তহবিল অধিগ্রহণ, জেএল (জাহওয়ান লি)। সমস্ত লেখক পাণ্ডুলিপির প্রকাশিত সংস্করণ পড়েছেন এবং সম্মত হয়েছেন।

অর্থায়ন:
এই গবেষণাটি বেসিক সায়েন্স রিসার্চ প্রোগ্রাম (NRF-2020R1F1A1072696) দ্বারা সমর্থিত ছিল কোরিয়ার ন্যাশনাল রিসার্চ ফাউন্ডেশন (NRF) এর মাধ্যমে বিজ্ঞান ও আইসিটি মন্ত্রণালয়ের অর্থায়নে, Gyeonggi প্রদেশের GRRC প্রোগ্রাম (নং GRRC-KAU{) {5}}B01, "360VR পরিষেবার জন্য ভিডিও এবং স্পেস কনভারজেন্স প্ল্যাটফর্মে অধ্যয়ন"), এবং ITRC (তথ্য প্রযুক্তি গবেষণা কেন্দ্র) সহায়তা প্রোগ্রাম (IITP-2021-2018-0-01423)৷
প্রাতিষ্ঠানিক পর্যালোচনা বোর্ডের বিবৃতি:
প্রযোজ্য নয়।
অবহিত সম্মতি বিবৃতি:
প্রযোজ্য নয়।
ডেটা উপলব্ধতা বিবৃতি:
অনুরোধের ভিত্তিতে উপলব্ধ.
স্বার্থের সংঘাত:
লেখক আগ্রহের কোন দ্বন্দ্ব ঘোষণা।
তথ্যসূত্র
1. ডিন, জে.; ঘেমওয়াত, এস. ম্যাপরিডুস: বড় ক্লাস্টারে সরলীকৃত ডেটা প্রক্রিয়াকরণ। কমুন ACM 2008, 51, 107-113। [ক্রসরেফ]
2. Apache Hadoop প্রকল্প: নির্ভরযোগ্য, পরিমাপযোগ্য, বিতরণ করা কম্পিউটিং-এর জন্য ওপেন-সোর্স সফ্টওয়্যার। অনলাইনে উপলব্ধ: https://hadoop.apache.org/ (10 সেপ্টেম্বর 2021 এ অ্যাক্সেস করা হয়েছে)।
3. শ্বাচকো, কে।; কুয়াং, এইচ.; রাদিয়া, এস.; চ্যান্সলার, আর. দ্য হ্যাদুপ ফাইল সিস্টেম বিতরণ করেছে। 2010 IEEE 26 তম সিম্পোজিয়াম অন ভর স্টোরেজ সিস্টেম এবং প্রযুক্তি (MSST), ইনক্লাইন ভিলেজ, NV, USA, 3-7 মে 2010; পৃষ্ঠা 1-10।
4. জাহারিয়া, এম.; চৌধুরী, এম.; ফ্র্যাঙ্কলিন, এমজে; শেনকার, এস.; স্টোইকা, আই. স্পার্ক: কাজের সেট সহ ক্লাস্টার কম্পিউটিং। হটক্লাউড 2010, 10, 95।
5. আউস্টারহাউট, কে.; রাস্তি, আর.; রত্নসামি, এস.; শেনকার, এস.; চুন, বিজি ডেটা অ্যানালিটিক্স ফ্রেমওয়ার্কগুলিতে পারফরম্যান্সের অনুভূতি তৈরি করা। নেটওয়ার্ক সিস্টেম ডিজাইন অ্যান্ড ইমপ্লিমেন্টেশন (NSDI), ওকল্যান্ড, CA, USA, 4-6 মে 2015-এর 12 তম ইউসেনিক্স সিম্পোজিয়ামের কার্যক্রমে; পৃষ্ঠা 293-307।
6. জিং, ডব্লিউ; ঘোরবানি, এ. ওয়েটেড পেজর্যাঙ্ক অ্যালগরিদম। কমিউনিকেশন নেটওয়ার্কস অ্যান্ড সার্ভিসেস রিসার্চ, ফ্রেডেরিকটন, এনবি, কানাডা, 21 মে 2004-এর IEEE দ্বিতীয় বার্ষিক সম্মেলনের কার্যক্রমে; পৃষ্ঠা 305-314।
7. চক্রধর, এসটি; আগরওয়াল, ভিডি; Rothweiler, SG পরীক্ষা প্রজন্মের জন্য একটি ট্রানজিটিভ ক্লোজার অ্যালগরিদম। IEEE ট্রান্স। কম্পিউট।-সহায়তা দেশ। ইন্টিগ্র সার্কিট সিস্টেম 1993, 12, 1015-1028। [ক্রসরেফ]
8. O'Malley, O. Apache Hadoop-এ টেরাবাইট সাজান। ইয়াহু। মে 2008। পৃষ্ঠা 1-3। অনলাইনে উপলব্ধ: http://sortbenchmark.org/ YahooHadoop.pdf (10 সেপ্টেম্বর 2021 এ অ্যাক্সেস করা হয়েছে)।
9. K- মানে ক্লাস্টারিং। অনলাইনে উপলব্ধ: https://en.wikipedia.org/wiki/K-means_ক্লাস্টারিং (10 সেপ্টেম্বর 2021 এ অ্যাক্সেস করা হয়েছে)।
10. জাহারিয়া, এম.; চৌধুরী, এম.; দাস, টি.; ডেভ, এ.; মা, জে.; ম্যাককলি, এম.; ফ্র্যাঙ্কলিন, এমজে; শেনকার, এস.; স্টোইকা, আই. রেসিলিয়েন্ট ডিস্ট্রিবিউটেড ডেটাসেট: ইন-মেমরি ক্লাস্টার কম্পিউটিংয়ের জন্য একটি ত্রুটি-সহনশীল বিমূর্ততা। নেটওয়ার্ক সিস্টেম ডিজাইন অ্যান্ড ইমপ্লিমেন্টেশন (এনএসডিআই), সান জোসে, সিএ, ইউএসএ, ২৫-২৭ এপ্রিল ২০১২; পৃ. 15-28।
11. ডেভিডসন, এ.; অথবা, এ. স্পার্ক-এ শাফল পারফরম্যান্স অপ্টিমাইজ করা; প্রযুক্তিগত প্রতিবেদন; বার্কলে-ডিপার্টমেন্ট অফ ইলেকট্রিক্যাল ইঞ্জিনিয়ারিং অ্যান্ড কম্পিউটার সায়েন্স, ইউনিভার্সিটি অফ ক্যালিফোর্নিয়া: বার্কলে, CA, USA, 2013।
12. নিকোলাই, বি.; কোস্টা, সিএইচএ; মিসেল, সি.; ক্যাট্রিনিস, কে.; পার্ক, Y. বিগ ডেটা অ্যানালিটিক্সের জন্য যৌথ ডেটা শাফলিং প্যাটার্নগুলি অপ্টিমাইজ করার জন্য অ্যাডাপ্টিভ I/O ব্যবহার করে৷ IEEE ট্রান্স। সমান্তরাল বিতরণ। সিস্ট 2017, 28, 1663–1674। [ক্রসরেফ]
13. ঝাং, এইচ.; চো, বি.; সেফ, ই.; চিং, এ.; ফ্রিডম্যান, এমজে রাইফেল: বৃহৎ-স্কেল ডেটা বিশ্লেষণের জন্য অপ্টিমাইজড শাফেল পরিষেবা। ত্রয়োদশ ইউরোসিস সম্মেলনের কার্যক্রমে; ইউরোসিস '18; অ্যাসোসিয়েশন ফর কম্পিউটিং মেশিনারি: নিউ ইয়র্ক, NY, USA, 2018। [CrossRef]
For more information:1950477648nn@gmail.com






