HBase शेल कमांड उदाहरण सहित

⚡ स्मार्ट सारांश

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

  • सामान्य आदेश: स्टेटस, वर्जन, टेबल_हेल्प और हूएमआई रिपोर्ट क्लस्टर की स्थिति और उपयोगकर्ता की जानकारी प्रदान करती हैं।
  • टेबल प्रबंधन: टेबल बनाने, सूचीबद्ध करने, वर्णन करने, अक्षम करने, सक्षम करने, हटाने और बदलने के लिए उपयोग किए जाने वाले शब्द और टेबल का निर्माण और आकार बदलने के लिए उपयोग किए जाने वाले शब्द।
  • डेटा हेरफेर: put, get, delete, deleteall, truncate, count और scan कमांड सेल के मानों को पढ़ने और लिखने का काम करते हैं।
  • 🔁 Cluster प्रतिकृति: add_peer, remove_peer, start_replication और stop_replication डेटा प्रतिकृति को प्रबंधित करते हैं।
  • टीटीएल विशेषता: टाइम टू लिव निर्धारित सेकंडों की संख्या के बाद कॉलम-फैमिली पंक्तियों को स्वचालित रूप से समाप्त कर देता है।
  • 🤖 एआई सहायता: एआई सहायक सरल भाषा में दिए गए निर्देशों से एचबेस शेल कमांड उत्पन्न करते हैं और उनकी व्याख्या करते हैं।

टेबल, डेटा और क्लस्टर प्रतिकृति के लिए उदाहरणों सहित 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

एचबेस शेल में प्रवेश करने के बाद, हम नीचे दिए गए सभी शेल कमांड्स को निष्पादित कर सकते हैं। इन कमांड्स की सहायता से, हम एचबेस शेल मोड में सभी प्रकार के टेबल ऑपरेशन कर सकते हैं। इंटरैक्टिव शेल प्रॉम्प्ट नीचे दिखाए अनुसार दिखाई देता है:

hbase शेल कमांड के साथ HBase इंटरेक्टिव शेल प्रॉम्प्ट खोला गया।

आइये इन सभी कमांडों और उनके उपयोग को एक-एक करके उदाहरण के साथ देखें।

स्थिति

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'

स्टेटस आउटपुट नीचे दिखाया गया है:

HBase शेल स्टेटस कमांड का आउटपुट सक्रिय सर्वर, निष्क्रिय सर्वर और औसत लोड दर्शाता है।

जब हम इस स्टेटस कमांड को चलाते हैं, तो यह सर्वरों की संख्या, निष्क्रिय सर्वरों की संख्या और सर्वर के औसत लोड के बारे में जानकारी देता है। यहां, स्क्रीनशॉट में 1 सक्रिय सर्वर, 1 निष्क्रिय सर्वर और 7.0000 का औसत लोड जैसी जानकारी दिखाई गई है।

संस्करण

Syntax: version

संस्करण का आउटपुट नीचे दिखाया गया है:

HBase शेल संस्करण कमांड स्थापित HBase संस्करण को दर्शाता है

  • यह कमांड कमांड मोड में वर्तमान में उपयोग किए जा रहे HBase संस्करण को प्रदर्शित करेगा।
  • यदि आप वर्जन कमांड चलाते हैं, तो आपको ऊपर दिखाए गए अनुसार आउटपुट मिलेगा।

तालिका सहायता

Syntax:table_help

table_help का आउटपुट नीचे दिखाया गया है:

HBase शेल table_help आउटपुट में create और get_table कमांड के उपयोग की सूची दी गई है।

यह कमांड निम्नलिखित का मार्गदर्शन करती है:

  • टेबल-रेफरेंस कमांड क्या होते हैं और उनका उपयोग कैसे किया जाता है।
  • यह विभिन्न एचबेस शेल कमांड के उपयोग और उनके सिंटैक्स की जानकारी प्रदान करेगा।
  • ऊपर दिए गए स्क्रीनशॉट में, "create" और "get_table" कमांड के सिंटैक्स और उनके उपयोग को दर्शाया गया है। HBase में टेबल बन जाने के बाद, हम इन कमांड्स के माध्यम से टेबल में बदलाव कर सकते हैं।
  • यह पुट, गेट और अन्य सभी कमांड संबंधी जानकारी जैसे टेबल मैनिपुलेशन कमांड प्रदान करेगा।

Whoami

Syntax: Whoami

नीचे whoami का आउटपुट दिखाया गया है:

HBase शेल whoami कमांड वर्तमान hduser और समूह लौटाता है

यह कमांड “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 शेल क्रिएट कमांड का उपयोग करके गुरु99 कॉलम परिवार के साथ एजुकेशन टेबल का निर्माण करना।

ऊपर दिए गए उदाहरण में बताया गया है कि प्रत्येक कॉलम परिवार के लिए दिए गए विनिर्देशों के अनुसार निर्दिष्ट नाम से HBase में एक टेबल कैसे बनाई जाती है। इसके अलावा, हम इसमें कुछ टेबल-स्कोप एट्रिब्यूट भी पास कर सकते हैं। यह जांचने के लिए कि 'शिक्षा' टेबल बनाई गई है या नहीं, हम नीचे दिए गए "list" कमांड का उपयोग करते हैं। आगे देखें एचबेस टेबल बनाना Java और खोल.

सूची

Syntax:list

नीचे सूची का आउटपुट दिखाया गया है:

HBase शेल लिस्ट कमांड HBase में मौजूद आठ तालिकाओं को दिखा रहा है।

  • “list” कमांड HBase में मौजूद या बनाई गई सभी तालिकाओं को प्रदर्शित करेगा।
  • ऊपर दिए गए स्क्रीनशॉट में दिखाया गया आउटपुट वर्तमान में HBase में मौजूद तालिकाओं को प्रदर्शित कर रहा है।
  • इस स्क्रीनशॉट में दिखाया गया है कि HBase के अंदर कुल 8 टेबल मौजूद हैं।
  • हम वैकल्पिक रेगुलर एक्सप्रेशन पैरामीटर पास करके तालिकाओं से आउटपुट मानों को फ़िल्टर कर सकते हैं।

वर्णन करें

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

डिस्क्राइब आउटपुट नीचे दिखाया गया है:

HBase शेल डिस्क्राइब कमांड आउटपुट शिक्षा तालिका के कॉलम परिवारों का विवरण देता है

यह आदेश नामित तालिका का वर्णन करता है।

  • इससे उल्लिखित तालिका में मौजूद कॉलम परिवारों के बारे में अधिक जानकारी मिलेगी।
  • हमारे मामले में, यह "शिक्षा" नामक तालिका का विवरण देता है।
  • यह कॉलम परिवारों, संबंधित फ़िल्टरों, संस्करणों और कुछ अन्य विवरणों के साथ तालिका के नाम के बारे में जानकारी देगा।

अक्षम करें

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

डिसेबल करने पर मिलने वाला आउटपुट नीचे दिखाया गया है:

HBase शेल डिसेबल कमांड एजुकेशन टेबल को ऑफलाइन कर देता है

  • यह कमांड नामित टेबल को निष्क्रिय करना शुरू कर देगा।
  • यदि किसी टेबल को डिलीट या ड्रॉप करना हो, तो उसे पहले डिसेबल करना होगा।

ऊपर दिए गए स्क्रीनशॉट में, हम 'शिक्षा' नामक तालिका को निष्क्रिय कर रहे हैं।

सबको सक्षम कर दो

 Syntax: disable_all<"matching regex"
  • यह कमांड दिए गए रेगेक्स से मेल खाने वाली सभी तालिकाओं को अक्षम कर देगा।
  • इसका कार्यान्वयन ड्रॉप कमांड के समान ही है (मैचिंग के लिए रेगुलर एक्सप्रेशन जोड़ने के अलावा)।
  • टेबल के निष्क्रिय हो जाने के बाद, उपयोगकर्ता HBase से टेबल को हटा सकता है।
  • हटाने या ड्रॉप करने से पहलेping टेबल को पहले निष्क्रिय कर देना चाहिए।

सक्षम

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

इनेबल आउटपुट नीचे दिखाया गया है:

HBase शेल इनेबल कमांड निष्क्रिय शिक्षा तालिका को पुनः सक्रिय करता है

  • यह कमांड नामित टेबल को सक्रिय करना शुरू कर देगा।
  • जो भी टेबल निष्क्रिय हो गई है, उसे उसकी पिछली स्थिति में वापस लाने के लिए हम इस कमांड का उपयोग करते हैं।
  • यदि कोई टेबल शुरू में ही डिसेबल कर दी जाती है और उसे डिलीट या ड्रॉप नहीं किया जाता है, और यदि हम डिसेबल टेबल का पुन: उपयोग करना चाहते हैं, तो हमें इस कमांड का उपयोग करके उसे इनेबल करना होगा।
  • ऊपर दिए गए स्क्रीनशॉट में, हम "शिक्षा" नामक तालिका को सक्रिय कर रहे हैं।

शो_फ़िल्टर

Syntax: show_filters

show_filters का आउटपुट नीचे दिखाया गया है:

HBase शेल show_filters आउटपुट में उपलब्ध HBase फ़िल्टरों की सूची दिखाई देती है।

यह कमांड HBase में मौजूद सभी फ़िल्टर प्रदर्शित करता है, जैसे ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, आदि।

बूंद

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

ड्रॉप आउटपुट नीचे दिखाया गया है:

HBase शेल ड्रॉप कमांड द्वारा निष्क्रिय शिक्षा तालिका को हटाना

ड्रॉप कमांड के लिए हमें निम्नलिखित बिंदुओं का ध्यान रखना होगा:

  • एचबेस में मौजूद टेबल को डिलीट करने के लिए, सबसे पहले हमें उसे डिसेबल करना होगा।
  • 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 शेल ऑल्टर कमांड का उपयोग करके एजुकेशन टेबल के कॉलम फैमिली को guru99_1 में बदलना

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

आप ऑल्टर कमांड को कई कॉलम परिवारों पर भी लागू कर सकते हैं। उदाहरण के लिए, हम अपनी मौजूदा "शिक्षा" तालिका के लिए दो नए कॉलम परिभाषित करेंगे, जैसा कि नीचे दिखाया गया है:

HBase शेल ऑल्टर कमांड का उपयोग करके गुरु99_2 और गुरु99_3 नामक दो नए कॉलम परिवार जोड़े गए।

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • इस कमांड का उपयोग करके हम एक ही समय में एक से अधिक कॉलम स्कीमा को बदल सकते हैं।
  • ऊपर दिए गए स्क्रीनशॉट में दिखाए गए अनुसार, guru99_2 और guru99_3, शिक्षा तालिका के लिए परिभाषित किए गए दो नए कॉलम नाम हैं।
  • पिछले स्क्रीनशॉट में हम इस कमांड के इस्तेमाल का तरीका देख सकते हैं।

इस चरण में, हम देखेंगे कि टेबल से कॉलम फ़ैमिली को कैसे डिलीट किया जाता है। 'एजुकेशन' टेबल में 'f1' कॉलम फ़ैमिली को डिलीट करने के लिए, नीचे दिए गए कमांड में से किसी एक का उपयोग करें। इसका परिणाम नीचे दिए गए स्क्रीनशॉट में दिखाया गया है:

HBase शेल ऑल्टर कमांड का उपयोग करके एजुकेशन टेबल से एक कॉलम फैमिली को डिलीट करना

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

इस कमांड में, हम गुरु99_1 नामक कॉलम स्पेस को हटाने का प्रयास कर रहे हैं जिसे हमने पहले चरण में बनाया था। नीचे दिए गए स्क्रीनशॉट में दो चरण दिखाए गए हैं: टेबल स्कोप एट्रिब्यूट को कैसे बदलें और टेबल स्कोप एट्रिब्यूट को कैसे हटाएं।

HBase शेल ऑल्टर कमांड का उपयोग करके MAX_FILESIZE टेबल-स्कोप विशेषता को सेट करना

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 का आउटपुट नीचे दिखाया गया है:

HBase शेल alter_status कमांड से पता चलता है कि एक क्षेत्र अपडेट हो गया है।

  • इस कमांड के माध्यम से आप ऑल्टर कमांड की स्थिति प्राप्त कर सकते हैं।
  • यह तालिका के उन क्षेत्रों की संख्या को दर्शाता है जिन्हें अद्यतन स्कीमा प्राप्त हुआ है। आपको तालिका का नाम देना होगा।
  • ऊपर दिए गए स्क्रीनशॉट में, 1/1 क्षेत्र अपडेट किया गया है। इसका मतलब है कि एक क्षेत्र अपडेट हो गया है। इसके बाद, यदि यह सफल होता है, तो "हो गया" संदेश प्रदर्शित होगा।

डेटा हेरफेर आदेश

ये कमांड डेटा में हेरफेर करने के लिए टेबल पर काम करते हैं, जैसे कि टेबल में डेटा डालना, टेबल से डेटा निकालना और स्कीमा हटाना आदि। इनके अंतर्गत आने वाले कमांड इस प्रकार हैं:

  • गिनती
  • डाल
  • मिटाना
  • सभी हटा दो
  • काटें
  • स्कैन

आइए एक उदाहरण के साथ इन कमांड के उपयोग को समझते हैं। यह भी देखें एचबेस डेटा को पढ़ना और लिखना.

गिनती

Syntax: count <'tablename'>, CACHE =>1000
  • यह कमांड किसी टेबल में पंक्तियों की संख्या ज्ञात करेगी। इस कमांड द्वारा लौटाया गया मान पंक्तियों की संख्या है।
  • वर्तमान संख्या डिफ़ॉल्ट रूप से प्रत्येक 1000 पंक्तियों के लिए दिखाई जाती है।
  • गणना अंतराल को वैकल्पिक रूप से निर्दिष्ट किया जा सकता है।
  • डिफ़ॉल्ट कैश का आकार 10 पंक्तियाँ है।
  • सही कैश के साथ कॉन्फ़िगर किए जाने पर काउंट कमांड तेजी से काम करेगा।

उदाहरण:

hbase> count 'guru99', CACHE=>1000

नीचे गणना का परिणाम दिखाया गया है:

HBase शेल काउंट कमांड गुरु99 टेबल की पंक्तियों की संख्या लौटाता है।

यह उदाहरण "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 रखे हैं, जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है।

HBase शेल पुट कमांड का उपयोग करके गुरु99 टेबल में 10, 15 और 30 मान सम्मिलित किए जा रहे हैं।

मान लीजिए कि "guru99" नामक तालिका में कोई तालिका संदर्भ है, जैसे कि g। हम इस तालिका संदर्भ पर भी कमांड चला सकते हैं, जैसे:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

“guru99” में मान डालने के बाद आउटपुट ऊपर दिए गए स्क्रीनशॉट में दिखाए अनुसार होगा। यह जांचने के लिए कि इनपुट मान तालिका में सही ढंग से डाला गया है या नहीं, हम “scan” कमांड का उपयोग करते हैं। नीचे दिए गए स्क्रीनशॉट में, हम देख सकते हैं कि मान सही ढंग से डाले गए हैं।

HBase शेल स्कैन आउटपुट गुरु99 टेबल में डाले गए मानों की पुष्टि करता है।

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 शेल गेट कमांड गुरु99 टेबल से पंक्ति 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 शेल डिलीट कमांड का उपयोग करके गुरु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 कमांड का उपयोग करके गुरु99 टेबल की पंक्ति r1 में मौजूद सभी सेल को हटाया जाता है।

hbase>deleteall 'guru99', 'r1', 'c1'

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

काटें

Syntax:  truncate <tablename>

नीचे दिया गया ट्रंकेट कमांड टेबल को खाली कर देता है जबकि कीping इसका आरेख:

HBase शेल ट्रंकेट कमांड को अक्षम करना, हटानाpingऔर गुरु99 तालिका को पुनः बनाना

एचबेस टेबल को ट्रंकेट करने के बाद, स्कीमा तो मौजूद रहेगी लेकिन रिकॉर्ड नहीं। यह कमांड 3 कार्य करता है; वे नीचे सूचीबद्ध हैं:

  • यदि टेबल पहले से मौजूद है तो उसे निष्क्रिय कर देता है।
  • यदि टेबल पहले से मौजूद है तो उसे हटा देता है।
  • उल्लिखित तालिका को पुनः निर्मित करता है।

स्कैन

Syntax: scan <'tablename'>, {Optional parameters}

यह कमांड पूरी टेबल को स्कैन करता है और टेबल की सामग्री को प्रदर्शित करता है।

  • सिस्टम में मौजूद तालिकाओं के बारे में अधिक जानकारी प्राप्त करने के लिए हम इस स्कैन कमांड में कई वैकल्पिक विनिर्देश पारित कर सकते हैं।
  • स्कैनर विनिर्देशों में निम्नलिखित में से एक या अधिक विशेषताएं शामिल हो सकती हैं।
  • ये हैं TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW और STOPROW।
scan 'guru99'

स्कैन का परिणाम नीचे दिखाया गया है:

HBase शेल स्कैन कमांड गुरु99 टेबल की पंक्तियों r1, r2 और r3 को प्रदर्शित करता है।

उपरोक्त स्क्रीनशॉट में:

  • इसमें "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 उदाहरण: सबसे पहले, एक टेबल बनाएं और उसमें मान डालें। इनपुट नीचे दिए गए स्क्रीनशॉट में दिखाया गया है:

HBase शेल इनपुट गुरु99 टेबल बनाता है और रॉ स्कैन से पहले वर्ज़न्ड वैल्यूज़ इंसर्ट करता है।

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}

यह नीचे दिखाए गए आउटपुट को प्रदर्शित करेगा:

HBase शेल रॉ स्कैन आउटपुट में हटाए गए मान सहित कई सेल संस्करण दिखाए गए हैं।

ऊपर दिए गए स्क्रीनशॉट में दिखाया गया आउटपुट निम्नलिखित जानकारी देता है:

  • 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

अक्सर पूछे जाने वाले प्रश्न

इंटरेक्टिव एचबेस शेल से बाहर निकलने और ऑपरेटिंग सिस्टम प्रॉम्प्ट पर वापस आने के लिए exit या quit टाइप करें और Enter दबाएं। आप hbase shell कमांड से शेल खोलते हैं। exit या quit दोनों ही एचबेस सेवा को बंद नहीं करते; वे केवल शेल सेशन को समाप्त करते हैं।

जी हां। आप पाइप कमांड का उपयोग गैर-इंटरैक्टिव तरीके से कर सकते हैं, उदाहरण के लिए echo “list” | hbase shell, या hbase shell script.txt के साथ सहेजी गई फ़ाइल चला सकते हैं। क्योंकि यह शेल JRuby पर आधारित है, आप .rb स्क्रिप्ट फ़ाइलों के अंदर Ruby लॉजिक और लूप भी एम्बेड कर सकते हैं।

शेल त्वरित मैन्युअल कमांड और प्रशासन के लिए एक इंटरैक्टिव जेरूबी प्रॉम्प्ट है। Java कनेक्शन, एडमिन और टेबल का उपयोग करने वाला API उन एप्लिकेशन के लिए है जो प्रोग्रामेटिक रूप से टेबल बनाते हैं और डेटा पढ़ते या लिखते हैं। दोनों एक ही HBase क्लस्टर और डेटा तक पहुँचते हैं।

"टेबल पहले से मौजूद है" त्रुटि तब दिखाई देती है जब क्रिएट कमांड में पहले से मौजूद नाम दोहराया जाता है, और "टेबल डिसेबल्ड नहीं है" त्रुटि तब दिखाई देती है जब आप पहले डिसेबल्ड किए बिना ड्रॉप या ऑल्टर करते हैं। ड्रॉप या ऑल्टर करने से पहले 'टेबल' को डिसेबल्ड करें, और क्रिएट करने से पहले नाम की जांच करने के लिए 'टेबल मौजूद है' कमांड का उपयोग करें।

HBase कॉलम फ़ैमिली प्रति सेल सीमित संख्या में टाइमस्टैम्प्ड वर्ज़न रखती है, ऐतिहासिक रूप से तीन और नए रिलीज़ में एक। क्रिएट या ऑल्टर करते समय VERSIONS फ़ंक्शन का उपयोग करके संख्या निर्धारित करें, और गेट या स्कैन कमांड पर {VERSIONS => n} का उपयोग करके पुराने वर्ज़न का अनुरोध करें।

टेबल रेफरेंस वेरिएबल एक शेल ऑब्जेक्ट है जो g = get_table 'guru99' कमांड द्वारा रिटर्न किया जाता है। फिर आप टेबल का नाम दोहराने के बजाय इस पर g.put, g.get या g.count जैसे मेथड कॉल करते हैं। यह HBase शेल में JRuby-शैली का एक सुविधाजनक शॉर्टकट है।

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

हां. गिटहब कोपिलॉट एक संक्षिप्त टिप्पणी से एचबेस शेल कमांड और जेरूबी स्क्रिप्ट का सुझाव देता है, जिसमें क्रिएट, पुट, स्कैन और ऑल्टर के उदाहरण शामिल हैं। Revकिसी वास्तविक क्लस्टर पर इसे चलाने से पहले, सही टेबल नाम, कॉलम परिवार और VERSIONS जैसे सिंटैक्स के लिए इसके आउटपुट की जांच कर लें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: