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

Hadoop के शीर्ष पर HBase की सफल स्थापना के बाद, हमें विभिन्न कमांड निष्पादित करने और कई ऑपरेशन करने के लिए एक इंटरैक्टिव शेल मिलता है। इन कमांड का उपयोग करके, हम डेटा-टेबल पर कई ऑपरेशन कर सकते हैं जो क्लाइंट द्वारा बेहतर डेटा स्टोरेज क्षमता और लचीली बातचीत दे सकते हैं।

हम HBase के साथ दो तरीकों से बातचीत कर सकते हैं,

  • HBase इंटरैक्टिव शेल मोड और
  • यहाँ Java API

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

इन दोनों में एकमात्र अंतर यह है Java एपीआई HBase से कनेक्ट करने के लिए जावा कोड का उपयोग करता है और शेल मोड HBase से कनेक्ट करने के लिए शेल कमांड का उपयोग करता है।

आगे बढ़ने से पहले HBase का संक्षिप्त विवरण-

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

उदाहरण के लिए,

  • इस ट्यूटोरियल में, हमने एक तालिका बनाई है जिसमें 'शिक्षा' तालिका नाम का प्रतिनिधित्व करती है और कॉलम नाम "गुरु 99" से मेल खाती है।
  • कुछ कमांडों में “guru99” स्वयं एक तालिका नाम का प्रतिनिधित्व करता है।

सामान्य आदेश

Hbase में, सामान्य कमांड को निम्नलिखित कमांड में वर्गीकृत किया गया है

  • स्थिति
  • संस्करण
  • Table_help (स्कैन, ड्रॉप, प्राप्त, डालें, अक्षम करें, आदि)
  • मैं कौन हूँ

HBase शेल कमांड में प्रवेश करने के लिए, सबसे पहले, हमें नीचे बताए गए कोड को निष्पादित करना होगा

सामान्य आदेश

hbase Shell

एक बार जब हम HBase शेल में प्रवेश कर जाते हैं, तो हम नीचे बताए गए सभी शेल कमांड निष्पादित कर सकते हैं। इन कमांड की मदद से हम HBase शेल मोड में सभी प्रकार के टेबल ऑपरेशन कर सकते हैं।

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

स्थिति

Syntax:status

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

नीचे हमने दिखाया है कि आप स्टेटस कमांड में विभिन्न पैरामीटर कैसे पास कर सकते हैं।

यदि हम नीचे दिए गए स्क्रीन शॉट को देखें तो हमें बेहतर जानकारी मिलेगी।

स्थिति

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 संस्करण को प्रदर्शित करेगा
  • यदि आप version कमांड चलाते हैं, तो यह ऊपर दिखाए अनुसार आउटपुट देगा

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

Syntax:table_help

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

यह आदेश मार्गदर्शन करता है

  • तालिका-संदर्भित आदेशों का उपयोग कैसे और कैसे करें
  • यह विभिन्न HBase शेल कमांड उपयोग और इसके सिंटैक्स प्रदान करेगा
  • यहाँ ऊपर दिए गए स्क्रीन शॉट में, इसका सिंटैक्स दिखाया गया है “सृजन करना" और "get_table” कमांड और उसका उपयोग। HBase में टेबल बन जाने के बाद हम इन कमांड के ज़रिए टेबल में बदलाव कर सकते हैं।
  • यह टेबल मैनीपुलेशन कमांड जैसे कि पुट, गेट और अन्य सभी कमांड की जानकारी देगा।

Whoami

सिंटेक्स:

Syntax: 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 में शब्दकोश या कॉलम परिवार के अनुसार विनिर्देशों के अनुसार निर्दिष्ट नाम के साथ एक तालिका कैसे बनाई जाए। इसके अलावा हम इसमें कुछ टेबल-स्कोप विशेषताएँ भी पास कर सकते हैं।

यह जाँचने के लिए कि तालिका 'शिक्षा' बनाई गई है या नहीं, हमें इसका उपयोग करना होगा "सूची" नीचे उल्लिखित आदेश।

सूची

Syntax: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 से तालिका को हटा सकता है
  • तालिका को हटाने या हटाने से पहले, उसे पहले अक्षम किया जाना चाहिए

सक्षम

Syntax: enable <tablename>

टेबल प्रबंधन आदेश : सक्षम करें

hbase(main):012:0>enable 'education'
  • यह आदेश नामित तालिका को सक्षम करना शुरू कर देगा
  • जो भी तालिका अक्षम है, उसे उसकी पिछली स्थिति में वापस लाने के लिए हम इस कमांड का उपयोग करते हैं
  • यदि कोई तालिका पहले से ही अक्षम है और हटाई या हटाई नहीं गई है, और यदि हम अक्षम तालिका का पुनः उपयोग करना चाहते हैं तो हमें इस कमांड का उपयोग करके उसे सक्षम करना होगा।
  • यहां उपरोक्त स्क्रीनशॉट में हम “शिक्षा” तालिका को सक्षम कर रहे हैं।

शो_फ़िल्टर

Syntax: show_filters

टेबल्स प्रबंधन आदेश : show_filters

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

बूंद

Syntax:drop <table name>

टेबल्स प्रबंधन आदेश : ड्रॉप

hbase(main):017:0>drop 'education'

ड्रॉप कमांड के लिए हमें नीचे दिए गए बिंदुओं का पालन करना होगा

  • HBase में मौजूद टेबल को डिलीट करने के लिए सबसे पहले हमें उसे डिसेबल करना होगा
  • HBase में मौजूद टेबल को हटाने के लिए, सबसे पहले हमें इसे अक्षम करना होगा
  • इसलिए या तो तालिका को हटाना है या पहले तालिका को अक्षम कमांड का उपयोग करके अक्षम करना चाहिए
  • यहां ऊपर दिए गए स्क्रीनशॉट में हम तालिका “शिक्षा” को हटा रहे हैं।
  • इस आदेश के निष्पादन से पहले, यह आवश्यक है कि आप तालिका “शिक्षा” को अक्षम करें।

ड्रॉप_ऑल

Syntax: drop_all<"regex">
  • यह कमांड दिए गए रेगेक्स से मेल खाने वाली सभी तालिकाओं को हटा देगा
  • इस आदेश को निष्पादित करने से पहले टेबल्स को पहले अक्षम करना होगा
  • रेगेक्स मिलान अभिव्यक्तियों वाली तालिकाएं HBase से हटा दी जाएंगी

सक्षम है

Syntax: is_enabled 'education'

यह कमांड यह सत्यापित करेगा कि नामित तालिका सक्षम है या नहीं। आमतौर पर, “enable” और “is_enabled” कमांड एक्शन के बीच थोड़ा भ्रम होता है, जिसे हम यहाँ स्पष्ट करते हैं

  • मान लीजिए कि कोई तालिका अक्षम है, तो उस तालिका का उपयोग करने के लिए हमें उसे enable कमांड का उपयोग करके सक्षम करना होगा
  • is_enabled कमांड यह जांच करेगा कि तालिका सक्षम है या नहीं

बदल

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

यह कमांड कॉलम फैमिली स्कीमा को बदल देता है। यह समझने के लिए कि यह वास्तव में क्या करता है, हमने इसे यहाँ एक उदाहरण के साथ समझाया है।

उदाहरण:

इन उदाहरणों में, हम टेबल और उसके कॉलम पर alter कमांड ऑपरेशन करने जा रहे हैं। हम इस तरह के ऑपरेशन करेंगे

  • एकल, एकाधिक स्तंभ वाले पारिवारिक नामों में परिवर्तन करना
  • तालिका से स्तंभ परिवार के नाम हटाना
  • तालिका के साथ स्कोप विशेषताओं का उपयोग करके कई अन्य ऑपरेशन
  1. तालिका 'शिक्षा' में 'guru99_1' कॉलम परिवार को वर्तमान मान से बदलने या जोड़ने के लिए अधिकतम 5 सेल संस्करण रखें,
  • “शिक्षा” तालिका नाम है जिसे पहले कॉलम नाम “गुरु99” के साथ बनाया गया था
  • यहाँ हम alter कमांड की सहायता से कॉलम फैमिली स्कीमा को guru99 से guru1_99 में बदलने का प्रयास कर रहे हैं

टेबल्स प्रबंधन आदेश: बदलें

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. आप कई कॉलम फ़ैमिली पर भी alter कमांड को संचालित कर सकते हैं। उदाहरण के लिए, हम अपनी मौजूदा टेबल “education” में दो नए कॉलम परिभाषित करेंगे।
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

टेबल्स प्रबंधन आदेश: बदलें

  • इस कमांड का उपयोग करके हम एक समय में एक से अधिक कॉलम स्कीमा बदल सकते हैं
  • गुरु99_2 और गुरु99_3 जैसा कि ऊपर स्क्रीनशॉट में दिखाया गया है, वे दो नए कॉलम नाम हैं जिन्हें हमने शिक्षा तालिका के लिए परिभाषित किया है
  • हम पिछले स्क्रीन शॉट में इस कमांड का उपयोग करने का तरीका देख सकते हैं
  1. इस चरण में, हम देखेंगे कि तालिका से कॉलम परिवार को कैसे हटाया जाए। तालिका 'education' में 'f1' कॉलम परिवार को हटाने के लिए।

नीचे दिए गए आदेशों में से किसी एक का उपयोग करें,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
  • इस कमांड में, हम कॉलम स्पेस नाम guru99_1 को हटाने की कोशिश कर रहे हैं जिसे हमने पहले चरण में बनाया था

टेबल्स प्रबंधन आदेश: बदलें

  1. जैसा कि नीचे दिए गए स्क्रीन शॉट्स में दिखाया गया है, इसमें दो चरण दिखाए गए हैं - टेबल स्कोप विशेषता को कैसे बदला जाए और टेबल स्कोप विशेषता को कैसे हटाया जाए।
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

टेबल्स प्रबंधन आदेश: बदलें

चरण 1) आप टेबल-स्कोप विशेषताओं जैसे MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH आदि को बदल सकते हैं। इन्हें अंत में रखा जा सकता है; उदाहरण के लिए, किसी क्षेत्र के अधिकतम आकार को 128MB या किसी अन्य मेमोरी मान में बदलने के लिए हम इस कमांड का उपयोग करते हैं।

उपयोग:

  • हम ऊपर बताए अनुसार स्कोप विशेषता के रूप में टेबल के साथ MAX_FILESIZE का उपयोग कर सकते हैं
  • MAX_FILESIZE में दर्शाई गई संख्या बाइट्स में मेमोरी के रूप में है

Nओटीई: 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

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

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

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

इसके अंतर्गत निम्नलिखित आदेश आते हैं

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

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

गिनती

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

उदाहरण:

गिनती

hbase> count 'guru99', CACHE=>1000

यह उदाहरण गणना "गुरु1000" तालिका से एक बार में 99 पंक्तियाँ प्राप्त करती है।

यदि तालिका में अधिक पंक्तियाँ हैं तो हम कैश को कुछ कम मान पर बना सकते हैं।

लेकिन डिफ़ॉल्ट रूप से यह एक समय में एक पंक्ति ही प्राप्त करेगा।

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

मान लीजिए यदि तालिका “गुरु99” में कुछ तालिका संदर्भ हैं जैसे कि g.

हम नीचे दिए गए तरीके से टेबल संदर्भ पर भी गिनती कमांड चला सकते हैं

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

डाल

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

इस कमांड का प्रयोग निम्नलिखित कार्यों के लिए किया जाता है

  • यह एक सेल 'मान' को परिभाषित या निर्दिष्ट तालिका या पंक्ति या स्तंभ पर रखेगा।
  • यह वैकल्पिक रूप से समय स्टाम्प का समन्वय करेगा।

उदाहरण:

  • यहां हम पंक्ति r99 और स्तंभ c1 के अंतर्गत तालिका “guru1” में मान रख रहे हैं
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • हमने तीन मान, 10,15 और 30 को तालिका “guru99” में रखा है जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है

डाल

  • मान लीजिए अगर टेबल “Guru99” में कुछ टेबल रेफरेंस है जैसे कि g. हम टेबल रेफरेंस पर भी कमांड चला सकते हैं जैसे
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • “guru99” में मान डालने के बाद आउटपुट उपरोक्त स्क्रीन शॉट के अनुसार होगा।

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

डाल

कोड स्निपेट: अभ्यास के लिए

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” कमांड का उपयोग करके, हम “Edu” कॉलम में पंक्ति नाम r1 में मानों को तालिका “guru99” में रख रहे हैं।

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

यहाँ इसमें टाइमरेंज, टाइमस्टैम्प, संस्करण और फिल्टर शामिल हैं।

इस कमांड का उपयोग करके, आपको टेबल में मौजूद पंक्ति या सेल की सामग्री मिलेगी। इसके अलावा आप इसमें अतिरिक्त पैरामीटर भी जोड़ सकते हैं जैसे TIMESTAMP, TIMERANGE,VERSIONS, FILTERS, आदि, किसी विशेष पंक्ति या सेल की सामग्री प्राप्त करने के लिए।

उदाहरण:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

तालिका “guru99′ के लिए पंक्ति r1 और स्तंभ c1 मान इस कमांड का उपयोग करके प्रदर्शित होंगे जैसा कि ऊपर दिए गए स्क्रीन शॉट में दिखाया गया है

hbase> get 'guru99', 'r1'

तालिका “guru99″ पंक्ति r1 के लिए मान इस कमांड का उपयोग करके प्रदर्शित किए जाएंगे

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

तालिका “guru99″ पंक्ति 1 के लिए समय सीमा ts1 और ts2 में मान इस कमांड का उपयोग करके प्रदर्शित किए जाएंगे

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

तालिका “guru99” के लिए पंक्ति r1 और स्तंभ परिवारों के c1, c2, c3 मान इस कमांड का उपयोग करके प्रदर्शित किए जाएंगे

मिटाना

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • यह आदेश पंक्ति या स्तंभ की निर्धारित तालिका में सेल मान को हटा देगा।
  • डिलीट को हटाए गए सेल निर्देशांक से बिल्कुल मेल खाना चाहिए।
  • स्कैन करते समय, सेल हटाने से मानों के पुराने संस्करण दब जाते हैं।

मिटाना

उदाहरण:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • उपरोक्त निष्पादन तालिका “guru1” में स्तंभ परिवार c1 से पंक्ति r99 को हटा देगा।
  • मान लीजिए यदि तालिका “guru99” में कुछ तालिका संदर्भ है जैसे g.
  • हम टेबल संदर्भ पर भी कमांड चला सकते हैं जैसे एचबेस> g.डिलीट 'गुरु99', 'r1', 'c1′”.

सभी हटा दो

Syntax: deleteall <'tablename'>, <'rowname'>

सभी हटा दो

  • यह कमांड किसी दी गई पंक्ति के सभी कक्षों को हटा देगा।
  • हम सिंटैक्स में वैकल्पिक रूप से कॉलम नाम और टाइमस्टैम्प परिभाषित कर सकते हैं।

उदाहरण:-

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

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

काटें

Syntax:  truncate <tablename>

काटें

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

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

स्कैन

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

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

  • सिस्टम में मौजूद तालिकाओं के बारे में अधिक जानकारी प्राप्त करने के लिए हम इस स्कैन कमांड में कई वैकल्पिक विनिर्देश पारित कर सकते हैं।
  • स्कैनर विनिर्देशों में निम्नलिखित में से एक या अधिक विशेषताएं शामिल हो सकती हैं।
  • ये हैं टाइमरेंज, फिल्टर, टाइमस्टैम्प, लिमिट, मैक्सलेंथ, कॉलम्स, कैश, स्टार्टरो और स्टॉपरो।
scan 'guru99'

नीचे दिए गए आउटपुट को स्क्रीन शॉट में दिखाया गया है

स्कैन

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

  • यह कॉलम नाम और मानों के साथ “guru99” तालिका दिखाता है
  • इसमें एकल स्तंभ मान c1 के लिए तीन पंक्ति मान r2, r3, r1 शामिल हैं
  • यह पंक्तियों से जुड़े मान प्रदर्शित करता है

उदाहरण:-

स्कैन कमांड के विभिन्न उपयोग

आदेश प्रयोग
स्कैन '.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 उन्नत सुविधा प्रदान करता है जैसे तालिका में मौजूद सभी सेल मान प्रदर्शित करना guru99

कोड उदाहरण:

सबसे पहले तालिका बनाएं और उसमें मान रखें

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=>99 विशेषताओं के साथ guru1000 तालिका को स्कैन किया जा रहा है
  • स्तंभ परिवारों और मानों के साथ पंक्तियाँ प्रदर्शित करना
  • तीसरी पंक्ति में प्रदर्शित मान कॉलम में मौजूद हटाए गए मान को दर्शाता है
  • इसके द्वारा प्रदर्शित आउटपुट यादृच्छिक है; यह उन मानों के समान क्रम में नहीं हो सकता है जिन्हें हमने तालिका में डाला है

Cluster प्रतिकृति आदेश

  • ये कमांड HBase के क्लस्टर सेटअप मोड पर काम करते हैं।
  • क्लस्टर में साथियों को जोड़ने और हटाने तथा प्रतिकृतिकरण शुरू करने और रोकने के लिए सामान्यतः इन आदेशों का उपयोग किया जाता है।
आदेश कार्यशीलता
add_सहकर्मी प्रतिकृति बनाने के लिए क्लस्टर में साथियों को जोड़ें

hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod

सहकर्मी_को_हटाएं निर्धारित प्रतिकृति स्ट्रीम को रोकता है.

सहकर्मी के बारे में सभी मेटाडेटा जानकारी हटा देता है

hbase> remove_peer '1'

प्रतिकृति प्रारंभ करें सभी प्रतिकृति सुविधाओं को पुनः आरंभ करता है

hbase> प्रारंभ_प्रतिकृति

प्रतिकृति रोकें सभी प्रतिकृति सुविधाएँ बंद कर देता है

hbase>stop_replication

सारांश

HBase शेल और सामान्य कमांड विभिन्न प्रकार के डेटा मैनिपुलेशन, टेबल मैनेजमेंट और क्लस्टर प्रतिकृति कमांड के बारे में पूरी जानकारी देते हैं। हम HBase में मौजूद टेबल पर इन कमांड का उपयोग करके विभिन्न कार्य कर सकते हैं।

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