2014-09-26 11 views
6

अरे दोस्तों मैं हाइव जेडीबीसी का उपयोग कर रहा था, लेकिन उसके बाद मुझे पता चला कि हाइव मेटास्टोर जावा एपीआई (here) है जिसके द्वारा आप फिर से हाइव और हेरफेर से जुड़ सकते हैं छत्ता डेटाबेसहाइव जेडीबीसी क्लाइंट और हाइव मेटास्टोर जावा एपीआई

लेकिन मैं सोच रहा था कि वास्तव में क्या इन दो तरीकों के बीच अंतर है

क्षमा करें अगर कुछ भी पूछा स्पष्ट लेकिन किसी भी जानकारी को अत्यधिक सराहना की जाएगी छत्ता में

+0

यहां तक ​​कि मैं अंतर को समझना चाहता हूं। – Bector

उत्तर

6

जहाँ तक मैं समझता हूँ कि वहाँ

  1. छत्ता के छत्ते metastore सर्वर है, जो तब इस तरह के स्कीमा अभिव्यक्ति के लिए mysql के रूप में एक संबंधपरक डाटाबेस के लिए पृष्ठभूमि में जोड़ता है का उपयोग कर कनेक्ट करने के लिए 2 तरीके हैं। यह आम तौर पर पोर्ट 9083 पर चलता है।
  2. छत्ता JDBC सर्वर, HiveServer2 कहा जाता है, जो बंदरगाह 10001 पर चलता है, आम तौर पर ...

अब, छत्ता के पिछले संस्करणों में है, तो स्थिर नहीं है और वास्तव में यह बहु सूत्रण समर्थन है हुआ करता था hiveserver2 भी सीमित था। उस क्षेत्र में शायद चीजें सुधार गई हैं, मैं कल्पना करूंगा।

तो जेडीबीसी एपीआई के लिए - हाँ, यह आपको जेडीबीसी और एसक्यूएल का उपयोग करके संवाद करने देगा।

मेटास्टोर कनेक्टिविटी के लिए, 2 विशेषताएं दिखाई देती हैं। DDL कार्रवाई करने DML

  • -

    1. वास्तव में एसक्यूएल प्रश्नों को चलाने के लिए।

    DDL -

    DDL के लिए, metastore एपीआई काम में आते हैं, org.apache.hadoop.hive.metastore.HiveMetaStoreClient HiveMetaStoreClient वर्ग उस उद्देश्य के लिए उपयोग किया जा सकता

    DML -

    जो मुझे इस संबंध में उपयोगी पाया गया है वह है org.apache.hadoop.hive.ql.Driver https://hive.apache.org/javadocs/r0.13.1/api/ql/org/apache/hadoop/hive/ql/Driver.htmlhive.ql.Driver वर्ग इस श्रेणी में run() नामक एक विधि है जो आपको SQL कथन निष्पादित करने और प्राप्त करने देता है परिणाम वापस उदाहरण के लिए आप निम्नलिखित

    Driver driver = new Driver(hiveConf); 
    HiveMetaStoreClient client = new HiveMetaStoreClient(hiveConf); 
    SessionState.start(new CliSessionState(hiveConf)); 
    driver.run("select * from employee); 
    // DDL example 
    client.dropTable(db, table); 
    
  • +0

    अच्छी व्याख्या – saching

    1

    metastore के रूप में नाम इंगित करता है एक दुकान है हाइव डीबी के मेटाडाटा के लिए। यह स्टोर आमतौर पर एक आरडीबीएमएस है। मेटास्टोर एपीआई मेटाडेटा को टिंकर/ट्विक करने के लिए आरडीबीएमएस के साथ बातचीत करने का समर्थन करता है, न कि वास्तविक हाइव डीबी/डेटा। सामान्य उपयोग के लिए आप इन्हें कभी भी उपयोग नहीं करना चाहते हैं। मुझे लगता है कि ये टूलसेट बनाने पर काम करने वाले लोगों के लिए हैं मेटास्टोर के साथ काम करने के लिए और सामान्य दिन के उपयोग के लिए नहीं।