paint-brush
Hadoop से Rip और Replace के बिना माइग्रेट करना संभव है - जानिए कैसेद्वारा@minio
3,817 रीडिंग
3,817 रीडिंग

Hadoop से Rip और Replace के बिना माइग्रेट करना संभव है - जानिए कैसे

द्वारा MinIO7m2024/05/31
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

मिनियो हडूप का एक आधुनिक संस्करण है जो स्पार्क और हाइव के साथ एकीकृत होता है। मिनियो प्रति-ऑब्जेक्ट कुंजियों का उपयोग करके सभी डेटा को एन्क्रिप्ट करता है, जिससे अनधिकृत पहुंच के खिलाफ मजबूत सुरक्षा सुनिश्चित होती है। S3a उन अनुप्रयोगों के लिए एक आवश्यक एंडपॉइंट है जो Hado.op से दूर जाने की कोशिश कर रहे हैं, जो अनुप्रयोगों की एक विस्तृत श्रृंखला के साथ संगतता प्रदान करता है।
featured image - Hadoop से Rip और Replace के बिना माइग्रेट करना संभव है - जानिए कैसे
MinIO HackerNoon profile picture
0-item
1-item


हम अभी भी उन ग्राहकों की संख्या पर आश्चर्यचकित हैं जो HDFS से आधुनिक ऑब्जेक्ट स्टोरेज जैसे कि MinIO में माइग्रेट करने के लिए हमारे पास आते हैं। हमने सोचा था कि अब तक सभी ने बदलाव कर लिया होगा, लेकिन हर हफ़्ते, हम एक प्रमुख, उच्च तकनीकी संगठन से बात करते हैं जिसने बदलाव करने का फैसला किया है।


अक्सर, उन चर्चाओं में, उनके बुनियादी ढांचे के ऐसे तत्व होते हैं जिन्हें वे अपने माइग्रेशन के बाद बनाए रखना चाहते हैं। ऐसे फ्रेमवर्क और सॉफ़्टवेयर हैं जो HDFS इकोसिस्टम से निकले हैं, जिनमें बहुत सारे डेवलपर शामिल हैं और अभी भी आधुनिक डेटा स्टैक में उनका स्थान है। वास्तव में, हमने अक्सर कहा है कि HDFS इकोसिस्टम से बहुत कुछ अच्छा निकला है। मूल मुद्दा बारीकी से युग्मित भंडारण और कंप्यूट के साथ है, जरूरी नहीं कि बिग डेटा युग से आए उपकरणों और सेवाओं के साथ।


यह ब्लॉग पोस्ट इस बात पर ध्यान केंद्रित करेगा कि आप मूल्यवान उपकरणों और सेवाओं को हटाए बिना और बदले बिना उस माइग्रेशन को कैसे कर सकते हैं। वास्तविकता यह है कि यदि आप अपने बुनियादी ढांचे का आधुनिकीकरण नहीं करते हैं, तो आप AI/ML में वह प्रगति नहीं कर सकते हैं जिसकी आपके संगठन को आवश्यकता है, लेकिन आपको वहां पहुंचने के लिए सब कुछ छोड़ने की ज़रूरत नहीं है।

स्पार्क और हाइव के साथ स्टोरेज और कंप्यूट का पृथक्करण

हम पहले ही कुछ दौर से गुजर चुके हैं पूर्ण रूप से चीर-फाड़ कर पुनःस्थापित करने की रणनीति , जो कुछ मामलों में आगे का रास्ता है। हालाँकि, आइए HDFS कार्यान्वयन को आधुनिक बनाने के दूसरे तरीके पर नज़र डालें।


यह वास्तुकला में कुबेरनेट्स प्रबंधन शामिल है अपाचे स्पार्क और डेटा प्रोसेसिंग के लिए अपाचे हाइव कंटेनर; स्पार्क मिनियो के साथ मूल रूप से एकीकृत होता है जबकि हाइव YARN का उपयोग करता है। मिनियो स्टेटफुल कंटेनर में ऑब्जेक्ट स्टोरेज को संभालता है और इस आर्किटेक्चर में डेटा आइसोलेशन के लिए मल्टी-टेनेंट कॉन्फ़िगरेशन पर निर्भर करता है।


वास्तुकला अवलोकन:

  • कंप्यूट नोड्स: Kubernetes कंप्यूट नोड्स पर स्टेटलेस अपाचे स्पार्क और अपाचे हाइव कंटेनरों को कुशलतापूर्वक प्रबंधित करता है, जिससे इष्टतम संसाधन उपयोग और गतिशील स्केलिंग सुनिश्चित होती है।


  • स्टोरेज लेयर: मिनियो इरेज़र कोडिंग और बिटरोट प्रोटेक्शन का अर्थ है कि आप ड्राइव की संख्या का आधा हिस्सा खो सकते हैं और फिर भी उसे पुनः प्राप्त कर सकते हैं, और वह भी Hadoop के लिए आवश्यक डेटा के प्रत्येक ब्लॉक की तीन प्रतियों को बनाए रखने की आवश्यकता के बिना।


  • एक्सेस लेयर: मिनियो ऑब्जेक्ट स्टोरेज तक सभी पहुंच S3 API के माध्यम से एकीकृत होती है, जो संग्रहीत डेटा के साथ इंटरैक्ट करने के लिए एक सहज इंटरफ़ेस प्रदान करती है।


  • सुरक्षा परत: डेटा सुरक्षा सर्वोपरि है। मिनियो प्रति-ऑब्जेक्ट कुंजियों का उपयोग करके सभी डेटा को एन्क्रिप्ट करता है, जिससे अनधिकृत पहुंच के खिलाफ मजबूत सुरक्षा सुनिश्चित होती है।


  • पहचान प्रबंधन: मिनियो एंटरप्राइज, अनुप्रयोगों या उपयोगकर्ताओं को प्रमाणित करने की अनुमति देने के लिए WSO2, कीक्लोक, ओक्टा, पिंग आइडेंटिटी जैसे पहचान प्रदाताओं के साथ पूरी तरह से एकीकृत होता है।


Hadoop के लिए एक पूर्णतः आधुनिकीकृत प्रतिस्थापन जो आपके संगठन को Hive, YARN और किसी भी अन्य Hadoop पारिस्थितिकी तंत्र डेटा उत्पाद को रखने की अनुमति देता है, जो ऑब्जेक्ट स्टोरेज के साथ एकीकृत हो सकता है, जो आधुनिक डेटा स्टैक में लगभग सब कुछ है।

एक्सेस लेयर में अंतर-संचालनीयता

S3a Hadoop से दूर जाने की चाह रखने वाले अनुप्रयोगों के लिए एक आवश्यक एंडपॉइंट है, जो Hadoop पारिस्थितिकी तंत्र के भीतर अनुप्रयोगों की एक विस्तृत श्रृंखला के साथ संगतता प्रदान करता है। 2006 से, S3-संगत ऑब्जेक्ट-स्टोरेज बैकएंड को Hadoop पारिस्थितिकी तंत्र के भीतर कई डेटा प्लेटफ़ॉर्म में डिफ़ॉल्ट सुविधा के रूप में सहजता से एकीकृत किया गया है। यह एकीकरण उभरती हुई प्रौद्योगिकियों में S3 क्लाइंट कार्यान्वयन को शामिल करने से जुड़ा है।


सभी Hadoop-संबंधित प्लेटफ़ॉर्म पर, hadoop-aws मॉड्यूल और aws-java-sdk-bundle को अपनाना मानक अभ्यास है, जो S3 API के लिए मज़बूत समर्थन सुनिश्चित करता है। यह मानकीकृत दृष्टिकोण HDFS और S3 स्टोरेज बैकएंड से अनुप्रयोगों के सुचारू संक्रमण की सुविधा प्रदान करता है। उचित प्रोटोकॉल निर्दिष्ट करके, डेवलपर्स आसानी से Hadoop से आधुनिक ऑब्जेक्ट स्टोरेज में अनुप्रयोगों को स्विच कर सकते हैं। S3 के लिए प्रोटोकॉल योजना s3a:// द्वारा इंगित की जाती है, जबकि HDFS के लिए, इसे hdfs:// के रूप में दर्शाया जाता है।

प्रवास के लाभ

हाडोप से आधुनिक ऑब्जेक्ट स्टोरेज पर माइग्रेट करने के लाभों के बारे में विस्तार से बात करना संभव है। यदि आप इसे पढ़ रहे हैं, तो आप पहले से ही काफी हद तक जानते हैं कि हाडोप जैसे विरासत प्लेटफ़ॉर्म से माइग्रेट किए बिना AI और अन्य आधुनिक डेटा उत्पादों में प्रगति संभवतः बंद हो जाएगी। इसका कारण प्रदर्शन और पैमाने में निहित है।


इसमें कोई संदेह नहीं है कि आधुनिक कार्यभार को संसाधित किए जा रहे डेटा की मात्रा और वर्तमान में आवश्यक कार्यों की जटिलता के साथ प्रतिस्पर्धा करने के लिए उत्कृष्ट प्रदर्शन की आवश्यकता होती है। जब प्रदर्शन केवल दिखावटी बेंचमार्किंग के बारे में नहीं होता है, बल्कि एक कठोर आवश्यकता होती है, तो Hadoop प्रतिस्थापन के लिए दावेदारों का क्षेत्र नाटकीय रूप से गिरावट .


माइग्रेशन को आगे बढ़ाने वाला दूसरा तत्व क्लाउड-नेटिव स्केल है। जब क्लाउड की अवधारणा भौतिक स्थान से कम और एक ऑपरेटिंग मॉडल एक .yaml फ़ाइल से मिनटों में संपूर्ण डेटा स्टैक को तैनात करना संभव हो जाता है। यह कार्यान्वयन इतना तेज़ है कि कोई भी Hadoop इंजीनियर अपनी कुर्सी से गिर सकता है।


इस अवधारणा का एक हिस्सा वेंडर लॉक-इन से मुक्ति से मिलने वाले आर्थिक लाभ हैं, जो किसी संगठन को विशिष्ट कार्यभार के लिए सर्वश्रेष्ठ-इन-क्लास विकल्प चुनने की अनुमति देता है। यह उल्लेख करना ज़रूरी नहीं है कि डेटा की सुरक्षा के लिए उसकी तीन अलग-अलग प्रतियाँ बनाए रखने से मुक्ति अतीत की बात हो गई है। सक्रिय-सक्रिय प्रतिकृति और इरेज़र कोडिंग। भविष्य-प्रूफ़ तकनीक में निवेश करने का मतलब आमतौर पर यह भी होता है कि आपके इंफ्रास्ट्रक्चर पर काम करने के लिए प्रतिभाशाली पेशेवरों को ढूंढना और भर्ती करना आसान होता है। लोग उन चीज़ों पर काम करना चाहते हैं जो व्यवसाय को आगे बढ़ाती हैं, और ऐसा करने के लिए लगभग कोई भी चीज़ इससे बेहतर नहीं है डेटा साथ में, ये कारक एक ऐसे डेटा स्टैक में योगदान करते हैं जो न केवल तेज़ और सस्ता है, बल्कि आज और कल की डेटा-संचालित जरूरतों के लिए भी बेहतर है।

शुरू करना

हमारी वास्तुकला की बारीकियों में जाने से पहले, आपको कुछ घटकों को चालू करने की आवश्यकता होगी। Hadoop से माइग्रेट करने के लिए, आपको निश्चित रूप से इसे शुरू से ही इंस्टॉल करना होगा। यदि आप इस अनुभव का अनुकरण करना चाहते हैं, तो आप यहाँ Hadoop के हॉर्टनवर्क्स वितरण को सेट करके इस ट्यूटोरियल को शुरू कर सकते हैं।


अन्यथा, आप निम्नलिखित स्थापना चरणों से शुरू कर सकते हैं:


  1. अम्बारी सेट अप: अगला, अम्बारी स्थापित करें , जो आपके लिए YARN को स्वचालित रूप से कॉन्फ़िगर करके आपकी सेवाओं के प्रबंधन को सरल बना देगा। अम्बारी Hadoop पारिस्थितिकी तंत्र में सेवाओं का प्रबंधन करने और सब कुछ सुचारू रूप से चलाने के लिए एक उपयोगकर्ता के अनुकूल डैशबोर्ड प्रदान करता है।


  2. अपाचे स्पार्क स्थापित करें: बड़े पैमाने पर डेटा को प्रोसेस करने के लिए स्पार्क आवश्यक है। मानक स्थापना स्पार्क को चालू करने के लिए प्रक्रियाएं।


  3. मिनियो स्थापित करें : अपने परिवेश के आधार पर, आप दो स्थापना तरीकों में से चुन सकते हैं: कुबेरनेट्स या हेल्म चार्ट .


इन तत्वों को सफलतापूर्वक स्थापित करने के बाद, आप स्पार्क और हाइव को HDFS के बजाय मिनियो का उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं। Ambari UI http://<ambari-server>:8080/ पर नेविगेट करें और डिफ़ॉल्ट क्रेडेंशियल का उपयोग करके लॉग इन करें: username: admin, password: admin ,



अम्बारी में, सेवाओं पर जाएँ, फिर HDFS, फिर नीचे दिए गए स्क्रीनशॉट की तरह कॉन्फ़िगरेशन पैनल पर जाएँ। इस अनुभाग में, आप HDFS के बजाय MinIO के साथ S3a का उपयोग करने के लिए अम्बारी को कॉन्फ़िगर कर रहे हैं।



नीचे स्क्रॉल करें और Custom core-site पर जाएँ। यह वह जगह है जहाँ आप S3a को कॉन्फ़िगर करेंगे।



 sudo pip install yq alias kv-pairify='yq ".configuration[]" | jq ".[]" | jq -r ".name + \"=\" + .value"'


यहाँ से, आपका कॉन्फ़िगरेशन आपके इंफ्रास्ट्रक्चर पर निर्भर करेगा। लेकिन, नीचे दिया गया तरीका core-site.xml के लिए 12 नोड्स और 1.2TiB मेमोरी पर चलने वाले MinIO के साथ S3a को कॉन्फ़िगर करने का तरीका दर्शा सकता है।


 cat ${HADOOP_CONF_DIR}/core-site.xml | kv-pairify | grep "mapred" mapred.maxthreads.generate.mapoutput=2 # Num threads to write map outputs mapred.maxthreads.partition.closer=0 # Asynchronous map flushers mapreduce.fileoutputcommitter.algorithm.version=2 # Use the latest committer version mapreduce.job.reduce.slowstart.completedmaps=0.99 # 99% map, then reduce mapreduce.reduce.shuffle.input.buffer.percent=0.9 # Min % buffer in RAM mapreduce.reduce.shuffle.merge.percent=0.9 # Minimum % merges in RAM mapreduce.reduce.speculative=false # Disable speculation for reducing mapreduce.task.io.sort.factor=999 # Threshold before writing to drive mapreduce.task.sort.spill.percent=0.9 # Minimum % before spilling to drive


इस माइग्रेशन पैटर्न पर दस्तावेज़ों की जांच करके कुछ अनुकूलन का पता लगाया जा सकता है यहाँ , और S3 पर Hadoop के दस्तावेज़ में भी यहाँ और यहाँ .


जब आप कॉन्फ़िगरेशन से संतुष्ट हों तो सभी को पुनः प्रारंभ करें।



आपको स्पार्क2 कॉन्फ़िगरेशन पैनल पर भी नेविगेट करना होगा।



Custom spark-defaults तक स्क्रॉल करें और मिनियो के साथ कॉन्फ़िगर करने के लिए निम्नलिखित प्रॉपर्टी जोड़ें:



 spark.hadoop.fs.s3a.access.key minio spark.hadoop.fs.s3a.secret.key minio123 spark.hadoop.fs.s3a.path.style.access true spark.hadoop.fs.s3a.block.size 512M spark.hadoop.fs.s3a.buffer.dir ${hadoop.tmp.dir}/s3a spark.hadoop.fs.s3a.committer.magic.enabled false spark.hadoop.fs.s3a.committer.name directory spark.hadoop.fs.s3a.committer.staging.abort.pending.uploads true spark.hadoop.fs.s3a.committer.staging.conflict-mode append spark.hadoop.fs.s3a.committer.staging.tmp.path /tmp/staging spark.hadoop.fs.s3a.committer.staging.unique-filenames true spark.hadoop.fs.s3a.committer.threads 2048 # number of threads writing to MinIO spark.hadoop.fs.s3a.connection.establish.timeout 5000 spark.hadoop.fs.s3a.connection.maximum 8192 # maximum number of concurrent conns spark.hadoop.fs.s3a.connection.ssl.enabled false spark.hadoop.fs.s3a.connection.timeout 200000 spark.hadoop.fs.s3a.endpoint http://minio:9000 spark.hadoop.fs.s3a.fast.upload.active.blocks 2048 # number of parallel uploads spark.hadoop.fs.s3a.fast.upload.buffer disk # use disk as the buffer for uploads spark.hadoop.fs.s3a.fast.upload true # turn on fast upload mode spark.hadoop.fs.s3a.impl org.apache.hadoop.spark.hadoop.fs.s3a.S3AFileSystem spark.hadoop.fs.s3a.max.total.tasks 2048 # maximum number of parallel tasks spark.hadoop.fs.s3a.multipart.size 512M # size of each multipart chunk spark.hadoop.fs.s3a.multipart.threshold 512M # size before using multipart uploads spark.hadoop.fs.s3a.socket.recv.buffer 65536 # read socket buffer hint spark.hadoop.fs.s3a.socket.send.buffer 65536 # write socket buffer hint spark.hadoop.fs.s3a.threads.max 2048 # maximum number of threads for S3A


कॉन्फ़िगरेशन परिवर्तन लागू होने के बाद सभी को पुनः आरंभ करें।



कॉन्फ़िगरेशन समाप्त करने के लिए हाइव पैनल पर जाएँ।



Custom hive-site तक नीचे स्क्रॉल करें और निम्नलिखित प्रॉपर्टी जोड़ें:




 hive.blobstore.use.blobstore.as.scratchdir=true hive.exec.input.listing.max.threads=50 hive.load.dynamic.partitions.thread=25 hive.metastore.fshandler.threads=50 hive.mv.files.threads=40 mapreduce.input.fileinputformat.list-status.num-threads=50


आप अधिक फ़ाइन-ट्यूनिंग कॉन्फ़िगरेशन जानकारी पा सकते हैं यहाँ कॉन्फ़िगरेशन परिवर्तन करने के बाद सभी को पुनः प्रारंभ करें।



बस, अब आप अपने एकीकरण का परीक्षण कर सकते हैं।

स्वयं अन्वेषण करें

इस ब्लॉग पोस्ट में Hadoop से माइग्रेट करने के लिए एक आधुनिक दृष्टिकोण की रूपरेखा दी गई है, जिसके लिए आपको अपने मौजूदा सिस्टम को पूरी तरह से बदलने की आवश्यकता नहीं है। Apache Spark और Apache Hive को प्रबंधित करने के लिए Kubernetes का लाभ उठाकर और स्टेटफुल ऑब्जेक्ट स्टोरेज के लिए MinIO को एकीकृत करके, संगठन एक संतुलित आर्किटेक्चर प्राप्त कर सकते हैं जो गतिशील स्केलिंग और कुशल संसाधन उपयोग का समर्थन करता है। यह सेटअप न केवल आपके डेटा प्रोसेसिंग वातावरण की क्षमताओं को बनाए रखता है बल्कि उन्हें और अधिक मजबूत और भविष्य-प्रूफ बनाता है।


मिनियो के साथ, आपको ऐसे स्टोरेज समाधान का लाभ मिलता है जो कमोडिटी हार्डवेयर पर उच्च प्रदर्शन प्रदान करता है, इरेज़र कोडिंग (Hadoop के डेटा प्रतिकृति की अतिरेक को समाप्त करना) के माध्यम से लागत कम करता है, और विक्रेता लॉक-इन और कैसंड्रा-आधारित मेटाडेटा स्टोर की आवश्यकता जैसी सीमाओं को दरकिनार करता है। ये लाभ उन संगठनों के लिए महत्वपूर्ण हैं जो अपने मौजूदा डेटा सिस्टम के मूल तत्वों को त्यागे बिना उन्नत AI/ML कार्यभार का लाभ उठाना चाहते हैं।


इस बारे में अधिक विस्तृत चर्चा या विशिष्ट मार्गदर्शन के लिए कि आप अपने संगठन की विशिष्ट आवश्यकताओं को पूरा करने के लिए इस माइग्रेशन रणनीति को कैसे अनुकूलित कर सकते हैं, बेझिझक हमसे संपर्क करें। चाहे [email protected] पर ईमेल के माध्यम से या हमारे समुदाय पर ढीला चैनल पर, हम आपके डेटा इंफ्रास्ट्रक्चर निवेश का अधिकतम लाभ उठाने में आपकी सहायता करने के लिए यहां हैं।