2012-04-03 15 views
5

पूलिंग के लिए सबसे अच्छा अभ्यास क्या है मैं अपने एचडीएफएस डेटा स्टोर के खिलाफ क्वेरी जैसे एसक्यूएल करने के लिए हाइव जेडीबीसी ड्राइवर का उपयोग कर रहा हूं। मैं कनेक्शन पूलिंग को संभालने के लिए c3p0 का उपयोग करने का प्रयास कर रहा हूं। मुझे यकीन नहीं है कि यह सही दृष्टिकोण है क्योंकि हाइव क्वेरी में काफी समय लग सकता है, जिसका मतलब है कि कनेक्शन को लंबे समय तक पूल में वापस नहीं छोड़ा जा रहा है, मैं अधिकतम संख्या के लिए सही सेटिंग संख्या के बारे में सोचने के लिए संघर्ष कर रहा हूं c3p0 विन्यास में कनेक्शन के साथ-साथ।हाइव जेडीबीसी कनेक्शन

क्या एचआईवी जेडीबीसी कनेक्शन को पूल करने के लिए कोई सर्वोत्तम अभ्यास है? c3p0? DBCP?

लगभग MAX_POOL_SIZE कैसे? क्या यह आरडीबी के लिए सामान्य सेटिंग से बड़ा होना चाहिए?

उत्तर

4

ओह महान, तो आपके द्वारा उल्लेख किए गए धागे में सवाल वास्तव में बहुत पहले मुझसे पूछा गया था :) यह देखना दिलचस्प होगा कि आपके उपयोग के मामले में इसका उपयोग कैसे किया जाए।

लेकिन मुझे आपको बताएं कि जब भी आप पूछताछ के आधार पर हाइवॉप नौकरियां लॉन्च करते हैं। इसलिए, यदि आप कई प्रश्नों को निष्पादित करना चाहते हैं, जो मुझे विश्वास है कि आप यहां क्या करना चाहते हैं, तो आपको नौकरी शेड्यूलर का उपयोग करने की आवश्यकता है जो कई नौकरियों को एक साथ चला सकता है। डिफ़ॉल्ट रूप से हडोप पहले-इन-फर्स्ट-आउट (एफआईएफओ) शेड्यूलर का उपयोग करता है, जो कार्य कतार से नौकरियां खींचता है। तो, फेयर शेड्यूलर या क्षमता शेड्यूलर पर स्विच करना चाहते हैं।

मेले शेयर शेड्यूलर के पीछे मूल विचार नौकरियों को संसाधनों को असाइन करना था, जैसे कि समय के साथ, प्रत्येक नौकरी उपलब्ध संसाधनों का बराबर हिस्सा प्राप्त करती है।

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

+0

जानकारी के लिए धन्यवाद। मैं अभी भी थोड़ा उलझन में हूं, अगर मैं 10 जेडीबीसी कनेक्शन को हाइव में पूल कर रहा हूं, तो क्या इसका मतलब है कि मैंने समानांतर में 10 हाइव नौकरियां खोली हैं? नौकरी पूरी होने के बाद इसका क्या होता है? कि जेडीबीसी कनेक्शन पूल में वापस जारी किया गया है? अगली बार एक नई क्वेरी एक जेडीबीसी कनेक्शन लेगी और एक नया हाइव जॉब होगा? जेडीबीसी कनेक्शन पूलिंग का उपयोग करके मुझे क्या लाभ होता है, केवल जेडीबीसी कनेक्शन का निर्माण/हटाना? – Shengjie

+0

जो मैंने अभी तक समझा है, वह है कि, आप माइस्क्ल के रूप में हाइव द्वारा उपयोग किए गए डीबीएमएस या जो भी डीबीएमएस को मेटास्टोर के रूप में इस्तेमाल करते हैं, लेकिन नीचे की रेखा यह है कि जब आप जटिल प्रश्नों को आग लगते हैं, तो हाइव बदले में मैपरेडस नौकरियां लाएगा हाइव वेयरहाउस का नतीजा, जो आपके मामले में एचडीएफएस में है। –

+0

निरंतर ... पूलिंग का इस्तेमाल मैंने धागे की तरह था। मैंने अपने क्लस्टर की क्षमता के आधार पर एक सर्वर को हाइव करने के लिए 10 धागे कनेक्शन आरक्षित किया है। एक सवाल कहता है, 'कर्मचारी से नाम का चयन करें' एक थ्रेड का उपभोग करेगा। ऐसी एक और सवाल, कहती है, एक और धागा पर कब्जा करो। जब कोई प्रश्न समाप्त होता है, तो मैं थ्रेड के पूल पर वापस उस क्वेरी से जुड़े धागे को वापस (चेकइन) वापस कर दूंगा। –

0

किंडा को this thread में उत्तर मिला। मैं इसे आज़माउंगा और देख सकता हूं कि यह कैसा चल रहा है।

संबंधित मुद्दे