hadoop - गैर विभाजन तालिका से डेटा लोड करने के प्रदर्शन को HIVE में ORC विभाजन तालिका में कैसे सुधारें




yarn hdinsight (2)

मैं हाइव क्वेरीिंग के लिए नया हूँ, मैं हाइव टेबल से डेटा को पुनर्प्राप्त करने के लिए सर्वोत्तम अभ्यासों की तलाश कर रहा हूं। हमने टेज़ को निष्पादन इंजन सक्षम किया है और वेक्टरिंग सक्षम किया है।

हम हाइव तालिका से रिपोर्ट करना चाहते हैं, मैं TEZ दस्तावेज़ से पढ़ता हूं कि इसे वास्तविक समय रिपोर्टिंग के लिए उपयोग किया जा सकता है परिदृश्य मेरे वेब अनुप्रयोग से है, मैं हाइव क्वॉरी चुनने से * UI पर हाइव टेबल से * चयन करना चाहता हूं, लेकिन किसी भी प्रश्न के लिए, हाइव कमांड प्रॉम्प्ट में अधिकतम 20 से 60 सेकेंड का समय लगता है, हालांकि हाइव टेबल में 60 जीबी डेटा है।

1) क्या कोई मुझे बता सकता है कि हाइव टेबल की जांच करके वास्तविक समय रिपोर्ट कैसे दिखाए और 10 से 30 सेकेंड के भीतर यूआई पर तुरंत परिणाम दिखाएं

2) हमने एक और समस्या की पहचान की है, प्रारंभ में हमारे पास एक अन्तर्निर्मित मेज है जो एचडीएफएस में ब्लॉब / फाइल की ओर इशारा करता है, यह 60 कॉलम के साथ 200 जीबी के आकार का है, जब हम बिना विभाजन मेज से ORC तालिका (ORC) को डेटा डंप करते हैं टेबल विभाजित किया गया है), इसमें 3 + घंटे लगते हैं, क्या डंपिंग डेटा में प्रदर्शन को सुधारने का एक तरीका है ORC तालिका में?

3) जब हम गैर विभाजन तालिका पर बाल्टी से पूछताछ करते हैं, हाइव टेबल में डालें और ORC तालिका पर चुनिंदा क्वेरी से कम समय लेने के लिए क्वेरी करें, लेकिन इसमें हाइव तालिका में रिकॉर्ड की संख्या है, ORC तालिका का SELECT क्वेरी बाल्टी के साथ तालिका से बेहतर है। क्या छोटे डेटा सेट के प्रदर्शन में सुधार करने का कोई तरीका भी है? चूंकि यह प्रारंभिक चरण है, इसलिए हर महीने हम हाइव तालिका में 50 जीबी डेटा लोड करते हैं। लेकिन यह बढ़ सकता है, हम ओआरसी विभाजन तालिका में डेटा को लोड करने के प्रदर्शन को बेहतर बनाने के लिए देख रहे हैं।

4) टीईज इंटरैक्टिव, कम विलंबता का समर्थन करता है और रिपोर्टों के लिए समर्थन को ड्रिल करता है। मानव प्रतिक्रिया समय यानी 5-40 सेकंड के भीतर, हाइव से डेटा प्राप्त करने के लिए रिपोर्टों के नीचे मेरे ड्रिल को कैसे सक्षम करें (जो इंटरैक्टिव होना चाहिए)

हम 4 नोड्स के साथ परीक्षण कर रहे हैं प्रत्येक नोड में 4 सीपीयू कोर और 7 जीबी रैम और 3 डिस्क प्रत्येक वीएम से संलग्न हैं।

धन्यवाद, महेंद्र


ORC तालिका में डेटा डालने की गति को सुधारने के लिए, आप निम्नलिखित पैरामीटर के साथ खेलने की कोशिश कर सकते हैं:

hive.exec.orc.memory.pool 
hive.exec.orc.default.stripe.size
hive.exec.orc.default.block.size 
hive.exec.orc.default.buffer.size
dfs.blocksize

इसके अलावा, आप देख सकते हैं, क्या संपीड़न भी आपकी मदद कर सकता है उदाहरण के लिए:

SET mapreduce.output.fileoutputformat.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;
SET hive.exec.compress.intermediate = true;

आशा करता हूँ की ये काम करेगा!


सबसे पहले। HIVE वास्तविक समय डेटा प्रोसेसिंग के लिए नहीं है डेटा कितना छोटा हो सकता है, क्वेरी डेटा वापस करने में कुछ समय लगेगा।

हाइव की वास्तविक शक्ति बैच प्रसंस्करण के विशाल मात्रा में डेटा में निहित है।