2013-11-15 9 views
7

समझाया जा सकता है, कृपया HCatalog और HBase के बीच कोरलेशन क्या है?एचबीएएस और एचसीटेल के बीच सहसंबंध क्या है?

मैं इन परिभाषाओं पाया है:

अपाचे HCatalog HCatalog अंतर्निहित फ़ाइल नाम या प्रारूपों का उपयोग किए बिना डेटा संदर्भित करने के लिए एक मेटाडाटा अमूर्त परत है। यह उपयोगकर्ताओं और स्क्रिप्ट को इन्सुलेट करता है कि डेटा कैसे और कहाँ भौतिक रूप से संग्रहीत किया जाता है।

अपाचे एचबीएस एचबीएस (हैडोप डाटाबेस) एक वितरित, कॉलम उन्मुख डेटाबेस है। एचबीएएस अंतर्निहित भंडारण के लिए एचडीएफएस का उपयोग करता है। यह MapReduce और बिंदु क्वेरी (यादृच्छिक पढ़ता है) का उपयोग कर बैच शैली computations दोनों का समर्थन करता है।

वेट हम हाइव में टेबल बनाने का उपयोग करते हैं, यह एचसीटेल में तालिका बनाता है। मुझे यह बिलकुल समझ में नहीं आया। असली डाटाबेस में क्यों नहीं है जो एचबीएस है?

एचसीटेल सभी डेटा स्टोरों के लिए किसी प्रकार का मेटाडेटा भंडार प्रतीत होता है। क्या इसका मतलब यह है कि यह एचबीएएस में डेटाबेस और टेबल के बारे में जानकारी भी रखता है?

मैं स्पष्टीकरण के लिए आभारी होंगे

सादर पावेल

+0

इस उत्तर को जांचें [एचबीएएस और एचकेटेल सहसंबंध के लिए] (https://stackoverflow.com/a/46844329/1592191) – mrsrinivas

उत्तर

8

जब आप टेबल छत्ता में यह HCatalog में यह पंजीकृत करता है बनाएँ। हाइव में एक टेबल एक HBase मेज हो सकता है लेकिन यह भी HDFS फ़ाइलों और निर्देशिकाओं

ऊपर एक अमूर्त हो सकता है

आप क्योंकि मैं सवाल काफी लोकप्रिय है, मैं ध्यान दिया है HCatalog on HortonWorks' site

+0

मुझे नहीं लगता कि आप HBase से पूछने के लिए हाइव का उपयोग कर सकते हैं ... –

+2

फिर आप गलत हैं, चूंकि आप https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration –

+0

देख सकते हैं आप सही हैं। मुझे नहीं पता था। –

0

का एक अच्छा विवरण प्राप्त कर सकते हैं मैंने इसका जवाब देने का फैसला किया क्योंकि मैंने इसे बहुत अच्छी तरह से खराब कर दिया है क्योंकि मैंने इसे से पूछा था, इसलिए, सबसे पहले हैडोप 2.0 एचसीटेल और हाइव को एक उत्पाद के रूप में माना जाता है। हाइव डिफ़ॉल्ट रूप से HCatalog में टेबल बनाता है। इसका मतलब है कि एचसीटेल के लिए प्राकृतिक इंटरफ़ेस हाइव है। तो आप create/alter/drop database से से select, insert into आदि के साथ समाप्त होने वाले सभी SQL-92 DMLs() का उपयोग कर सकते हैं, select, insert into आदि के साथ समाप्त हो रहा है ... केवल अपवाद यह है कि डालने के रूप में केवल डालने के रूप में कार्य करता है ... ठेठ डालने के लिए हम उपयोग करने के लिए:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] 

टेबल्स हो सकता है विभाजन, अनुक्रमित (लेकिन मेरे experioence से यह अच्छी तरह से काम नहीं करता है), लेकिन आप इसे एक संबंधपरक डेटाबेस नहीं है, तो आप विदेशी कुंजी का उपयोग नहीं कर सकते ।

एचबीएस के साथ काफी अलग है। यह नोएसक्यूएल डेटाबेस में से एक है (लेकिन previous post में उत्तर दिया गया है, एचआईवी एसक्यूएल प्रश्नों के लिए एचबीएस इंटरफेस हो सकता है) इसमें कुंजी-> मूल्य संगठित टेबल हैं। चलें (, टेबल में कुछ आदेशों तुलना तालिका बनाने, टेबल में डालने मेज से का चयन करें, ड्रॉप

हाइव:

create table table_name (
    id    int, 
    value1  string, 
    value2    string 
) 
partitioned by (date string) 

LOAD DATA INPATH 'filepath' ] INTO TABLE table_name [PARTITION (partcol1=val1, partcol2=val2 ...)] 

INSERT INTO table_name as select * from othertable 

SELECT * FROM table_name 

DROP TABLE table_name 

HBase:

hbase> create 'test', 'cf' 

hbase> put 'test', 'row1', 'cf:a', 'value1' 

hbase> get 'test', 'row1' 

hbase> disable 'test' 
hbase> drop 'test' 

वाक्य रचना पूरी तरह से है जैसा कि आप देख सकते हैं अलग-अलग। एसक्यूएल उपयोगकर्ताओं के लिए, एचसीटेल के साथ काम करना स्वाभाविक है, जो नोएसक्यूएल डेटाबेस के साथ काम कर रहे हैं, वे एचबीएएस के साथ आराम महसूस करेंगे।

+2

आप स्वयं जवाब भी गलत हैं (जैसा कि मेरी टिप्पणी है) - HCatalog डिफ़ॉल्ट रूप से हाइव द्वारा उपयोग किया जाता है लेकिन वे एक ही उत्पाद नहीं हैं और एचसीटेलिस भी पिग या इंपला जैसे अन्य उत्पादों से उपयोग योग्य हैं। –

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