HBase शेल कमांड उदाहरण सहित
⚡ स्मार्ट सारांश
एचबेस शेल कमांड आपको एक इंटरैक्टिव प्रॉम्प्ट से सीधे टेबल और डेटा को प्रबंधित करने की सुविधा देते हैं, जिन्हें सामान्य कमांड, टेबल प्रबंधन कमांड जैसे क्रिएट और ड्रॉप, डेटा हेरफेर कमांड जैसे पुट और गेट, और क्लस्टर प्रतिकृति कमांड में वर्गीकृत किया गया है।

शेल कमांड का उपयोग करके HBase के साथ कैसे इंटरैक्ट करें और Java API
Hadoop पर HBase की सफल स्थापना के बाद, हमें विभिन्न कमांड चलाने और कई ऑपरेशन करने के लिए एक इंटरैक्टिव शेल मिलता है। इन कमांड का उपयोग करके, हम डेटा टेबल पर कई ऑपरेशन कर सकते हैं, जिससे बेहतर डेटा स्टोरेज क्षमता और क्लाइंट के लिए लचीला इंटरैक्शन सुनिश्चित होता है।
हम HBase के साथ दो तरीकों से इंटरैक्ट कर सकते हैं:
- एचबेस इंटरेक्टिव शेल मोड, और
- यहाँ Java एपीआई।
HBase में, टेबल संचालन, टेबल प्रबंधन और डेटा मॉडलिंग के लिए HBase के साथ इंटरैक्ट करने के लिए इंटरैक्टिव शेल मोड का उपयोग किया जाता है। Java API मॉडल की मदद से, हम HBase में सभी प्रकार के टेबल और डेटा ऑपरेशन कर सकते हैं। हम इन दोनों तरीकों से HBase के साथ इंटरैक्ट कर सकते हैं। दोनों में एकमात्र अंतर यह है कि Java एपीआई का उपयोग करता है Java कोड का उपयोग HBase से कनेक्ट करने के लिए किया जाता है, जबकि शेल मोड HBase से कनेक्ट करने के लिए शेल कमांड का उपयोग करता है।
आगे बढ़ने से पहले HBase का संक्षिप्त परिचय:
- HBase का उपयोग Hadoop एचबेस एक स्टोरेज सिस्टम है जिसका उपयोग बड़ी मात्रा में डेटा को स्टोर करने के लिए किया जाता है। इसमें मास्टर सर्वर और रीजन सर्वर शामिल होते हैं।
- एचबेस में संग्रहित होने वाला डेटा क्षेत्रों के रूप में होगा। इसके अलावा, इन क्षेत्रों को विभाजित करके कई क्षेत्रीय सर्वरों में संग्रहित किया जाएगा।
- ये शेल कमांड प्रोग्रामर को पूर्ण शेल मोड इंटरैक्शन का उपयोग करके टेबल स्कीमा और डेटा संचालन को परिभाषित करने की अनुमति देते हैं।
- हम जिस भी कमांड का उपयोग करेंगे, वह एचबेस डेटा मॉडल में प्रतिबिंबित होगा।
- हम ऑपरेटिंग सिस्टम स्क्रिप्ट इंटरप्रेटर जैसे बैश शेल में एचबेस शेल कमांड का उपयोग करते हैं।
- बैश शेल अधिकांश ब्राउज़रों के लिए डिफ़ॉल्ट कमांड इंटरप्रेटर है। Linux और यूनिक्स ऑपरेटिंग सिस्टम वितरण।
- HBase के उन्नत संस्करण टेबल के लिए JRuby-शैली के ऑब्जेक्ट-ओरिएंटेड संदर्भों के साथ शेल कमांड प्रदान करते हैं।
- टेबल रेफरेंस वेरिएबल्स का उपयोग HBase शेल मोड में डेटा ऑपरेशन करने के लिए किया जा सकता है।
उदाहरण के लिए:
- इस ट्यूटोरियल में, हमने एक टेबल बनाई है जिसमें 'शिक्षा' टेबल का नाम है और यह "गुरु99" कॉलम के नाम से मेल खाती है।
- कुछ कमांड में, "guru99" स्वयं एक टेबल नाम को दर्शाता है।
सामान्य आदेश
HBase में, सामान्य कमांड को निम्नलिखित श्रेणियों में वर्गीकृत किया गया है:
- स्थिति
- संस्करण
- Table_help (स्कैन, ड्रॉप, प्राप्त, डालें, अक्षम करें, आदि)
- मैं कौन हूँ
एचबेस शेल कमांड में प्रवेश करने के लिए, सबसे पहले हमें नीचे दिए गए कोड को निष्पादित करना होगा।
hbase Shell
एचबेस शेल में प्रवेश करने के बाद, हम नीचे दिए गए सभी शेल कमांड्स को निष्पादित कर सकते हैं। इन कमांड्स की सहायता से, हम एचबेस शेल मोड में सभी प्रकार के टेबल ऑपरेशन कर सकते हैं। इंटरैक्टिव शेल प्रॉम्प्ट नीचे दिखाए अनुसार दिखाई देता है:
आइये इन सभी कमांडों और उनके उपयोग को एक-एक करके उदाहरण के साथ देखें।
स्थिति
Syntax:status
यह कमांड सिस्टम की स्थिति के बारे में विस्तृत जानकारी देगा, जैसे कि क्लस्टर में मौजूद सर्वरों की संख्या, सक्रिय सर्वरों की संख्या और औसत लोड मान। आप सिस्टम की स्थिति के बारे में कितनी विस्तृत जानकारी चाहते हैं, इसके आधार पर विशिष्ट पैरामीटर भी सेट कर सकते हैं। पैरामीटर 'summary', 'simple' या 'detailed' हो सकते हैं; डिफ़ॉल्ट पैरामीटर 'summary' है।
नीचे हमने दिखाया है कि आप स्टेटस कमांड में अलग-अलग पैरामीटर कैसे पास कर सकते हैं। नीचे दिए गए स्क्रीनशॉट को देखकर हमें बेहतर समझ आ जाएगी।
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
स्टेटस आउटपुट नीचे दिखाया गया है:
जब हम इस स्टेटस कमांड को चलाते हैं, तो यह सर्वरों की संख्या, निष्क्रिय सर्वरों की संख्या और सर्वर के औसत लोड के बारे में जानकारी देता है। यहां, स्क्रीनशॉट में 1 सक्रिय सर्वर, 1 निष्क्रिय सर्वर और 7.0000 का औसत लोड जैसी जानकारी दिखाई गई है।
संस्करण
Syntax: version
संस्करण का आउटपुट नीचे दिखाया गया है:
- यह कमांड कमांड मोड में वर्तमान में उपयोग किए जा रहे HBase संस्करण को प्रदर्शित करेगा।
- यदि आप वर्जन कमांड चलाते हैं, तो आपको ऊपर दिखाए गए अनुसार आउटपुट मिलेगा।
तालिका सहायता
Syntax:table_help
table_help का आउटपुट नीचे दिखाया गया है:
यह कमांड निम्नलिखित का मार्गदर्शन करती है:
- टेबल-रेफरेंस कमांड क्या होते हैं और उनका उपयोग कैसे किया जाता है।
- यह विभिन्न एचबेस शेल कमांड के उपयोग और उनके सिंटैक्स की जानकारी प्रदान करेगा।
- ऊपर दिए गए स्क्रीनशॉट में, "create" और "get_table" कमांड के सिंटैक्स और उनके उपयोग को दर्शाया गया है। HBase में टेबल बन जाने के बाद, हम इन कमांड्स के माध्यम से टेबल में बदलाव कर सकते हैं।
- यह पुट, गेट और अन्य सभी कमांड संबंधी जानकारी जैसे टेबल मैनिपुलेशन कमांड प्रदान करेगा।
Whoami
Syntax: Whoami
नीचे whoami का आउटपुट दिखाया गया है:
यह कमांड “whoami” HBase क्लस्टर से वर्तमान HBase उपयोगकर्ता की जानकारी प्राप्त करने के लिए उपयोग किया जाता है। यह निम्नलिखित जानकारी प्रदान करेगा:
- HBase में मौजूद समूह।
- उपयोगकर्ता की जानकारी; उदाहरण के लिए, इस मामले में "hduser" उपयोगकर्ता नाम को दर्शाता है जैसा कि स्क्रीनशॉट में दिखाया गया है।
टीटीएल (टाइम टू लिव) – विशेषता
HBase में, TTL का उपयोग करके कॉलम फ़ैमिली को सेकंड में समय मानों पर सेट किया जा सकता है। समय सीमा समाप्त होने पर HBase स्वचालित रूप से पंक्तियों को हटा देगा। यह विशेषता पंक्ति के सभी संस्करणों पर लागू होती है, यहां तक कि वर्तमान संस्करण पर भी।
HBase में पंक्ति के लिए एन्कोड किया गया TTL समय UTC में निर्दिष्ट किया जाता है। इस विशेषता का उपयोग टेबल प्रबंधन कमांड के साथ किया जाता है। TTL हैंडलिंग और कॉलम फ़ैमिली TTL के बीच महत्वपूर्ण अंतर नीचे दिए गए हैं:
- सेल टीटीएल को सेकंड के बजाय मिलीसेकंड की इकाइयों में व्यक्त किया जाता है।
- एक सेल टीटीएल, कॉलम फैमिली स्तर की टीटीएल सेटिंग से परे सेल के प्रभावी जीवनकाल को नहीं बढ़ा सकता है।
टेबल्स प्रबंधन आदेश
इन कमांड्स की मदद से प्रोग्रामर पंक्तियों और स्तंभों के समूह वाली टेबल और टेबल स्कीमा बना सकते हैं। टेबल मैनेजमेंट कमांड्स निम्नलिखित हैं:
- बनाएं
- सूची
- वर्णन करें
- अक्षम
- सबको सक्षम कर दो
- सक्षम
- सभी_सक्षम करें
- बूंद
- ड्रॉप_ऑल
- फ़िल्टर_दिखाएँ
- उम्र
- स्थिति बदलें
आइए एक उदाहरण के साथ HBase में विभिन्न कमांड के उपयोग को देखें।
बनाएं
Syntax: create <tablename>, <columnfamilyname>
उदाहरण:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
क्रिएट कमांड का परिणाम नीचे दिखाया गया है:
ऊपर दिए गए उदाहरण में बताया गया है कि प्रत्येक कॉलम परिवार के लिए दिए गए विनिर्देशों के अनुसार निर्दिष्ट नाम से HBase में एक टेबल कैसे बनाई जाती है। इसके अलावा, हम इसमें कुछ टेबल-स्कोप एट्रिब्यूट भी पास कर सकते हैं। यह जांचने के लिए कि 'शिक्षा' टेबल बनाई गई है या नहीं, हम नीचे दिए गए "list" कमांड का उपयोग करते हैं। आगे देखें एचबेस टेबल बनाना Java और खोल.
सूची
Syntax:list
नीचे सूची का आउटपुट दिखाया गया है:
- “list” कमांड HBase में मौजूद या बनाई गई सभी तालिकाओं को प्रदर्शित करेगा।
- ऊपर दिए गए स्क्रीनशॉट में दिखाया गया आउटपुट वर्तमान में HBase में मौजूद तालिकाओं को प्रदर्शित कर रहा है।
- इस स्क्रीनशॉट में दिखाया गया है कि HBase के अंदर कुल 8 टेबल मौजूद हैं।
- हम वैकल्पिक रेगुलर एक्सप्रेशन पैरामीटर पास करके तालिकाओं से आउटपुट मानों को फ़िल्टर कर सकते हैं।
वर्णन करें
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
डिस्क्राइब आउटपुट नीचे दिखाया गया है:
यह आदेश नामित तालिका का वर्णन करता है।
- इससे उल्लिखित तालिका में मौजूद कॉलम परिवारों के बारे में अधिक जानकारी मिलेगी।
- हमारे मामले में, यह "शिक्षा" नामक तालिका का विवरण देता है।
- यह कॉलम परिवारों, संबंधित फ़िल्टरों, संस्करणों और कुछ अन्य विवरणों के साथ तालिका के नाम के बारे में जानकारी देगा।
अक्षम करें
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
डिसेबल करने पर मिलने वाला आउटपुट नीचे दिखाया गया है:
- यह कमांड नामित टेबल को निष्क्रिय करना शुरू कर देगा।
- यदि किसी टेबल को डिलीट या ड्रॉप करना हो, तो उसे पहले डिसेबल करना होगा।
ऊपर दिए गए स्क्रीनशॉट में, हम 'शिक्षा' नामक तालिका को निष्क्रिय कर रहे हैं।
सबको सक्षम कर दो
Syntax: disable_all<"matching regex"
- यह कमांड दिए गए रेगेक्स से मेल खाने वाली सभी तालिकाओं को अक्षम कर देगा।
- इसका कार्यान्वयन ड्रॉप कमांड के समान ही है (मैचिंग के लिए रेगुलर एक्सप्रेशन जोड़ने के अलावा)।
- टेबल के निष्क्रिय हो जाने के बाद, उपयोगकर्ता HBase से टेबल को हटा सकता है।
- हटाने या ड्रॉप करने से पहलेping टेबल को पहले निष्क्रिय कर देना चाहिए।
सक्षम
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
इनेबल आउटपुट नीचे दिखाया गया है:
- यह कमांड नामित टेबल को सक्रिय करना शुरू कर देगा।
- जो भी टेबल निष्क्रिय हो गई है, उसे उसकी पिछली स्थिति में वापस लाने के लिए हम इस कमांड का उपयोग करते हैं।
- यदि कोई टेबल शुरू में ही डिसेबल कर दी जाती है और उसे डिलीट या ड्रॉप नहीं किया जाता है, और यदि हम डिसेबल टेबल का पुन: उपयोग करना चाहते हैं, तो हमें इस कमांड का उपयोग करके उसे इनेबल करना होगा।
- ऊपर दिए गए स्क्रीनशॉट में, हम "शिक्षा" नामक तालिका को सक्रिय कर रहे हैं।
शो_फ़िल्टर
Syntax: show_filters
show_filters का आउटपुट नीचे दिखाया गया है:
यह कमांड HBase में मौजूद सभी फ़िल्टर प्रदर्शित करता है, जैसे ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, आदि।
बूंद
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
ड्रॉप आउटपुट नीचे दिखाया गया है:
ड्रॉप कमांड के लिए हमें निम्नलिखित बिंदुओं का ध्यान रखना होगा:
- एचबेस में मौजूद टेबल को डिलीट करने के लिए, सबसे पहले हमें उसे डिसेबल करना होगा।
- HBase में मौजूद टेबल को हटाने के लिए, सबसे पहले हमें उसे निष्क्रिय करना होगा।
- इसलिए, किसी टेबल को ड्रॉप या डिलीट करने के लिए, सबसे पहले उस टेबल को डिसेबल कमांड का उपयोग करके डिसेबल किया जाना चाहिए।
- ऊपर दिए गए स्क्रीनशॉट में, हम ड्रॉप कर रहे हैं।ping तालिका “शिक्षा”।
- इस कमांड को निष्पादित करने से पहले, यह आवश्यक है कि आप "शिक्षा" नामक तालिका को निष्क्रिय कर दें।
ड्रॉप_ऑल
Syntax: drop_all<"regex">
- यह कमांड दिए गए रेगुलर एक्सप्रेशन से मेल खाने वाली सभी तालिकाओं को हटा देगा।
- इस कमांड को निष्पादित करने से पहले, disable_all कमांड का उपयोग करके टेबल को पहले निष्क्रिय करना होगा।
- रेगुलर एक्सप्रेशन से मिलान करने वाली तालिकाओं को HBase से हटा दिया जाएगा।
सक्षम है
Syntax: is_enabled 'education'
यह कमांड यह सत्यापित करेगा कि नामित तालिका सक्षम है या नहीं। आमतौर पर, "enable" और "is_enabled" कमांड क्रियाओं के बीच थोड़ा भ्रम होता है, जिसे हम यहां स्पष्ट करते हैं:
- मान लीजिए कि कोई टेबल निष्क्रिय है; उस टेबल का उपयोग करने के लिए, हमें उसे 'enable' कमांड का उपयोग करके निष्क्रिय करना होगा।
- is_enabled कमांड यह जांच करेगा कि टेबल सक्षम है या नहीं।
बदल
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
यह कमांड कॉलम फैमिली स्कीमा को बदल देता है। यह समझने के लिए कि यह वास्तव में क्या करता है, हमने इसे यहाँ एक उदाहरण के साथ समझाया है।
उदाहरण: इन उदाहरणों में, हम तालिकाओं और उनके स्तंभों पर ऑल्टर कमांड ऑपरेशन करेंगे। हम निम्न प्रकार के ऑपरेशन करेंगे:
- एकल और बहु-स्तंभ पारिवारिक नामों में परिवर्तन करना।
- किसी टेबल से कॉलम फैमिली नेम को हटाना।
- टेबल के साथ स्कोप एट्रिब्यूट का उपयोग करने वाले कई अन्य ऑपरेशन।
'शिक्षा' तालिका में 'guru99_1' कॉलम फ़ैमिली को उसके वर्तमान मान से बदलने या जोड़ने के लिए, अधिकतम 5 सेल वर्ज़न्स की अनुमति है। यहाँ, "शिक्षा" उस तालिका का नाम है जिसमें पहले "guru99" कॉलम नाम था। ऑल्टर कमांड की सहायता से, हम कॉलम फ़ैमिली स्कीमा को guru99 से guru99_1 में बदलने का प्रयास कर रहे हैं, जैसा कि नीचे दिखाया गया है:
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
आप ऑल्टर कमांड को कई कॉलम परिवारों पर भी लागू कर सकते हैं। उदाहरण के लिए, हम अपनी मौजूदा "शिक्षा" तालिका के लिए दो नए कॉलम परिभाषित करेंगे, जैसा कि नीचे दिखाया गया है:
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- इस कमांड का उपयोग करके हम एक ही समय में एक से अधिक कॉलम स्कीमा को बदल सकते हैं।
- ऊपर दिए गए स्क्रीनशॉट में दिखाए गए अनुसार, guru99_2 और guru99_3, शिक्षा तालिका के लिए परिभाषित किए गए दो नए कॉलम नाम हैं।
- पिछले स्क्रीनशॉट में हम इस कमांड के इस्तेमाल का तरीका देख सकते हैं।
इस चरण में, हम देखेंगे कि टेबल से कॉलम फ़ैमिली को कैसे डिलीट किया जाता है। 'एजुकेशन' टेबल में 'f1' कॉलम फ़ैमिली को डिलीट करने के लिए, नीचे दिए गए कमांड में से किसी एक का उपयोग करें। इसका परिणाम नीचे दिए गए स्क्रीनशॉट में दिखाया गया है:
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
इस कमांड में, हम गुरु99_1 नामक कॉलम स्पेस को हटाने का प्रयास कर रहे हैं जिसे हमने पहले चरण में बनाया था। नीचे दिए गए स्क्रीनशॉट में दो चरण दिखाए गए हैं: टेबल स्कोप एट्रिब्यूट को कैसे बदलें और टेबल स्कोप एट्रिब्यूट को कैसे हटाएं।
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
चरण 1) आप टेबल-स्कोप एट्रिब्यूट्स जैसे MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH आदि को बदल सकते हैं। इन्हें अंत में रखा जा सकता है; उदाहरण के लिए, किसी क्षेत्र के अधिकतम आकार को 128MB या किसी अन्य मेमोरी मान में बदलने के लिए, हम इस कमांड का उपयोग करते हैं।
उपयोग:
- हम ऊपर बताए अनुसार, टेबल के साथ MAX_FILESIZE को स्कोप एट्रीब्यूट के रूप में उपयोग कर सकते हैं।
- MAX_FILESIZE में दर्शाई गई संख्या मेमोरी की मात्रा (बाइट्स में) को दर्शाती है।
नोट: MAX_FILESIZE टेबल स्कोप का निर्धारण HBase में मौजूद कुछ विशेषताओं द्वारा किया जाएगा। MAX_FILESIZE भी टेबल स्कोप विशेषताओं के अंतर्गत आता है।
चरण 2) आप table_att_unset विधि का उपयोग करके टेबल-स्कोप एट्रिब्यूट को भी हटा सकते हैं। नीचे दिए गए कमांड को देखें:
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- उपरोक्त स्क्रीनशॉट में स्कोप एट्रिब्यूट्स के साथ परिवर्तित टेबल नाम दिखाया गया है।
- table_att_unset विधि का उपयोग तालिका में मौजूद विशेषताओं को हटाने के लिए किया जाता है।
- दूसरे मामले में, हम MAX_FILESIZE एट्रिब्यूट को अनसेट कर रहे हैं।
- कमांड के निष्पादन के बाद, यह "शिक्षा" तालिका से MAX_FILESIZE विशेषता को हटा देगा।
परिवर्तन_स्थिति
Syntax: alter_status 'education'
alter_status का आउटपुट नीचे दिखाया गया है:
- इस कमांड के माध्यम से आप ऑल्टर कमांड की स्थिति प्राप्त कर सकते हैं।
- यह तालिका के उन क्षेत्रों की संख्या को दर्शाता है जिन्हें अद्यतन स्कीमा प्राप्त हुआ है। आपको तालिका का नाम देना होगा।
- ऊपर दिए गए स्क्रीनशॉट में, 1/1 क्षेत्र अपडेट किया गया है। इसका मतलब है कि एक क्षेत्र अपडेट हो गया है। इसके बाद, यदि यह सफल होता है, तो "हो गया" संदेश प्रदर्शित होगा।
डेटा हेरफेर आदेश
ये कमांड डेटा में हेरफेर करने के लिए टेबल पर काम करते हैं, जैसे कि टेबल में डेटा डालना, टेबल से डेटा निकालना और स्कीमा हटाना आदि। इनके अंतर्गत आने वाले कमांड इस प्रकार हैं:
- गिनती
- डाल
- मिटाना
- सभी हटा दो
- काटें
- स्कैन
आइए एक उदाहरण के साथ इन कमांड के उपयोग को समझते हैं। यह भी देखें एचबेस डेटा को पढ़ना और लिखना.
गिनती
Syntax: count <'tablename'>, CACHE =>1000
- यह कमांड किसी टेबल में पंक्तियों की संख्या ज्ञात करेगी। इस कमांड द्वारा लौटाया गया मान पंक्तियों की संख्या है।
- वर्तमान संख्या डिफ़ॉल्ट रूप से प्रत्येक 1000 पंक्तियों के लिए दिखाई जाती है।
- गणना अंतराल को वैकल्पिक रूप से निर्दिष्ट किया जा सकता है।
- डिफ़ॉल्ट कैश का आकार 10 पंक्तियाँ है।
- सही कैश के साथ कॉन्फ़िगर किए जाने पर काउंट कमांड तेजी से काम करेगा।
उदाहरण:
hbase> count 'guru99', CACHE=>1000
नीचे गणना का परिणाम दिखाया गया है:
यह उदाहरण "guru99" टेबल से एक बार में 1000 पंक्तियाँ प्राप्त करता है। यदि टेबल में अधिक पंक्तियाँ हों तो हम कैश का मान कम कर सकते हैं। लेकिन डिफ़ॉल्ट रूप से, यह एक बार में एक पंक्ति प्राप्त करेगा।
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
मान लीजिए कि "guru99" नामक तालिका में कोई तालिका संदर्भ है, जैसे कि g। हम इस तालिका संदर्भ पर भी गणना कमांड चला सकते हैं, जैसा कि नीचे दिखाया गया है:
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
डाल
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
इस कमांड का उपयोग निम्नलिखित कार्यों के लिए किया जाता है:
- यह एक सेल 'मान' को एक परिभाषित या निर्दिष्ट तालिका या पंक्ति या स्तंभ पर रखेगा।
- यह वैकल्पिक रूप से एक टाइम स्टैम्प को समन्वित करेगा।
उदाहरण: यहां, हम "guru99" तालिका में पंक्ति r1 और स्तंभ c1 के अंतर्गत मान रख रहे हैं।
hbase> put 'guru99', 'r1', 'c1', 'value', 10
हमने तालिका "guru99" में तीन मान, 10, 15 और 30 रखे हैं, जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है।
मान लीजिए कि "guru99" नामक तालिका में कोई तालिका संदर्भ है, जैसे कि g। हम इस तालिका संदर्भ पर भी कमांड चला सकते हैं, जैसे:
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
“guru99” में मान डालने के बाद आउटपुट ऊपर दिए गए स्क्रीनशॉट में दिखाए अनुसार होगा। यह जांचने के लिए कि इनपुट मान तालिका में सही ढंग से डाला गया है या नहीं, हम “scan” कमांड का उपयोग करते हैं। नीचे दिए गए स्क्रीनशॉट में, हम देख सकते हैं कि मान सही ढंग से डाले गए हैं।
Code संक्षिप्त अंश: अभ्यास के लिए
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443} put 'guru99', 'r1', 'Edu:c1', 'value', 10 put 'guru99', 'r1', 'Edu:c1', 'value', 15 put 'guru99', 'r1', 'Edu:c1', 'value', 30
कोड स्निपेट से, हम ये चीजें कर रहे हैं:
- यहां हम 'guru99' नाम की एक टेबल बना रहे हैं जिसमें कॉलम का नाम "Edu" होगा।
- “put” कमांड का उपयोग करके, हम “guru99” टेबल में “Edu” कॉलम में r1 नाम की पंक्ति में मान डाल रहे हैं।
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
यहाँ, इसमें टाइमरेंज, टाइमस्टैम्प, वर्ज़न्स और फ़िल्टर शामिल हैं। इस कमांड का उपयोग करके, आप टेबल में मौजूद किसी पंक्ति या सेल की सामग्री प्राप्त कर सकते हैं। इसके अलावा, आप इसमें टाइमस्टैम्प, टाइमरेंज, वर्ज़न्स, फ़िल्टर आदि जैसे अतिरिक्त पैरामीटर भी जोड़ सकते हैं, ताकि किसी विशेष पंक्ति या सेल की सामग्री प्राप्त की जा सके।
नीचे दिया गया आउटपुट पंक्ति r1 और स्तंभ c1 के मान लौटाता है:
उदाहरण:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
तालिका "guru99" के लिए, पंक्ति r1 और स्तंभ c1 के मान इस कमांड का उपयोग करके प्रदर्शित किए जाएंगे, जैसा कि ऊपर दिए गए स्क्रीनशॉट में दिखाया गया है।
hbase> get 'guru99', 'r1'
“guru99” तालिका के लिए, पंक्ति r1 के मान इस कमांड का उपयोग करके प्रदर्शित किए जाएंगे।
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
इस कमांड का उपयोग करके "guru99" तालिका के लिए, पंक्ति r1 के मान ts1 से ts2 समय सीमा में प्रदर्शित किए जाएंगे।
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
इस कमांड का उपयोग करके "guru99" तालिका के लिए पंक्ति r1 और स्तंभ परिवार c1, c2 और c3 के मान प्रदर्शित किए जाएंगे।
मिटाना
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- यह कमांड किसी परिभाषित पंक्ति या स्तंभ में स्थित सेल के मान को हटा देगा।
- डिलीट किए गए सेल के निर्देशांक बिल्कुल मेल खाने चाहिए।
- स्कैनिंग के दौरान, डिलीट सेल पुराने मानों को दबा देता है।
उदाहरण: नीचे दिया गया डिलीट कमांड गुरु99 टेबल से सेल r1 और c1 को हटा देता है:
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- उपरोक्त निष्पादन तालिका “guru99” में कॉलम परिवार c1 से पंक्ति r1 को हटा देगा।
- मान लीजिए कि "guru99" नामक तालिका में कोई तालिका संदर्भ है, जैसे कि g।
- हम इस कमांड को टेबल रेफरेंस पर भी चला सकते हैं, जैसे hbase> g.delete 'guru99', 'r1', 'c1'”।
सभी हटा दो
Syntax: deleteall <'tablename'>, <'rowname'>
- यह कमांड दी गई पंक्ति में मौजूद सभी सेल को डिलीट कर देगा।
- हम चाहें तो सिंटेक्स में कॉलम के नाम और टाइम स्टैम्प भी परिभाषित कर सकते हैं।
उदाहरण:- नीचे दिया गया deleteall कमांड पंक्ति r1 के सभी सेल को हटा देता है:
hbase>deleteall 'guru99', 'r1', 'c1'
इससे टेबल में मौजूद सभी पंक्तियाँ और स्तंभ हट जाएँगे। चाहें तो इसमें स्तंभों के नाम भी लिख सकते हैं।
काटें
Syntax: truncate <tablename>
नीचे दिया गया ट्रंकेट कमांड टेबल को खाली कर देता है जबकि कीping इसका आरेख:
एचबेस टेबल को ट्रंकेट करने के बाद, स्कीमा तो मौजूद रहेगी लेकिन रिकॉर्ड नहीं। यह कमांड 3 कार्य करता है; वे नीचे सूचीबद्ध हैं:
- यदि टेबल पहले से मौजूद है तो उसे निष्क्रिय कर देता है।
- यदि टेबल पहले से मौजूद है तो उसे हटा देता है।
- उल्लिखित तालिका को पुनः निर्मित करता है।
स्कैन
Syntax: scan <'tablename'>, {Optional parameters}
यह कमांड पूरी टेबल को स्कैन करता है और टेबल की सामग्री को प्रदर्शित करता है।
- सिस्टम में मौजूद तालिकाओं के बारे में अधिक जानकारी प्राप्त करने के लिए हम इस स्कैन कमांड में कई वैकल्पिक विनिर्देश पारित कर सकते हैं।
- स्कैनर विनिर्देशों में निम्नलिखित में से एक या अधिक विशेषताएं शामिल हो सकती हैं।
- ये हैं TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW और STOPROW।
scan 'guru99'
स्कैन का परिणाम नीचे दिखाया गया है:
उपरोक्त स्क्रीनशॉट में:
- इसमें "guru99" टेबल को कॉलम के नाम और मानों के साथ दिखाया गया है।
- इसमें एकल स्तंभ मान c1 के लिए तीन पंक्ति मान r1, r2 और r3 शामिल हैं।
- यह पंक्तियों से जुड़े मानों को प्रदर्शित करता है।
उदाहरण:- स्कैन कमांड के विभिन्न उपयोग:
| आदेश | प्रयोग |
|---|---|
| स्कैन '.META.', {COLUMNS => 'info:regioninfo'} | यह HBase में मौजूद तालिकाओं में कॉलम से संबंधित सभी मेटाडेटा जानकारी प्रदर्शित करता है। |
| स्कैन 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | यह गुरु99 तालिका की सामग्री को उनके कॉलम परिवार c1 और c2 के साथ प्रदर्शित करता है, जिसमें मान 10 तक सीमित होते हैं। |
| स्कैन 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} | यह गुरु99 की सामग्री को उसके कॉलम नाम c1 के साथ प्रदर्शित करता है, जिसमें उल्लिखित समय सीमा विशेषता मान के बीच मौजूद मान शामिल हैं। |
| स्कैन 'guru99', {RAW => true, VERSIONS =>10} | इस कमांड में, RAW=> true एक उन्नत सुविधा प्रदान करता है, जैसे कि गुरु99 टेबल में मौजूद सभी सेल मानों को प्रदर्शित करना। |
Code उदाहरण: सबसे पहले, एक टेबल बनाएं और उसमें मान डालें। इनपुट नीचे दिए गए स्क्रीनशॉट में दिखाया गया है:
create 'guru99', {NAME=>'e', VERSIONS=>2147483647} put 'guru99', 'r1', 'e:c1', 'value', 10 put 'guru99', 'r1', 'e:c1', 'value', 12 put 'guru99', 'r1', 'e:c1', 'value', 14 delete 'guru99', 'r1', 'e:c1', 11
यदि हम स्कैन कमांड चलाते हैं:
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
यह नीचे दिखाए गए आउटपुट को प्रदर्शित करेगा:
ऊपर दिए गए स्क्रीनशॉट में दिखाया गया आउटपुट निम्नलिखित जानकारी देता है:
- RAW=>true, VERSIONS=>1000 विशेषताओं के साथ गुरु99 तालिका को स्कैन करना।
- कॉलम परिवारों और मानों के साथ पंक्तियों को प्रदर्शित करना।
- तीसरी पंक्ति में प्रदर्शित मान कॉलम में मौजूद हटाए गए मान को दर्शाते हैं।
- इसके द्वारा प्रदर्शित आउटपुट यादृच्छिक होता है; यह उन मानों के समान क्रम में नहीं हो सकता जिन्हें हमने तालिका में दर्ज किया है।
Cluster प्रतिकृति आदेश
- ये कमांड HBase के क्लस्टर सेटअप मोड पर काम करते हैं।
- क्लस्टर में पीयर्स को जोड़ने और हटाने के लिए, और प्रतिकृति को शुरू और बंद करने के लिए, आमतौर पर इन कमांड का उपयोग किया जाता है।
| आदेश | कार्यशीलता |
|---|---|
| add_सहकर्मी | प्रतिकृति बनाने के लिए क्लस्टर में पीयर जोड़ता है। hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
| सहकर्मी_को_हटाएं | यह परिभाषित प्रतिकृति स्ट्रीम को रोकता है और पीयर के बारे में सभी मेटाडेटा जानकारी को हटा देता है। hbase> remove_peer '1' |
| प्रतिकृति प्रारंभ करें | सभी प्रतिकृति सुविधाओं को पुनः आरंभ करता है। hbase> प्रारंभ_प्रतिकृति |
| प्रतिकृति रोकें | सभी प्रतिकृति सुविधाओं को रोक देता है। hbase>stop_replication |























