शीर्ष 50 अपाचे Spark साक्षात्कार प्रश्न और उत्तर (2026)

बिग डेटा इंटरव्यू की तैयारी करने का मतलब है डिस्ट्रीब्यूटेड प्रोसेसिंग और रियल एनालिटिक्स सिस्टम के पीछे की चुनौतियों का अनुमान लगाना। अपाचे Spark साक्षात्कार के प्रश्न यह दर्शाता है कि नियोक्ता क्षमता, प्रदर्शन और सोचने की गहराई का आकलन कैसे करते हैं।
माहिर Spark एनालिटिक्स प्लेटफॉर्म, स्ट्रीमिंग और एआई पाइपलाइन में विभिन्न पदों के अवसर उपलब्ध हैं, जहां तकनीकी अनुभव और डोमेन विशेषज्ञता महत्वपूर्ण हैं। इस क्षेत्र में काम करने वाले पेशेवर अपने विश्लेषण कौशल का उपयोग करते हैं, टीम लीडर और मैनेजर के साथ सहयोग करते हैं, और व्यावहारिक प्रश्नों और उत्तरों के माध्यम से फ्रेशर्स, मिड-लेवल और सीनियर उम्मीदवारों को आत्मविश्वास के साथ इंटरव्यू पास करने में मदद करते हैं। अधिक पढ़ें…
👉 मुफ़्त PDF डाउनलोड: अपाचे Spark साक्षात्कार प्रश्न और उत्तर
शीर्ष अपाचे Spark साक्षात्कार प्रश्न और उत्तर
1) अपाचे क्या है? Spark और बड़े डेटा प्रोसेसिंग में इसका व्यापक रूप से उपयोग क्यों किया जाता है?
अपाचे Spark यह एक ओपन-सोर्स, वितरित एनालिटिक्स इंजन है जिसे इसके लिए डिज़ाइन किया गया है बड़े पैमाने पर डेटा प्रोसेसिंगयह एक एकीकृत कंप्यूटिंग ढांचा प्रदान करता है जो समर्थन करता है। बैच और रीयल-टाइम स्ट्रीमिंग वर्कलोडएक ही इंजन के भीतर उन्नत विश्लेषण, मशीन लर्निंग और ग्राफ प्रोसेसिंग जैसी सुविधाएं उपलब्ध हैं। Spark यह हैडूप मैप रिड्यूस जैसे पारंपरिक डिस्क-आधारित सिस्टम की तुलना में डेटा प्रोसेसिंग को काफी तेज करने के लिए इन-मेमोरी कंप्यूटेशन का उपयोग करता है।
Sparkइसकी प्रमुख ताकतें ये हैं:
- मेमोरी में प्रोसेसिंग: यह डिस्क इनपुट/आउटपुट को कम करता है और पुनरावृत्ति एल्गोरिदम को गति प्रदान करता है।
- अनुमापकता: यह वितरित क्लस्टरों में पेटाबाइट-स्केल डेटासेट को संभाल सकता है।
- एपीआई लचीलापन: स्काला का समर्थन करता है। Java, Python, R, और SQL.
- एकीकृत पारिस्थितिकी तंत्र: इसमें कई अंतर्निहित मॉड्यूल (SQL, स्ट्रीमिंग, MLlib, GraphX) उपलब्ध हैं।
उदाहरण: एक ठेठ Spark यह जॉब एक ही एप्लिकेशन के भीतर एचडीएफएस से टेराबाइट्स डेटा लोड कर सकती है, जटिल ईटीएल कर सकती है, मशीन लर्निंग लागू कर सकती है और परिणामों को डेटा वेयरहाउस में लिख सकती है।
2) अपाचे कैसा है? Spark क्या यह Hadoop MapReduce से अलग है?
अपाचे Spark Hadoop MapReduce और Hadoop दोनों ही बिग डेटा फ्रेमवर्क हैं, लेकिन इनकी वास्तुकला, प्रदर्शन और क्षमताओं में काफी अंतर है:
| Feature | अपाचे Spark | हडूप मैप रिड्यूस |
|---|---|---|
| प्रसंस्करण मॉडल | इन-मेमोरी निष्पादन | डिस्क-आधारित निष्पादन |
| गति | पुनरावृत्ति कार्यों के लिए 100 गुना तक तेज़ | डिस्क-आई/ओ के कारण गति धीमी है |
| वर्कलोड | बैच + स्ट्रीमिंग + इंटरैक्टिव + एमएल | मुख्यतः बैच |
| उपयोग की आसानी | कई भाषाओं में API, SQL समर्थन | अधिक सीमित एपीआई |
| दोष सहिष्णुता | आरडीडी वंशावली | डिस्क प्रतिकृति |
Spark यह कई स्थितियों में मध्यवर्ती परिणामों को डिस्क पर लिखने से बचता है, जिससे प्रोसेसिंग की गति बढ़ जाती है, खासकर पुनरावृत्ति मशीन लर्निंग और ग्राफ गणनाओं के लिए।
3) समझाइए Spark पारिस्थितिकी तंत्र के घटक।
अपाचे Spark पारिस्थितिकी तंत्र में कई एकीकृत घटक शामिल होते हैं:
- Spark कोर: शेड्यूलिंग, मेमोरी प्रबंधन, त्रुटि निवारण और कार्य वितरण के लिए बुनियादी इंजन।
- Spark एसक्यूएल: SQL सपोर्ट और कैटलिस्ट ऑप्टिमाइज़र के साथ संरचित डेटा प्रोसेसिंग।
- Spark स्ट्रीमिंग: माइक्रो-बैच के माध्यम से वास्तविक समय में डेटा प्रोसेसिंग।
- एमएललिब: स्केलेबल एल्गोरिदम के लिए मशीन लर्निंग लाइब्रेरी।
- ग्राफएक्स: ग्राफ प्रोसेसिंग और गणना के लिए एपीआई।
इनमें से प्रत्येक घटक डेवलपर्स को एक ही रनटाइम के भीतर विभिन्न डेटा प्रोसेसिंग उपयोग मामलों के लिए उत्पादन-तैयार एप्लिकेशन लिखने की अनुमति देता है।
4) अपाचे में RDD क्या हैं? Sparkवे महत्वपूर्ण क्यों हैं?
लचीले वितरित डेटासेट (आरडीडी) मूल अमूर्तता हैं Spark, एक का प्रतिनिधित्व करता है वस्तुओं का अपरिवर्तनीय वितरित संग्रह क्लस्टर नोड्स में समानांतर रूप से संसाधित किया जाता है। RDD दोष-सहिष्णु होते हैं क्योंकि Spark पटरियों वंशावली जानकारी—डेटासेट प्राप्त करने के लिए उपयोग किए गए परिवर्तनों का एक रिकॉर्ड—विफलता की स्थिति में खोए हुए डेटा विभाजन की पुनर्गणना को सक्षम बनाता है।
मुख्य विशेषताएँ:
- अपरिवर्तनीय और वितरित।
- रूपांतरणों के माध्यम से इसे आसानी से रूपांतरित किया जा सकता है।
- क्रियाएं निष्पादन को ट्रिगर करती हैं।
उदाहरण: का प्रयोग map() डेटा को रूपांतरित करने के लिए और count() निष्पादन को ट्रिगर करना दर्शाता है कि कैसे रूपांतरण डीएजी का निर्माण करते हैं, और क्रियाएं परिणामों की गणना करती हैं।
5) लेज़ी इवैल्यूएशन क्या है? Sparkऔर इससे क्या लाभ है?
आलसी मूल्यांकन में Spark इसका अर्थ है परिवर्तन (जैसे कि map, filter) रहे तुरंत निष्पादित नहीं किया गया। बजाय, Spark एक बनाता है तार्किक योजना (डीएजी) परिवर्तनों का और इसे केवल तभी निष्पादित करता है जब कोई क्रिया (जैसे collect(), count()) का आह्वान किया जाता है।
लाभ:
- की अनुमति देता है इष्टतम वर्कफ़्लो अनुकूलन निष्पादन से पहले चरणों को पुनर्व्यवस्थित और संयोजित करके।
- अनावश्यक गणना और इनपुट/आउटपुट भार को कम करता है।
6) RDD, डेटाफ़्रेम और डेटासेट की तुलना करें Spark.
Spark यह डेटा के साथ काम करने के लिए तीन मुख्य अमूर्त अवधारणाएँ प्रदान करता है:
| Feature | RDD | डेटा ढांचा | डेटासेट |
|---|---|---|---|
| प्रकार सुरक्षा | निम्न | निम्न | हाई |
| अनुकूलित क्वेरी | नहीं | हाँ (उत्प्रेरक) | हाँ |
| उपयोग की आसानी | हाथ-संबंधी | हाई | मध्यम |
| भाषा समर्थन | सभी एपीआई | सभी एपीआई | स्काला/Java केवल |
- आरडीडी: निम्न-स्तरीय, अपरिवर्तनीय वितरित संग्रह।
- डेटाफ़्रेम: स्कीमा-आधारित, अनुकूलित तालिका जैसी संरचना।
- डेटासेट: RDD की तरह स्ट्रॉन्गली टाइप्ड लेकिन डेटाफ्रेम की तरह ऑप्टिमाइज़्ड।
7) रूपांतरण और क्रियाएँ क्या हैं? Sparkउदाहरण दीजिए।
रूपांतरण मौजूदा डेटासेट से नए डेटासेट बनाते हैं और आलसी:
map(),filter(),flatMap()
क्रियाएं निष्पादन को ट्रिगर करती हैं और परिणाम लौटाती हैं:
collect(),count(),saveAsTextFile()
8) निर्देशित अचक्रीय ग्राफ (डीएजी) की व्याख्या कीजिए। Spark.
A डेग यह परिवर्तनों की वंशावली का प्रतिनिधित्व करता है और तार्किक निष्पादन योजना का निर्माण करता है। Sparkनोड्स आरडीडी या डेटासेट को दर्शाते हैं, और किनारे रूपांतरणों को दर्शाते हैं। Spark यह डेटा फेरबदल और पुनर्गणना को कम करने के लिए अनुकूलित निष्पादन चरणों की योजना बनाने के लिए डीएजी का उपयोग करता है।
9) उत्प्रेरक अनुकूलक की क्या भूमिका है? Spark एसक्यूएल?
RSI उत्प्रेरक अनुकूलक is Spark SQL का क्वेरी ऑप्टिमाइज़ेशन इंजन। यह प्रेडिकेट पुशडाउन, प्रोजेक्शन प्रूनिंग और जॉइन रीऑर्डरिंग जैसे नियम-आधारित और लागत-आधारित ऑप्टिमाइज़ेशन को लागू करके उच्च-स्तरीय क्वेरी को कुशल भौतिक योजनाओं में परिवर्तित करता है।
10) स्पष्ट करें Spark स्ट्रीमिंग बनाम संरचित स्ट्रीमिंग।
- Spark स्ट्रीमिंग: यह DStream एब्स्ट्रैक्शन का उपयोग करके डेटा को माइक्रो-बैच के रूप में संसाधित करता है।
- संरचित स्ट्रीमिंग: एक नया, अनुकूलित एपीआई जो इस पर निर्मित है Spark SQL का इंजन, जो इवेंट-टाइम सिमेंटिक्स और बेहतर फॉल्ट टॉलरेंस के साथ इंक्रीमेंटल प्रोसेसिंग की अनुमति देता है।
11) ब्रॉडकास्ट वैरिएबल और एक्यूमुलेटर क्या हैं? Spark?
- ब्रॉडकास्ट वैरिएबल: प्रत्येक कार्य के साथ डेटा भेजे बिना, सभी वर्कर नोड्स में केवल पढ़ने योग्य डेटा को कुशलतापूर्वक साझा करें।
- संचायक: इसका उपयोग विभिन्न कार्यों में काउंटरों या योगों को एकत्रित करने के लिए किया जाता है (उदाहरण के लिए, घटनाओं की गिनती करना)।
12) cache() और persist() में क्या अंतर है?
- कैश(): डेटासेट को मेमोरी में संग्रहीत करता है (डिफ़ॉल्ट)।
- दृढ़ रहना(): अन्य भंडारण स्तरों (डिस्क, मेमोरी+डिस्क) को निर्दिष्ट करने की अनुमति देता है।
13) कैसे करता है Spark क्या यह फॉल्ट टॉलरेंस का समर्थन करता है?
Spark का उपयोग करता है आरडीडी वंश और डीएजी को खोए हुए डेटा विभाजनों की पुनः गणना करें वर्कर की विफलता की स्थिति में। चेकपॉइंटिंग लंबी पाइपलाइनों के लिए डेटा को स्थिर स्टोरेज में सुरक्षित रखने में भी मदद कर सकती है।
14) विभाजन की व्याख्या कीजिए। Spark और इसका महत्व।
पार्टिशनिंग यह निर्धारित करती है कि डेटा क्लस्टर के नोड्स में कैसे वितरित किया जाता है। अच्छी तरह से डिज़ाइन की गई पार्टिशनिंग डेटा की आवाजाही (शफलिंग) को कम करती है और समानांतरता का समर्थन करती है, जो प्रदर्शन के लिए महत्वपूर्ण हैं।
15) नौकरी, चरण और कार्य क्या हैं? Sparkइसका निष्पादन मॉडल क्या है?
- नौकरी: किसी क्रिया द्वारा प्रेरित।
- मंच: बिना फेरबदल के परिवर्तनों का एक समूह।
- कार्य: किसी विभाजन पर कार्य करने वाली सबसे छोटी निष्पादन इकाई।
16) अपाचे की वास्तुकला की व्याख्या कीजिए। Spark विस्तार से।
अपाचे Spark इस प्रकार एक मास्टर-वर्कर वास्तुकला बड़े पैमाने पर वितरित डेटा प्रोसेसिंग के लिए डिज़ाइन किया गया। इसका केंद्रीय घटक है ड्राइवर प्रोग्रामजो मुख्य एप्लिकेशन लॉजिक को चलाता है और इसके बारे में जानकारी बनाए रखता है। Spark एप्लिकेशन। ड्राइवर इसके साथ संवाद करता है। Cluster प्रबंधकसंसाधनों का अनुरोध करने के लिए, जो कि स्टैंडअलोन, YARN, Mesos या Kubernetes हो सकता है।
संसाधनों का आवंटन हो जाने के बाद, Spark शुरूआत निष्पादकों वर्कर नोड्स पर। एक्ज़ीक्यूटर कार्यों को निष्पादित करने और मेमोरी या डिस्क में डेटा संग्रहीत करने के लिए ज़िम्मेदार होते हैं। ड्राइवर एप्लिकेशन को विभाजित करता है। नौकरियोंजिन्हें आगे विभाजित किया गया है चरणों शफल सीमाओं पर आधारित। प्रत्येक चरण में कई शामिल हैं। कार्यजहां प्रत्येक कार्य डेटा के एक विभाजन को संसाधित करता है।
यह वास्तुकला सुनिश्चित करती है दोष सहिष्णुता, समानांतर निष्पादन, तथा मापनीयताउदाहरण के लिए, यदि कोई एक्जीक्यूटर विफल हो जाता है, तो ड्राइवर पूरी जॉब को फिर से शुरू किए बिना वंशावली जानकारी का उपयोग करके कार्यों को पुनर्निर्धारित कर सकता है।
17) कैसे करता है Spark क्या मेमोरी प्रबंधन को आंतरिक रूप से संभाला जाता है?
Spark यह मेमोरी को प्रबंधित करता है एकीकृत मेमोरी प्रबंधन मॉडलजो एक्जीक्यूटर मेमोरी को दो मुख्य क्षेत्रों में विभाजित करता है: निष्पादन मेमोरी और भंडारण स्मृतिएक्जीक्यूशन मेमोरी का उपयोग शफल, जॉइन, सॉर्टिंग और एग्रीगेशन के लिए किया जाता है, जबकि स्टोरेज मेमोरी का उपयोग RDD या डेटाफ्रेम को कैश करने और स्थायी रूप से संग्रहीत करने के लिए किया जाता है।
पहले के विपरीत Spark स्थैतिक मेमोरी आवंटन वाले संस्करण, आधुनिक Spark यह निष्पादन और संग्रहण के बीच मेमोरी को गतिशील रूप से साझा करता है। यदि निष्पादन को अधिक मेमोरी की आवश्यकता होती है, तो कैश्ड डेटा को हटाया जा सकता है, और इसके विपरीत भी। यह लचीलापन जटिल कार्यभारों के लिए प्रदर्शन में सुधार करता है।
उदाहरण के लिए, एक बड़े जॉइन ऑपरेशन के दौरान, Spark डिस्क पर डेटा फैलने से बचने के लिए कैश किए गए डेटासेट से अस्थायी रूप से मेमोरी उधार ले सकता है। उचित कॉन्फ़िगरेशन spark.executor.memory और spark.memory.fraction रोकना महत्वपूर्ण है आउट ऑफ मेमोरी त्रुटियाँ उत्पादन में।
18) शफल क्या होते हैं? Sparkऔर वे महंगे क्यों हैं?
A घसीटना यह विभाजनों में डेटा को पुनर्वितरित करने की प्रक्रिया है, जो आमतौर पर निम्नलिखित जैसी प्रक्रियाओं के दौरान होती है। groupByKey, reduceByKey, joinया, distinctशफल महंगे होते हैं क्योंकि उनमें शामिल होते हैं डिस्क I/O, नेटवर्क स्थानांतरण और क्रमबद्धता विभिन्न निष्पादकों के बीच डेटा का।
Spark यह शफल ऑपरेशन को कई चरणों में विभाजित करता है, मध्यवर्ती डेटा को डिस्क पर लिखता है, और फिर उसे नेटवर्क के माध्यम से प्राप्त करता है। इससे विलंबता और संसाधन उपयोग में वृद्धि होती है।
फेरबदल की लागत को कम करने के लिए, Spark यह अनुकूलित रूपांतरण प्रदान करता है जैसे कि reduceByKey के बजाय groupByKeyब्रॉडकास्ट जॉइन और उचित विभाजन रणनीतियाँ। उदाहरण के लिए, प्रतिस्थापन groupByKey साथ में reduceByKey यह डेटा की आवाजाही को काफी हद तक कम करता है और एग्रीगेशन-हैवी वर्कलोड में प्रदर्शन को बेहतर बनाता है।
19) विभिन्न प्रकार के जॉइन की व्याख्या कीजिए। Spark उदाहरणों के साथ।
Spark यह डेटा के आकार और कॉन्फ़िगरेशन के आधार पर कई जॉइन रणनीतियों का समर्थन करता है:
| जॉइन टाइप | विवरण | उदाहरण |
|---|---|---|
| प्रसारण में शामिल हों | सभी निष्पादकों को प्रसारित छोटी तालिका | आयाम सारणी |
| शफल हैश जॉइन | शफल के बाद हैश-आधारित जॉइन | मध्यम डेटासेट |
| क्रमबद्ध करें मर्ज करें शामिल हों | जॉइन करने से पहले दोनों डेटासेट को सॉर्ट करता है | बड़े डेटासेट |
| कार्टेशियन जॉइन | डेटासेट का क्रॉस उत्पाद | दुर्लभ, महंगा |
ब्रॉडकास्ट जॉइन तब सबसे अधिक कुशल होते हैं जब डेटासेट इतना छोटा हो कि मेमोरी में समा सके। उदाहरण के लिए, एक बड़े बिक्री डेटासेट को एक छोटी उत्पाद लुकअप टेबल के साथ जोड़ने में ब्रॉडकास्ट जॉइन फायदेमंद होते हैं।
नौकरी के प्रकारों को समझने से उम्मीदवारों को अपनी क्षमताओं को अनुकूलित करने में मदद मिलती है। Spark वितरित वातावरणों में कार्यों को सुचारू रूप से संचालित करें और प्रदर्शन संबंधी बाधाओं से बचें।
20) groupByKey() और reduceByKey() में क्या अंतर है?
दोनों groupByKey() और reduceByKey() इनका उपयोग एकत्रीकरण के लिए किया जाता है, लेकिन प्रदर्शन और व्यवहार में ये काफी भिन्न होते हैं।
| पहलू | ग्रुपबायकी | कम करके कुंजी |
|---|---|---|
| डेटा शफल | हाई | घटी |
| एकत्रीकरण | फेरबदल के बाद | फेरबदल से पहले |
| प्रदर्शन | और धीमा | तेज़ |
| मेमोरी उपयोग | उच्चतर | अनुकूलित |
groupByKey() यह नेटवर्क पर सभी मानों को स्थानांतरित करता है, जबकि reduceByKey() डेटा को शफल करने से पहले स्थानीय एकत्रीकरण करता है। उत्पादन प्रणालियों में, reduceByKey() जब तक स्पष्ट रूप से पूर्ण मूल्य समूहीकरण की आवश्यकता न हो, तब तक इसे लगभग हमेशा प्राथमिकता दी जाती है।
21) कैसे करता है Spark डेटा प्रतिकृति के बिना दोष सहिष्णुता कैसे प्राप्त करें?
Spark दोष सहिष्णुता प्राप्त करता है वंशावली ग्राफ़जो प्रत्येक डेटासेट को बनाने के लिए उपयोग किए गए परिवर्तनों के क्रम को रिकॉर्ड करते हैं। हैडूप की तरह डेटा को दोहराने के बजाय, Spark वंशावली संबंधी जानकारी का उपयोग करके खोए हुए विभाजनों की पुनर्गणना करता है।
जब कोई नोड विफल हो जाता है, Spark यह उन विभाजनों की पहचान करता है जो नष्ट हो गए थे और शेष डेटा पर केवल आवश्यक रूपांतरणों को पुनः निष्पादित करता है। यह दृष्टिकोण कुशल है और भंडारण की अनावश्यक लागत से बचाता है।
लंबे समय तक चलने वाली या पुनरावृत्ति वाली पाइपलाइनों के लिए, Spark का समर्थन करता है चेकपॉइंटिंगयह विधि मध्यवर्ती परिणामों को एचडीएफएस जैसे विश्वसनीय संग्रहण में सहेजती है। इससे पुनर्गणना लागत कम होती है और बड़े अनुप्रयोगों में पुनर्प्राप्ति समय में सुधार होता है।
22) अनुमानित निष्पादन क्या है? Sparkऔर इसका उपयोग कब करना चाहिए?
अनुमानित निष्पादन एक है Spark वह विशेषता जो प्रभाव को कम करती है धीमी गति से चलने वाले कार्यजिन्हें पिछड़ने वाले भी कहा जाता है। Spark यह उन कार्यों का पता लगाता है जो अन्य कार्यों की तुलना में काफी धीमे होते हैं और उन कार्यों के डुप्लिकेट इंस्टेंस को अलग-अलग एक्जीक्यूटर पर लॉन्च करता है।
सबसे पहले पूरा होने वाले कार्य को स्वीकार कर लिया जाता है, और शेष कार्यों को समाप्त कर दिया जाता है। इससे विषम या अस्थिर क्लस्टरों में समग्र कार्य पूर्णता समय में सुधार होता है।
हार्डवेयर प्रदर्शन में भिन्नता होने पर क्लाउड या साझा वातावरण में स्पेक्युलेटिव एक्जीक्यूशन उपयोगी होता है। हालांकि, इसका उपयोग सावधानीपूर्वक किया जाना चाहिए क्योंकि इससे संसाधनों की खपत बढ़ जाती है और अनावश्यक कार्यों का दोहराव हो सकता है।
23) समझाइए Spark कोड से लेकर परिणाम तक निष्पादन जीवनचक्र।
RSI Spark एक्जीक्यूशन लाइफसाइकिल तब शुरू होती है जब कोई डेवलपर ट्रांसफॉर्मेशन और एक्शन लिखता है। ट्रांसफॉर्मेशन का लेज़ी इवैल्यूएशन होता है और उनका उपयोग एक संरचना बनाने के लिए किया जाता है। तार्किक योजनाजब कोई क्रिया बुलाई जाती है, Spark तार्किक योजना को परिवर्तित करता है भौतिक निष्पादन योजना ऑप्टिमाइज़र का उपयोग करना।
इसके बाद ड्राइवर जॉब सबमिट करता है, उन्हें चरणों में विभाजित करता है, और फिर आगे कार्यों में। कार्यों को एक्ज़ीक्यूटर पर शेड्यूल किया जाता है, जो डेटा विभाजन को समानांतर रूप से संसाधित करते हैं। परिणाम या तो ड्राइवर को वापस भेज दिए जाते हैं या बाहरी स्टोरेज में लिख दिए जाते हैं।
यह जीवनचक्र कुशल निष्पादन, अनुकूलन और त्रुटि निवारण सुनिश्चित करता है, साथ ही डेवलपर्स से वितरित प्रणालियों की जटिलता को भी दूर रखता है।
24) अपाचे के क्या फायदे और नुकसान हैं? Spark?
अपाचे Spark इसके कई महत्वपूर्ण फायदे हैं लेकिन इसकी कुछ सीमाएं भी हैं।
| फायदे | नुकसान |
|---|---|
| उच्च गति वाली इन-मेमोरी प्रोसेसिंग | उच्च मेमोरी खपत |
| एकीकृत विश्लेषण इंजन | तेजी से सीखने की अवस्था |
| बैच और स्ट्रीमिंग को सपोर्ट करता है | Less छोटे डेटासेट के लिए कुशल |
| समृद्ध पारिस्थितिकी तंत्र | डिबगिंग जटिल हो सकती है |
Spark यह बड़े पैमाने पर, बार-बार दोहराए जाने वाले और विश्लेषणात्मक कार्यभारों में उत्कृष्ट प्रदर्शन करता है। हालांकि, अनुचित ट्यूनिंग से मेमोरी संबंधी समस्याएं उत्पन्न हो सकती हैं, इसलिए उत्पादन स्तर पर तैनाती के लिए विशेषज्ञता आवश्यक है।
25) धीमी गति से चलने वाले सिस्टम को आप कैसे अनुकूलित करते हैं? Spark नौकरी? उदाहरण सहित उत्तर दें।
अनुकूलन Spark कार्यों के लिए एक व्यवस्थित दृष्टिकोण की आवश्यकता होती है। सामान्य रणनीतियों में शफल को कम करना, कुशल जॉइन का उपयोग करना, पुन: उपयोग किए गए डेटासेट को कैश करना और एक्जीक्यूटर मेमोरी को ट्यून करना शामिल है। निगरानी Spark यूआई विभाजन में असंतुलन या लंबे गार्बेज कलेक्शन समय जैसी बाधाओं की पहचान करने में मदद करता है।
उदाहरण के लिए, प्रतिस्थापन groupByKey() साथ में reduceByKey()छोटी तालिकाओं के लिए ब्रॉडकास्ट जॉइन को सक्षम करना और तिरछे डेटा का पुनर्वितरण करना प्रदर्शन में काफी सुधार कर सकता है। एक्ज़ीक्यूटर कोर और मेमोरी का उचित कॉन्फ़िगरेशन भी संसाधनों का इष्टतम उपयोग सुनिश्चित करता है।
प्रभावी अनुकूलन से गहन व्यावहारिक ज्ञान का प्रदर्शन होता है, जिसे वरिष्ठ पदों पर अत्यधिक महत्व दिया जाता है। Spark साक्षात्कार।
26) स्पष्ट करें Spark SQL और इसमें इसकी भूमिका Spark पारिस्थितिकी तंत्र।
Spark SQL एक शक्तिशाली मॉड्यूल है अपाचे Spark जो प्रसंस्करण को सक्षम बनाता है संरचित और अर्ध-संरचित डेटा SQL क्वेरी, डेटाफ्रेम और डेटासेट का उपयोग करके। यह डेवलपर्स और विश्लेषकों को इनके साथ इंटरैक्ट करने की अनुमति देता है। Spark परिचित SQL सिंटैक्स का उपयोग करते हुए लाभ उठाएं Sparkइसका वितरित निष्पादन मॉडल है।
आंतरिक रूप से, Spark SQL, SQL क्वेरी को लॉजिकल प्लान में परिवर्तित करता है, जिन्हें अनुकूलित करने के लिए उपयोग किया जाता है। उत्प्रेरक अनुकूलकऔर फिर उन्हें भौतिक निष्पादन योजनाओं में रूपांतरित किया जाता है। इस अनुकूलन में प्रेडिकेट पुशडाउन, कॉलम प्रूनिंग और जॉइन रीऑर्डरिंग शामिल हैं। Spark SQL, Hive के साथ सहजता से एकीकृत हो जाता है, जिससे Hive टेबल की क्वेरी करना और मौजूदा डेटा वेयरहाउस के साथ संगतता सुनिश्चित होती है।
उदाहरण के लिए, विश्लेषक जटिल कोड लिखे बिना सीधे HDFS में संग्रहीत Parquet फ़ाइलों पर SQL क्वेरी चला सकते हैं। Spark कोडिंग के जरिए उत्पादकता और प्रदर्शन में एक साथ सुधार करना।
27) कैटलिस्ट ऑप्टिमाइज़र क्या है, और यह प्रदर्शन को कैसे बेहतर बनाता है?
कैटलिस्ट ऑप्टिमाइज़र है Spark SQL का क्वेरी अनुकूलन ढांचा जो उच्च-स्तरीय प्रश्नों को कुशल निष्पादन योजनाओं में परिवर्तित करता है। यह कई चीजों के संयोजन का उपयोग करता है। नियम आधारित और लागत-आधारित अनुकूलन क्वेरी निष्पादन को बेहतर बनाने की तकनीकें।
कैटलिस्ट कई चरणों में काम करता है: विश्लेषण, तार्किक अनुकूलन, भौतिक योजना और कोड निर्माण। इन चरणों के दौरान, यह कॉन्स्टेंट फोल्डिंग, प्रेडिकेट पुशडाउन, प्रोजेक्शन प्रूनिंग और जॉइन रणनीति चयन जैसे अनुकूलन लागू करता है।
उदाहरण के लिए, यदि कोई क्वेरी तालिकाओं को जोड़ने से पहले पंक्तियों को फ़िल्टर करती है, तो कैटलिस्ट यह सुनिश्चित करता है कि फ़िल्टर यथाशीघ्र लागू हो जाए, जिससे क्लस्टर में डेटा के फेरबदल की मात्रा कम हो जाती है। इससे बड़े पैमाने पर विश्लेषणात्मक कार्यभार में प्रदर्शन में उल्लेखनीय सुधार होता है।
28) टंगस्टन क्या है, और यह किस प्रकार गुणनफल बढ़ाता है? Spark प्रदर्शन?
टंगस्टन एक प्रदर्शन अनुकूलन पहल है Spark सुधार करने के लिए बनाया गया है सीपीयू दक्षता और मेमोरी प्रबंधनइसका प्राथमिक लक्ष्य सक्षम बनाना है। Spark ओवरहेड लागत को कम करके बेयर मेटल के करीब काम करना। Java ऑब्जेक्ट निर्माण और गार्बेज संग्रहण।
टंगस्टन ऐसी तकनीकों को पेश करता है जैसे कि ऑफ-हीप मेमोरी प्रबंधन, कैश-अनुकूल डेटा संरचनाएं, तथा संपूर्ण चरण कोड निर्माणइन सुधारों से JVM ओवरहेड कम होता है और SQL और डेटाफ्रेम ऑपरेशनों के लिए निष्पादन गति में सुधार होता है।
उदाहरण के लिए, संपूर्ण चरण कोड जनरेशन कई ऑपरेटरों को एक ही कोड में संकलित करता है। Java यह फ़ंक्शन वर्चुअल फ़ंक्शन कॉल को कम करता है और सीपीयू पाइपलाइन की दक्षता में सुधार करता है। इससे यह होता है Spark पारंपरिक निष्पादन मॉडलों की तुलना में SQL वर्कलोड काफी तेजी से निष्पादित होते हैं।
29) संरचित स्ट्रीमिंग की व्याख्या कीजिए और यह किस प्रकार भिन्न है, यह बताइए। Spark स्ट्रीमिंग।
स्ट्रक्चर्ड स्ट्रीमिंग एक है उच्च-स्तरीय स्ट्रीमिंग एपीआई पर बनाया गया Spark SQL जो स्ट्रीमिंग डेटा को एक असीमित तालिका के रूप में मानता है। इसके विपरीत Spark स्ट्रीमिंग, जो निम्न-स्तरीय डीस्ट्रीम और माइक्रो-बैच प्रोसेसिंग का उपयोग करती है, संरचित स्ट्रीमिंग प्रदान करती है घोषणात्मक एपीआई मजबूत गारंटी के साथ।
स्ट्रक्चर्ड स्ट्रीमिंग समर्थन करता है ठीक-एक बार सिमेंटिक्सइवेंट-टाइम प्रोसेसिंग, वॉटरमार्क और चेकपॉइंटिंग के माध्यम से फॉल्ट टॉलरेंस। डेवलपर स्ट्रीमिंग क्वेरी को बैच क्वेरी के समान ही लिखते हैं, और Spark यह स्वचालित रूप से वृद्धिशील निष्पादन को संभालता है।
उदाहरण के लिए, स्ट्रक्चर्ड स्ट्रीमिंग का उपयोग करके काफ्का इवेंट्स को प्रोसेस करने से इवेंट-टाइम विंडो का उपयोग करके देर से आने वाले डेटा को सही ढंग से संभाला जा सकता है, जिससे यह रीयल-टाइम एनालिटिक्स और मॉनिटरिंग सिस्टम के लिए उपयुक्त हो जाता है।
30) चेकपॉइंटिंग क्या है? Sparkऔर इसका उपयोग कब करना चाहिए?
चेकपॉइंटिंग एक ऐसी व्यवस्था है जिसका उपयोग किया जाता है वंशावली ग्राफ़ को छोटा करें मध्यवर्ती परिणामों को एचडीएफएस या क्लाउड ऑब्जेक्ट स्टोर जैसे विश्वसनीय संग्रहण में सहेजकर। इसका मुख्य उपयोग त्रुटि सहनशीलता को बेहतर बनाने और लंबी या जटिल प्रक्रियाओं में पुनर्गणना ओवरहेड को कम करने के लिए किया जाता है। Spark नौकरियों.
Spark यह दो प्रकार के चेकपॉइंटिंग का समर्थन करता है: आरडीडी चेकपॉइंटिंग और संरचित स्ट्रीमिंग चेकपॉइंटिंगस्ट्रीमिंग अनुप्रयोगों में, स्थिति, ऑफसेट और प्रगति की जानकारी बनाए रखने के लिए चेकपॉइंटिंग अनिवार्य है।
उदाहरण के लिए, पुनरावर्ती मशीन लर्निंग पाइपलाइनों या स्टेटफुल स्ट्रीमिंग जॉब्स में, चेकपॉइंटिंग विफलताओं की स्थिति में वंशावली की शुरुआत से महंगे पुनर्गणना को रोकता है, जिससे उत्पादन वातावरण में स्थिरता और विश्वसनीयता सुनिश्चित होती है।
31) कैसे करता है Spark डेटा में विषमता को कैसे दूर किया जाए, और इसे कैसे कम किया जा सकता है?
डेटा असंतुलन तब होता है जब कुछ विभाजनों में अन्य विभाजनों की तुलना में काफी अधिक डेटा होता है, जिससे कुछ कार्यों को पूरा होने में बहुत अधिक समय लगता है। इससे संसाधनों का अक्षम उपयोग होता है और कार्य पूरा होने में अधिक समय लगता है।
Spark डेटा में विषमता को दूर करने के कई तरीके प्रदान करता है, जिनमें शामिल हैं: चाबियों को नमकीन करना, प्रसारण में शामिल हों, पुनर्विभाजन, तथा अनुकूली क्वेरी निष्पादन (AQE)AQE रनटाइम पर विषम विभाजनों को विभाजित करके निष्पादन योजनाओं को गतिशील रूप से समायोजित करता है।
उदाहरण के लिए, जब अत्यधिक विषम कुंजी वाले डेटासेट को जोड़ा जाता है, तो एक यादृच्छिक उपसर्ग (साल्टिंग) जोड़ने से डेटा विभाजन में अधिक समान रूप से वितरित होता है, जिससे समानांतरता में सुधार होता है और पिछड़ने वाले डेटा की संख्या कम हो जाती है।
32) एडैप्टिव क्वेरी एक्ज़ीक्यूशन (AQE) की व्याख्या कीजिए। Spark.
एडैप्टिव क्वेरी एक्ज़ीक्यूशन एक है Spark क्वेरी योजनाओं को अनुकूलित करने वाली सुविधा चलने के समय पर वास्तविक डेटा सांख्यिकी पर आधारित। स्थैतिक अनुकूलन के विपरीत, AQE क्वेरी निष्पादन शुरू होने के बाद निष्पादन रणनीतियों को गतिशील रूप से संशोधित करता है।
AQE स्वचालित रूप से जॉइन रणनीतियों को बदल सकता है, शफल विभाजन आकारों को अनुकूलित कर सकता है और विषम जॉइन को संभाल सकता है। इससे मैन्युअल ट्यूनिंग की आवश्यकता कम हो जाती है और विभिन्न कार्यभारों में प्रदर्शन बेहतर होता है।
उदाहरण के लिए, अगर Spark यदि AQE शुरू में सॉर्ट-मर्ज जॉइन की योजना बनाता है, लेकिन बाद में पता चलता है कि एक डेटासेट छोटा है, तो AQE गतिशील रूप से ब्रॉडकास्ट जॉइन पर स्विच कर सकता है, जिसके परिणामस्वरूप कोड में बदलाव किए बिना तेजी से निष्पादन होता है।
33) repartition() और coalesce() में क्या अंतर हैं?
दोनों repartition() और coalesce() इनका उपयोग विभाजनों की संख्या को बदलने के लिए किया जाता है, लेकिन ये अलग-अलग तरह से व्यवहार करते हैं।
| पहलू | वितरण | संगठित होना |
|---|---|---|
| घसीटना | हाँ | नहीं (डिफ़ॉल्ट रूप से) |
| प्रदर्शन | और धीमा | तेज़ |
| उदाहरण | विभाजनों को बढ़ाना | विभाजनों को कम करना |
repartition() यह पूर्ण रूप से फेरबदल करता है और समानांतरता बढ़ाने में उपयोगी है। coalesce() यह शफल किए बिना पार्टीशन को कुशलतापूर्वक कम करता है, जिससे स्टोरेज में डेटा लिखने से पहले छोटी फाइलों से बचने के लिए यह आदर्श है।
34) पाई कैसे काम करता है?Spark से अलग Spark स्काला में लिखा गया है?
PySpark प्रदान करता है एक Python एपीआई के लिए Spark, सक्रिय करने के Python डेवलपर्स को वितरित कंप्यूटिंग का लाभ उठाने के लिए। हालाँकि, PySpark संचार के कारण अतिरिक्त ओवरहेड उत्पन्न होता है। Python प्रक्रिया और जेवीएम।
स्काला Spark एप्लिकेशन आमतौर पर बेहतर प्रदर्शन करते हैं क्योंकि स्काला मूल रूप से जेवीएम पर चलता है।Spark ऑप्टिमाइज़ेशन का उपयोग करके प्रदर्शन संबंधी समस्याओं को कम करता है जैसे Apache Arrow स्तंभीय डेटा स्थानांतरण के लिए।
व्यवहार में, PySpark तेजी से विकास और डेटा साइंस वर्कफ़्लो के लिए को प्राथमिकता दी जाती है, जबकि प्रदर्शन-महत्वपूर्ण उत्पादन प्रणालियों के लिए अक्सर स्काला को चुना जाता है।
35) किसी खराबी का निवारण आप कैसे करते हैं? Spark उत्पादन क्षेत्र में नौकरी? उदाहरण सहित उत्तर दें।
समस्या निवारण Spark इस नौकरी में लॉग का विश्लेषण करना आवश्यक है। Spark यूआई मेट्रिक्स और कॉन्फ़िगरेशन सेटिंग्स। सामान्य समस्याओं में मेमोरी त्रुटियां, डेटा असंतुलन, लंबे समय तक गार्बेज कलेक्शन में रुकावट और शफल विफलताएं शामिल हैं।
ऊपर दिए Spark यूआई की मदद से इंजीनियर धीमे चरणों, अव्यवस्थित कार्यों और एक्जीक्यूटर मेमोरी उपयोग की पहचान कर सकते हैं। लॉग सीरियलाइज़ेशन त्रुटियों या गुम निर्भरताओं जैसी त्रुटियों का पता लगाने में सहायक होते हैं।
उदाहरण के लिए, बार-बार एक्ज़ीक्यूटर की विफलता अपर्याप्त मेमोरी आवंटन का संकेत दे सकती है, जिसे एक्ज़ीक्यूटर मेमोरी को समायोजित करके या विभाजन के आकार को कम करके हल किया जा सकता है। प्रभावी समस्या निवारण वास्तविक दुनिया के परिचालन कौशल को दर्शाता है, जो वरिष्ठ साक्षात्कारों में एक महत्वपूर्ण अपेक्षा है।
36) अपाचे द्वारा समर्थित विभिन्न क्लस्टर प्रबंधकों की व्याख्या कीजिए। Spark.
Spark कई का समर्थन करता है क्लस्टर प्रबंधकजो नोड्स में संसाधनों का आवंटन करने और निष्पादकों को शेड्यूल करने के लिए जिम्मेदार होते हैं। सबसे अधिक उपयोग किए जाने वाले क्लस्टर प्रबंधक हैं: स्टैंडअलोन, यार्न, मेसो, तथा Kubernetes.
| Cluster प्रबंधक | विशेषताएँ | उदाहरण |
|---|---|---|
| स्टैंडअलोन | सरल, Spark-नवमी | छोटे से मध्यम आकार के समूह |
| यार्न | हैडूप इकोसिस्टम एकीकरण | एंटरप्राइज हैडूप सेटअप |
| मेसो | सूक्ष्म स्तर पर संसाधन साझाकरण | मिश्रित कार्यभार |
| Kubernetes | कंटेनर-आधारित ऑर्केस्ट्रेशन | क्लाउड-नेटिव परिनियोजन |
YARN अपनी स्थिरता और Hadoop एकीकरण के कारण उद्यमों में व्यापक रूप से अपनाया जाता है, जबकि Kubernetes क्लाउड-नेटिव ऑपरेटिंग सिस्टम के लिए तेजी से लोकप्रिय हो रहा है। Spark स्केलेबिलिटी और आइसोलेशन के फायदों के कारण कार्यभार में कमी आती है।
37 क्या Spark प्रदर्शन को बेहतर बनाने के लिए कॉन्फ़िगरेशन पैरामीटर सबसे महत्वपूर्ण कौन से हैं?
Spark प्रदर्शन को बेहतर बनाना एक्जीक्यूटर और मेमोरी पैरामीटर के उचित कॉन्फ़िगरेशन पर बहुत हद तक निर्भर करता है। सबसे महत्वपूर्ण कॉन्फ़िगरेशन में शामिल हैं:
spark.executor.memory– प्रत्येक निष्पादक को आवंटित मेमोरीspark.executor.cores– प्रति एक्जीक्यूटर सीपीयू कोर की संख्याspark.sql.shuffle.partitions– शफल विभाजनों की संख्याspark.driver.memory– ड्राइवर को आवंटित मेमोरीspark.memory.fraction– JVM मेमोरी उपयोग संतुलन
उदाहरण के लिए, वृद्धि spark.sql.shuffle.partitions यह बड़े डेटासेट के लिए समानांतरता में सुधार करता है, लेकिन यदि इसे बहुत अधिक सेट किया जाए तो ओवरहेड उत्पन्न कर सकता है। प्रभावी ट्यूनिंग के लिए कार्यभार की विशेषताओं के आधार पर CPU, मेमोरी और I/O को संतुलित करना आवश्यक है।
38) क्या है Sparkसंदर्भ बनाम Sparkसत्र और इन दोनों में क्या अंतर है?
SparkContext यह मूल प्रवेश बिंदु है Spark यह कार्यक्षमता क्लस्टर मैनेजर के साथ संवाद करने, निष्पादकों का प्रबंधन करने और एप्लिकेशन निष्पादन को ट्रैक करने के लिए जिम्मेदार है।
SparkSession यह एक एकीकृत प्रवेश बिंदु है जिसे पेश किया गया है Spark 2.0 जो समाहित करता है SparkContext, SQLContext, तथा HiveContextयह सभी अनुप्रयोगों के लिए एक ही इंटरफ़ेस प्रदान करके अनुप्रयोग विकास को सरल बनाता है। Spark कार्यक्षमताओं।
| पहलू | Sparkसंदर्भ | Sparkअधिवेशन |
|---|---|---|
| शुरू की | शीघ्र Spark संस्करणों | Spark 2.0 + |
| विस्तार | मूल कार्यक्षमता | एकीकृत एपीआई |
| प्रयोग | निम्न-स्तरीय आरडीडी संचालन | SQL, डेटाफ्रेम, डेटासेट |
आधुनिक Spark एप्लिकेशन को हमेशा उपयोग करना चाहिए SparkSession.
39) कैसे करता है Spark क्या इसे रीयल-टाइम प्रोसेसिंग के लिए काफ्का के साथ एकीकृत किया जा सकता है?
Spark यह मुख्य रूप से काफ्का के साथ एकीकृत होता है संरचित स्ट्रीमिंगजिससे विश्वसनीय और स्केलेबल रीयल-टाइम डेटा प्रोसेसिंग संभव हो पाती है। Spark यह काफ्का टॉपिक्स को स्ट्रीमिंग डेटाफ्रेम के रूप में उपयोग करता है, जो ऑफसेट ट्रैकिंग और एग्जैक्टली-वन्स सिमेंटिक्स का समर्थन करता है।
Spark यह डिज़ाइन Kafka में सीधे कमिट करने के बजाय चेकपॉइंट डायरेक्टरी में Kafka ऑफसेट को बनाए रखता है, जिससे त्रुटि सहनशीलता सुनिश्चित होती है। यह डिज़ाइन डेटा हानि या डुप्लिकेशन के बिना विफलताओं से उबरने में सक्षम बनाता है।
उदाहरण के लिए, Spark यह Kafka से क्लिकस्ट्रीम डेटा को प्रोसेस कर सकता है, वास्तविक समय में इवेंट्स को एकत्रित कर सकता है और परिणामों को डेटा वेयरहाउस में स्टोर कर सकता है। इस इंटीग्रेशन का उपयोग आमतौर पर इवेंट-ड्रिवन एनालिटिक्स और मॉनिटरिंग पाइपलाइन में किया जाता है।
40) एक्जेक्टली-वन्स प्रोसेसिंग क्या है? Spark संरचित स्ट्रीमिंग?
एक्ज़ैक्टली-वन्स प्रोसेसिंग यह सुनिश्चित करती है कि प्रत्येक रिकॉर्ड को प्रोसेस किया जाए। सिर्फ एक बारअसफलताओं की मौजूदगी में भी। Spark स्ट्रक्चर्ड स्ट्रीमिंग इसका उपयोग करके इसे प्राप्त करती है। चेकपॉइंटिंग, आइडम्पोटेंट लिखता हैऔर नियतात्मक निष्पादन।
Spark चेकपॉइंट में संग्रहीत ऑफसेट, स्थिति जानकारी और मेटाडेटा का उपयोग करके प्रगति को ट्रैक करता है। यदि कोई विफलता होती है, Spark यह डेटा को गलत तरीके से पुनः संसाधित किए बिना, अंतिम सफल चेकपॉइंट से पुनः शुरू होता है।
उदाहरण के लिए, स्ट्रीमिंग डेटा लिखते समय Delta लेक या ट्रांजैक्शनल डेटाबेस, Spark यह सुनिश्चित करता है कि आंशिक लेखन को सुरक्षित रूप से रोलबैक या पुनः प्रयास किया जाए, जिससे वित्तीय और मिशन-महत्वपूर्ण अनुप्रयोगों के लिए एक्जेक्टली-वन्स सिमेंटिक्स महत्वपूर्ण हो जाता है।
41) स्पष्ट करें Spark सुरक्षा संरचना और प्रमाणीकरण तंत्र।
Spark यह डेटा और क्लस्टर संसाधनों की सुरक्षा के लिए कई सुरक्षा सुविधाएँ प्रदान करता है। प्रमाणीकरण यह सुनिश्चित करता है कि केवल अधिकृत उपयोगकर्ता और सेवाएँ ही पहुँच प्राप्त कर सकें। Spark एप्लिकेशनों को नियंत्रित किया जाता है, जबकि प्राधिकरण संसाधनों के उपयोग को नियंत्रित करता है।
Spark का समर्थन करता है करबरोस प्रमाणीकरणडेटा ट्रांज़िट के लिए SSL एन्क्रिप्शन और UI तथा जॉब सबमिशन के लिए एक्सेस कंट्रोल लिस्ट (ACL) जैसी सुविधाएं उपलब्ध हैं। Hadoop सुरक्षा के साथ एकीकरण से एंटरप्राइज़-स्तरीय सुरक्षा और भी बेहतर हो जाती है।
सुरक्षित वातावरण में, Spark एप्लिकेशन केर्बेरोस के साथ प्रमाणीकरण करते हैं, शफल डेटा को एन्क्रिप्ट करते हैं, और लॉग और यूआई तक पहुंच को प्रतिबंधित करते हैं। ये उपाय विनियमित उद्योगों में अनुपालन के लिए आवश्यक हैं।
42) छोटी फ़ाइल की समस्या क्या है? Sparkऔर आप इसे कैसे हल करते हैं?
छोटी फ़ाइल की समस्या तब उत्पन्न होती है जब Spark यह एचडीएफएस या क्लाउड ऑब्जेक्ट स्टोर जैसे स्टोरेज सिस्टम में बड़ी संख्या में छोटी फाइलें लिखता है। इससे अत्यधिक मेटाडेटा ओवरहेड और अक्षम रीड के कारण प्रदर्शन में गिरावट आती है।
Spark इस समस्या का समाधान करता है विभाजनों का विलयआउटपुट विभाजन गणनाओं को समायोजित करना और फ़ाइल संपीड़न तकनीकों का उपयोग करना। coalesce() डेटा लिखने से पहले इसका उपयोग करना एक सामान्य समाधान है।
उदाहरण के लिए, लिखने से पहले आउटपुट विभाजनों की संख्या हजारों से घटाकर कुछ सौ तक करने से क्वेरी का प्रदर्शन बेहतर होता है और मेटाडेटा सेवाओं पर भार कम होता है।
43) स्पष्ट करें Spark कार्य निर्धारण के तरीके।
Spark यह दो शेड्यूलिंग मोड को सपोर्ट करता है: फीफो और उचित समय-निर्धारण.
| शेड्यूलिंग मोड | विवरण | उदाहरण |
|---|---|---|
| फीफो | प्रस्तुत क्रम में निष्पादित कार्य | सरल कार्यभार |
| मेला | विभिन्न नौकरियों में साझा किए गए संसाधन | बहु-उपयोगकर्ता क्लस्टर |
उचित शेड्यूलिंग यह सुनिश्चित करती है कि लंबे समय तक चलने वाले कार्य छोटे इंटरैक्टिव प्रश्नों को अवरुद्ध न करें। इसका उपयोग आमतौर पर साझा वातावरण में किया जाता है जहां कई टीमें काम करती हैं। Spark एक साथ कई काम करना।
44) सामान्य कारण क्या हैं? Spark उत्पादन में नौकरी संबंधी विफलताएँ?
Spark मेमोरी की कमी, डेटा असंतुलन, सीरियलाइज़ेशन संबंधी समस्याएं, नेटवर्क टाइमआउट या गलत तरीके से कॉन्फ़िगर की गई निर्भरताओं के कारण जॉब में विफलता हो सकती है। एक्ज़ीक्यूटर विफलताएं और ड्राइवर क्रैश होना खराब तरीके से ट्यून किए गए अनुप्रयोगों में विशेष रूप से आम हैं।
उदाहरण के लिए, बार-बार OutOfMemoryError यह अपर्याप्त एक्ज़ीक्यूटर मेमोरी या अत्यधिक कैशिंग को इंगित करता है। शफल फ़ेच विफलताएँ अस्थिर नोड्स या डिस्क अवरोधों की ओर इशारा कर सकती हैं।
विफलता के पैटर्न को समझना और सक्रिय रूप से निगरानी करना Spark स्थिर प्रोडक्शन पाइपलाइन को बनाए रखने के लिए यूआई मेट्रिक्स महत्वपूर्ण है।
45) आप उत्पादन के लिए तैयार उत्पाद को कैसे डिज़ाइन करते हैं? Spark इसका अनुप्रयोग क्या है? उदाहरणों सहित उत्तर दें।
उत्पादन के लिए तैयार Spark आवेदन पर जोर देता है स्केलेबिलिटी, फॉल्ट टॉलरेंस, ऑब्जर्वेबिलिटी और मेंटेनेबिलिटीइसमें उचित लॉगिंग, चेकपॉइंटिंग, कॉन्फ़िगरेशन प्रबंधन और स्वचालित परीक्षण शामिल हैं।
उदाहरण के लिए, एक स्ट्रीमिंग एप्लिकेशन में संरचित लॉगिंग, मजबूत त्रुटि प्रबंधन, रिकवरी के लिए चेकपॉइंटिंग और मॉनिटरिंग टूल के साथ मेट्रिक्स एकीकरण शामिल होना चाहिए। बैच जॉब्स को इनपुट डेटा को मान्य करना चाहिए, स्कीमा विकास को संभालना चाहिए और हार्ड-कोडेड कॉन्फ़िगरेशन से बचना चाहिए।
डिजाइनिंग Spark इन सिद्धांतों पर आधारित अनुप्रयोग उद्यम परिवेशों में विश्वसनीयता, आसान डिबगिंग और दीर्घकालिक रखरखाव सुनिश्चित करते हैं।
46) किसी क्रिया के आंतरिक निष्पादन प्रवाह की व्याख्या कीजिए। Spark आवेदन जमा करने से लेकर कार्य पूरा होने तक की पूरी प्रक्रिया।
जब Spark आवेदन जमा हो जाने पर, ड्राइवर प्रोग्राम यह एप्लिकेशन को आरंभ करता है और कोड में परिभाषित परिवर्तनों के आधार पर एक तार्किक निष्पादन योजना बनाता है। Spark लेज़ी इवैल्यूएशन के कारण रूपांतरण तुरंत निष्पादित नहीं होते हैं। निष्पादन तभी शुरू होता है जब कोई क्रिया ट्रिगर होती है।
तार्किक योजना को इसमें परिवर्तित किया जाता है निर्देशित चक्रीय ग्राफ (DAG)जिसे बाद में अनुकूलित किया जाता है और विभाजित किया जाता है। चरणों शफल सीमाओं पर आधारित। प्रत्येक चरण में कई भाग होते हैं। कार्यजहां प्रत्येक कार्य एक ही डेटा विभाजन को संसाधित करता है।
ड्राइवर कार्यों को प्रस्तुत करता है निष्पादकों क्लस्टर मैनेजर के माध्यम से वर्कर नोड्स पर चल रहा है। एक्ज़ीक्यूटर समानांतर रूप से कार्यों को संसाधित करते हैं और ड्राइवर को परिणाम वापस रिपोर्ट करते हैं। यदि विफलताएँ होती हैं, Spark यह निष्पादन मॉडल वंशावली संबंधी जानकारी का उपयोग करके कार्यों को पुनः प्रयासित करता है। यह निष्पादन मॉडल स्केलेबिलिटी, त्रुटि सहिष्णुता और कुशल वितरित प्रसंस्करण सुनिश्चित करता है।
47) संपूर्ण चरण कोड जनरेशन क्या है, और यह महत्वपूर्ण क्यों है?
संपूर्ण चरण कोड जनरेशन, टंगस्टन परियोजना के अंतर्गत शुरू की गई एक प्रदर्शन अनुकूलन तकनीक है। यह कई प्रक्रियाओं को मिलाकर सीपीयू ओवरहेड को कम करती है। Spark ऑपरेटरों को एकल उत्पन्न में Java यह फ़ंक्शन वर्चुअल मेथड कॉल और अत्यधिक ऑब्जेक्ट निर्माण को समाप्त करता है।
प्रत्येक ऑपरेटर को अलग-अलग निष्पादित करने के बजाय, Spark यह अनुकूलित बाइटकोड उत्पन्न करता है जो डेटा को छोटे-छोटे लूपों में संसाधित करता है। इससे सीपीयू कैश की लोकैलिटी में सुधार होता है और गार्बेज कलेक्शन का दबाव कम होता है।
उदाहरण के लिए, फ़िल्टर, प्रोजेक्शन और एग्रीगेशन से संबंधित क्वेरी को एक ही निष्पादन चरण में संकलित किया जा सकता है। इससे दक्षता में काफी सुधार होता है। Spark SQL का प्रदर्शन, विशेष रूप से बड़े डेटासेट और जटिल क्वेरी वाले विश्लेषणात्मक कार्यभार में।
48) संकीर्ण और व्यापक रूपांतरण क्या हैं? Spark?
Spark डेटा को विभाजनों में वितरित करने के तरीके के आधार पर रूपांतरणों को वर्गीकृत किया जाता है।
| परिवर्तन प्रकार | विवरण | उदाहरण |
|---|---|---|
| संकीर्ण | डेटा शफल की आवश्यकता नहीं है | map, filter, union |
| चौड़ा | डेटा शफल की आवश्यकता है | groupByKey, join, reduceByKey |
संकीर्ण रूपांतरण अनुमति देते हैं Spark एक ही चरण में पाइपलाइन संचालन को सुगम बनाकर प्रदर्शन में सुधार किया जा सकता है। व्यापक रूपांतरणों के लिए नेटवर्क पर डेटा को स्थानांतरित करना पड़ता है, जिससे विलंबता और संसाधन लागत बढ़ जाती है।
प्रभावी लेखन के लिए इस अंतर को समझना अत्यंत महत्वपूर्ण है। Spark व्यापक परिवर्तनों को कम करने से कार्यों का निष्पादन तेज होता है और क्लस्टर पर भार कम होता है, इसलिए नौकरियों में यह लाभ मिलता है।
49) कैसे करता है Spark स्ट्रीमिंग अनुप्रयोगों में बैकप्रेशर को कैसे संभालें?
बैकप्रेशर किसी स्ट्रीमिंग सिस्टम की प्रसंस्करण क्षमता के आधार पर इनपुट दरों को अनुकूलित करने की क्षमता है। Spark स्ट्रीमिंग मॉडल के आधार पर यह बैकप्रेशर को अलग-अलग तरीके से हैंडल करता है।
विरासत में Spark स्ट्रीमिंग में, बैकप्रेशर प्रोसेसिंग समय से प्राप्त फीडबैक का उपयोग करके रिसीवर की इनपुट दरों को गतिशील रूप से समायोजित करता है। संरचित स्ट्रीमिंग में, Spark पर निर्भर करता है माइक्रो-बैच निष्पादनदर सीमाएं और स्रोत-विशिष्ट नियंत्रण जैसे कि काफ्का ऑफसेट।
उदाहरण के लिए, काफ्का स्ट्रीम को प्रोसेस करते समय, Spark एक्जीक्यूटर पर अत्यधिक भार पड़ने से बचाने के लिए प्रति बैच उपयोग किए जाने वाले रिकॉर्ड की संख्या सीमित की जा सकती है। इससे ट्रैफ़िक बढ़ने के दौरान स्थिरता सुनिश्चित होती है और डाउनस्ट्रीम सिस्टम को ओवरलोड होने से बचाया जा सकता है।
50) यूडीएफ क्या हैं? Sparkऔर उनके नुकसान क्या हैं?
उपयोगकर्ता परिभाषित फ़ंक्शन (UDF) डेवलपर्स को कस्टम लॉजिक लागू करने की अनुमति देते हैं। Spark डेटाफ्रेम का उपयोग करने वाली भाषाएँ जैसे कि Python या स्काला। यूडीएफ तब उपयोगी होते हैं जब वे अंतर्निहित हों। Spark फ़ंक्शन जटिल व्यावसायिक तर्क को व्यक्त नहीं कर सकते।
हालांकि, यूडीएफ के कुछ महत्वपूर्ण नुकसान भी हैं। वे दरकिनार कर देते हैं। Spark'कैटलिस्ट ऑप्टिमाइज़र, प्रेडिकेट पुशडाउन और कॉलम प्रूनिंग जैसे क्वेरी ऑप्टिमाइज़ेशन को रोकता है। Python UDFs JVM और के बीच सीरियलाइज़ेशन ओवरहेड भी उत्पन्न करते हैं। Python प्रक्रिया.
Spark SQL के अंतर्निर्मित फ़ंक्शन या Spark SQL एक्सप्रेशन को प्राथमिकता दी जानी चाहिए। प्रदर्शन की दृष्टि से महत्वपूर्ण कार्यभारों के लिए, UDF से बचने से निष्पादन समय में उल्लेखनीय सुधार हो सकता है।
🔍 टॉप अपाचे Spark वास्तविक दुनिया के परिदृश्यों और रणनीतिक प्रतिक्रियाओं के साथ साक्षात्कार प्रश्न
1) अपाचे क्या है? Sparkऔर इसे पारंपरिक बिग डेटा फ्रेमवर्क की तुलना में क्यों प्राथमिकता दी जाती है?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता अपाचे के बारे में आपकी समझ का मूल्यांकन करना चाहता है। Spark इसके मूल सिद्धांत और Hadoop MapReduce जैसे पुराने फ्रेमवर्क की तुलना में इसके फायदे।
उदाहरण उत्तर: अपाचे Spark यह एक वितरित डेटा प्रोसेसिंग फ्रेमवर्क है जिसे बड़े डेटासेट पर तीव्र, इन-मेमोरी गणना के लिए डिज़ाइन किया गया है। इसे पारंपरिक फ्रेमवर्क की तुलना में प्राथमिकता दी जाती है क्योंकि यह इन-मेमोरी प्रोसेसिंग का समर्थन करता है, जिससे डिस्क I/O में काफी कमी आती है और प्रदर्शन में सुधार होता है। Spark यह बैच प्रोसेसिंग, स्ट्रीमिंग, मशीन लर्निंग और ग्राफ प्रोसेसिंग के लिए एक एकीकृत इंजन भी प्रदान करता है, जिससे यह आधुनिक डेटा वर्कलोड के लिए अधिक लचीला और कुशल बन जाता है।
2) कैसे करता है Spark वितरित वातावरण में दोष सहिष्णुता कैसे प्राप्त करें?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपके ज्ञान का आकलन कर रहा है। Sparkइसकी आंतरिक संरचना और यह विफलताओं से कैसे निपटता है।
उदाहरण उत्तर: Spark यह रेज़िलिएंट डिस्ट्रीब्यूटेड डेटासेट्स (आरडीडी) के उपयोग के माध्यम से फॉल्ट टॉलरेंस प्राप्त करता है। आरडीडी वंशावली जानकारी को ट्रैक करते हैं, जो अनुमति देता है Spark नोड फेल होने की स्थिति में खोए हुए पार्टीशन को दोबारा बनाने के लिए। अपनी पिछली भूमिका में, मैंने एक्ज़ीक्यूटर फेल होने के दौरान मैन्युअल हस्तक्षेप के बिना डेटा को आसानी से रिकवर करने के लिए इस तंत्र पर भरोसा किया था।
3) क्या आप RDD, डेटाफ्रेम और डेटासेट के बीच अंतर समझा सकते हैं?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपकी समझ का परीक्षण करना चाहता है। Spark अमूर्त अवधारणाएं और प्रत्येक का उपयोग कब करना है।
उदाहरण उत्तर: RDD सबसे निम्न-स्तरीय अमूर्तता है और बारीक नियंत्रण प्रदान करती है, लेकिन इसमें अधिक मैन्युअल अनुकूलन की आवश्यकता होती है। डेटाफ्रेम स्कीमा के साथ उच्च-स्तरीय अमूर्तता प्रदान करते हैं, जिससे यह संभव हो पाता है। Spark कैटलिस्ट ऑप्टिमाइज़र का उपयोग करके क्वेरी को ऑप्टिमाइज़ करना। डेटासेट, ऑप्टिमाइज़ेशन के साथ-साथ टाइप सेफ्टी प्रदान करके RDD और डेटाफ्रेम के लाभों को संयोजित करते हैं। पिछली नौकरी में, मैंने मुख्य रूप से डेटाफ्रेम का उपयोग किया था क्योंकि वे बड़े पैमाने पर विश्लेषण के लिए प्रदर्शन और उपयोग में आसानी के बीच संतुलन बनाए रखते थे।
4) आप किसी चीज़ के प्रदर्शन को कैसे अनुकूलित करते हैं? Spark काम?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता ट्यूनिंग और ऑप्टिमाइज़ेशन में व्यावहारिक अनुभव की तलाश कर रहा है। Spark अनुप्रयोगों.
उदाहरण उत्तर: प्रदर्शन अनुकूलन Spark इसमें उचित विभाजन, बार-बार उपयोग किए जाने वाले डेटासेट को कैश करना और शफल को कम करना जैसी तकनीकें शामिल हैं। इसमें एक्जीक्यूटर मेमोरी और कोर जैसे कॉन्फ़िगरेशन पैरामीटर को ट्यून करना भी शामिल है। अपनी पिछली नौकरी में, मैंने निष्पादन योजनाओं का विश्लेषण करके और क्लस्टर संसाधनों का बेहतर उपयोग करने के लिए विभाजन आकारों को समायोजित करके कार्य प्रदर्शन में सुधार किया था।
5) एक ऐसी स्थिति का वर्णन करें जहाँ आपको डेटा में भारी असंतुलन (स्केव) से निपटना पड़ा हो। Spark.
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता वास्तविक दुनिया की डेटा प्रोसेसिंग चुनौतियों में आपकी समस्या-समाधान क्षमताओं का आकलन करना चाहता है।
उदाहरण उत्तर: डेटा असंतुलन विशिष्ट एक्ज़ीक्यूटर्स पर अत्यधिक भार डालकर प्रदर्शन को काफी हद तक प्रभावित कर सकता है। मैंने इस समस्या को हल करने के लिए कुंजी सॉल्टिंग और डेटा रीपार्टिशनिंग जैसी तकनीकों का उपयोग किया ताकि भार समान रूप से वितरित हो सके। अपनी पिछली भूमिका में, डेटा असंतुलन को दूर करने से एक महत्वपूर्ण रिपोर्टिंग पाइपलाइन में जॉब रनटाइम घंटों से घटकर मिनटों में आ गया।
6) कैसे करता है Spark स्ट्रीमिंग और स्ट्रक्चर्ड स्ट्रीमिंग में क्या अंतर है?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपके ज्ञान का परीक्षण कर रहा है। Sparkइसकी स्ट्रीमिंग क्षमताओं और विकास के बारे में।
उदाहरण उत्तर: Spark स्ट्रीमिंग एक माइक्रो-बैच प्रोसेसिंग मॉडल का उपयोग करती है, जहाँ डेटा को निश्चित अंतराल पर छोटे बैचों में संसाधित किया जाता है। स्ट्रक्चर्ड स्ट्रीमिंग इसी पर आधारित है। Spark SQL इंजन स्ट्रीमिंग डेटा को एक असीमित टेबल के रूप में मानता है, जिससे बेहतर ऑप्टिमाइज़ेशन, त्रुटि सहनशीलता और सरल API मिलते हैं। इसकी स्थिरता और उपयोग में आसानी के कारण नए अनुप्रयोगों के लिए आमतौर पर स्ट्रक्चर्ड स्ट्रीमिंग को प्राथमिकता दी जाती है।
7) आप मेमोरी प्रबंधन संबंधी समस्याओं को कैसे संभालते हैं? Spark?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता सामान्य चीजों के साथ आपके अनुभव को समझना चाहता है। Spark चुनौतियाँ और समस्या निवारण।
उदाहरण उत्तर: एक्जीक्यूटर मेमोरी को ठीक से कॉन्फ़िगर करके, अनावश्यक कैशिंग से बचकर और पार्केट जैसे कुशल डेटा प्रारूपों का उपयोग करके मेमोरी प्रबंधन संबंधी समस्याओं का समाधान किया जाता है। मॉनिटरिंग टूल जैसे कि Spark यूआई मेमोरी संबंधी बाधाओं की पहचान करने में मदद करता है, जिससे जॉब विफल होने से पहले ही सक्रिय रूप से समायोजन किया जा सकता है।
8) मुझे एक ऐसे समय के बारे में बताएं जब एक Spark उत्पादन के दौरान कार्य विफल हो गया। आपने इसे कैसे हल किया?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपके घटना-प्रबंधन और डीबगिंग दृष्टिकोण का मूल्यांकन कर रहा है।
उदाहरण उत्तर: जब Spark उत्पादन में कार्य विफल हो गया, मैंने निष्पादक लॉग का विश्लेषण किया और Spark समस्या के मूल कारण का पता लगाने के लिए यूजर इंटरफेस का उपयोग किया गया। समस्या अपर्याप्त मेमोरी आवंटन से संबंधित थी, जिसके कारण एक्जीक्यूटर बार-बार विफल हो रहा था। मैंने मेमोरी सेटिंग्स को समायोजित करके और संसाधनों के उपयोग को कम करने के लिए ट्रांसफॉर्मेशन को ऑप्टिमाइज़ करके समस्या का समाधान किया।
9) डेटा प्रोसेसिंग के दौरान आप डेटा की गुणवत्ता कैसे सुनिश्चित करते हैं? Spark?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपकी बारीकियों पर ध्यान देने की क्षमता और डेटा विश्वसनीयता संबंधी प्रक्रियाओं के बारे में जानकारी प्राप्त करना चाहता है।
उदाहरण उत्तर: डेटा की गुणवत्ता सुनिश्चित करने में इनपुट डेटा का सत्यापन, शून्य या दूषित रिकॉर्ड को संभालना और स्कीमा प्रवर्तन लागू करना शामिल है। मैं पाइपलाइन के प्रत्येक चरण में डेटा जांच और लॉगिंग भी लागू करता हूं ताकि विसंगतियों का जल्द पता लगाया जा सके और आगे के विश्लेषण में विश्वास बनाए रखा जा सके।
10) आप इनमें से किसे चुनेंगे? Spark और किसी प्रोजेक्ट के लिए अन्य डेटा प्रोसेसिंग टूल?
उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपके निर्णय लेने की क्षमता और वास्तुशिल्प संबंधी सोच का आकलन कर रहा है।
उदाहरण उत्तर: यह चुनाव डेटा की मात्रा, प्रसंस्करण की जटिलता, विलंबता संबंधी आवश्यकताओं और पारिस्थितिकी तंत्र एकीकरण जैसे कारकों पर निर्भर करता है। Spark यह बड़े पैमाने पर, वितरित प्रोसेसिंग और उन्नत एनालिटिक्स के लिए आदर्श है। सरल या रीयल-टाइम उपयोग के मामलों के लिए, हल्के उपकरण अधिक उपयुक्त हो सकते हैं। मैं निर्णय लेने से पहले हमेशा तकनीकी बाधाओं के साथ-साथ व्यावसायिक आवश्यकताओं का भी मूल्यांकन करता हूँ।
