मुझे लगता है कि इस सवाल को बहुत समय पहले पूछा गया है, मैं इसका जवाब देने की कोशिश करूंगा, भले ही यहां दिए गए कुछ सुझाव उपलब्ध नहीं होंगे जब प्रश्न पूछा गया था।
हाइव के प्रदर्शन का अनुकूलन करने के लिए:
- ट्यूनिंग मानचित्रकारों और reducers अपने हाइव अनुरोध द्वारा इस्तेमाल किया की संख्या; यह प्रत्येक नक्शाकार
mapreduce.input.fileinputformat.split.maxsize
के लिए इनपुट आकार ट्यूनिंग द्वारा किया जा सकता है, और प्रत्येक कम करने के लिए इनपुट का आकार:
मन में नंगे कि "अधिक बेहतर" नहीं हमेशा सच है। इसलिए आपको उन नंबरों को अपनी आवश्यकताओं के अनुरूप ट्यून करने की आवश्यकता है।
अनुकूलन मिलती है, परिवर्तित कॉलम है कि अक्सर हैं पर नक्शा-मिलती है, यदि तालिका में से एक छोटी सी मेज (यदि संभव हो) है ... अपनी मेज (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+JoinOptimization)
विभाजन में शामिल परिस्थितियों में उपयोग किया जाता है (कहां)।
उदाहरण के लिए अनुरोध कर रहे हैं, तो अक्सर
SELECT * from myTable WHERE someColumn = 'someValue'
यह स्तंभ 'someColumn'
इस पर अपनी मेज विभाजन के बजाय पूरे तालिका फ़ाइलों की खोज का दूँगी आपकी क्वेरी खोज सिर्फ विभाजन फ़ाइलों someColumn = SomePartition सिफारिश की है।
मध्यवर्ती परिणामों को संपीड़ित करने से कुछ मामलों में प्रदर्शन बढ़ सकता है (आपके हार्डवेयर कॉन्फ़िगरेशन, नेटवर्क और सीपीयू/मेमोरी के आधार पर)।तेज़ (as in here) का उपयोग कर उदाहरण के लिए, hive.intermediate.compression.codec
का चयन सही संपीड़न कोडेक:
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;
नहीं प्रश्न के समय में उपलब्ध किया गया: यह संपत्ति की स्थापना द्वारा किया जा सकता है
टेक्स्ट फ़ाइल का उपयोग करने के बजाय अपनी तालिका को स्टोर करने के लिए अनुकूलित फ़ाइल स्वरूप का उपयोग करना ई, या अनुक्रम फ़ाइल, आप ओआरसी इस्तेमाल कर सकते हैं (छत्ता 0.11 +) उदाहरण के लिए (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC)
पर आपके प्रश्नों पर अमल के लिए एक और इंजन का उपयोग करना, बजाय MapReduce की है, तो आप तेज़ इस्तेमाल कर सकते हैं या यहां तक कि tez for example का उपयोग Spark.To:
<property>
<name>hive.execution.engine</name>
<value>tez</value>
</property>
आगे अनुकूलन के लिए आप उल्लेख कर सकते here
कैसे अपने इनपुट डेटा आयोजित किया जाता है? ऐसी कुछ स्थितियां हैं जहां हाइव इनपुट को मुक्त रूप से (एन आदर्शीकृत) मैपर्स में विभाजित नहीं कर सकता है। उदाहरण के लिए यदि आप .gz फ़ाइलों को लोड कर रहे हैं, तो मेरा मानना है कि मानक व्यवहार 1 .gz फ़ाइल -> 1 मानचित्र है, भले ही नोड्स की संख्या उपलब्ध हो। –
मैं एक हाइव टेबल के खिलाफ पूछताछ कर रहा हूं। लेकिन तालिका लगभग 10 टीबी आकार बहुत बड़ी है .. – kabalas
तालिका का आकार कोई फर्क नहीं पड़ता, @MikeRepass का संदर्भ डेटा फ़ाइलों का लेआउट क्या है। क्या आपकी तालिका एक संकुचित फाइल है या यह कई फाइलों से बना है। कुछ संपीड़न और फ़ाइल प्रारूप संपीड़न का समर्थन करते हैं। –