HBase के साथ तालिका बनाएँ Java एपीआई और शेल उदाहरण
⚡ स्मार्ट सारांश
HBase डेटा को तालिकाओं में संग्रहीत करता है, और आप उन तालिकाओं को दो तरीकों से बना और प्रबंधित कर सकते हैं: इसके माध्यम से Java एचटेबल के साथ एपीआईDescriptया तो HBaseAdmin में, या सीधे HBase शेल में क्रिएट कमांड का उपयोग करके।

HBase में टेबल कैसे बनाएं? Java API
HBase में, टेबल दो तरीकों से बनाई जा सकती हैं: Java एपीआई और एचबेस शेल के माध्यम से। यह अनुभाग निम्नलिखित को कवर करता है। Java एपीआई, जो किसी एप्लिकेशन को एक बड़े कार्य के हिस्से के रूप में प्रोग्रामेटिक रूप से टेबल बनाने और डेटा लोड करने की अनुमति देता है।
यहाँ Java API का उपयोग करके, हम HBase में तालिकाएँ बना सकते हैं और तालिकाओं में डेटा भी लोड कर सकते हैं Java कोडिंग। यहाँ हमने दो चीज़ें सेट अप की हैं:
- HBase के साथ कनेक्शन स्थापित करना Java एपीआई।
- का प्रयोग Eclipse एसटी Java कोडिंग, डिबगिंग और टेस्टिंग।
HBase में टेबल बनाने के लिए निम्नलिखित चरण हैं Java एपीआई।
चरण 1) एक बनाएं Java परियोजना में Eclipse
इस चरण में, हम एक बनाने जा रहे हैं Java में परियोजना Eclipse एचबेस कनेक्शन के लिए, जिसका नाम "एचबेसकनेक्शन" है।
नई Java नीचे दिए गए प्रोजेक्ट डायलॉग बॉक्स में "HbaseConnection" प्रोजेक्ट की सेटअप प्रक्रिया दिखाई गई है:
यदि हम ऊपर दिए गए स्क्रीनशॉट को देखें:
- इस बॉक्स में प्रोजेक्ट का नाम लिखें। हमारे मामले में, प्रोजेक्ट का नाम "HbaseConnection" है।
- डिफ़ॉल्ट रूप से सहेजने के लिए इस बॉक्स को चेक करें। यहाँ /home/hduser/work/HbaseConnection पाथ है।
- बॉक्स पर निशान लगाएँ Java यहां का वातावरण। इस मामले में Javaएसई-1.7 है Java संस्करण.
- आप फ़ाइल को कहाँ सहेजना चाहते हैं, उसके लिए विकल्प चुनें। हमारे मामले में, हमने दूसरा विकल्प चुना, "स्रोत और क्लास फ़ाइलों के लिए एक अलग फ़ोल्डर बनाएँ"।
- Finish बटन पर क्लिक करें, जिससे “HbaseConnection” प्रोजेक्ट बन जाएगा। Eclipse और खोलता है Eclipse मुख पृष्ठ.
चरण 2) बिल्ड पाथ को कॉन्फ़िगर करें Eclipse
पर Eclipse होम पेज पर जाकर, बिल्ड पाथ कॉन्फ़िगरेशन खोलने के लिए इन चरणों का पालन करें:
Right click on project -> Select Build Path -> Configure build path
नीचे दिया गया स्क्रीनशॉट बिल्ड पाथ कॉन्फ़िगरेशन खोलने के लिए उपयोग किए जाने वाले राइट-क्लिक मेनू को दर्शाता है:
ऊपर दिए गए स्क्रीनशॉट से:
- किसी प्रोजेक्ट पर राइट-क्लिक करें।
- बिल्ड पाथ चुनें।
- कॉन्फ़िगर बिल्ड पाथ चुनें।
कॉन्फ़िगर बिल्ड पाथ पर क्लिक करने के बाद, एक और विंडो खुलती है, जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है। लाइब्रेरीज़ टैब वह जगह है जहाँ HBase और Hadoop JAR फ़ाइलें प्रोजेक्ट में जोड़ी जाती हैं:
इस चरण में, हम संबंधित HBase JAR फ़ाइलों को जोड़ते हैं। Java स्क्रीनशॉट में दिखाए गए प्रोजेक्ट के अनुसार।
- जोड़ी जाने वाली महत्वपूर्ण JAR फाइलें: hbase-0.94.8.jar और hadoop-core-1.1.2.jar।
- लाइब्रेरी टैब पर आएं।
- "Add External JARs" विकल्प पर क्लिक करें।
- आवश्यक महत्वपूर्ण JAR फ़ाइलों का चयन करें।
- इन फ़ाइलों को "src" फ़ोल्डर में जोड़ने के लिए Finish बटन दबाएँ। Java पुस्तकालयों के अंतर्गत परियोजना।
JAR फ़ाइलें जोड़ने के बाद, वे नीचे दिखाए अनुसार प्रोजेक्ट के "src" स्थान के अंतर्गत दिखाई देती हैं:
इस प्रोजेक्ट के अंतर्गत आने वाली सभी JAR फाइलें अब Hadoop इकोसिस्टम के साथ उपयोग के लिए तैयार हैं।
चरण 3) HBase कनेक्शन स्थापित करें
इस चरण में, HBaseConnection.java का उपयोग करके, HBase कनेक्शन स्थापित किया जाता है। Java कोडिंग।
पर Eclipse शीर्ष मेनू, निष्पादित करें Java नीचे दिखाए गए अनुसार प्रोग्राम करें: चलाएँ -> इस रूप में चलाएँ -> Java एप्लिकेशन। नीचे दिया गया मेनू लॉन्च किए जा रहे प्रोग्राम को दर्शाता है:
- रन चुनें।
- रन ऐज़ चुनें Java आवेदन।
- यह कोड एचबेस के साथ कनेक्शन स्थापित करता है। Java एपीआई।
- इस कोड को चलाने के बाद, HBase में “guru99” नाम की एक टेबल बन जाती है जिसमें “education” और “projects” नाम के दो कॉलम परिवार होते हैं। फिलहाल, HBase में केवल खाली स्कीमा ही बनी है।
नीचे दिए गए कोड अंश में एचटीटेबल को हाइलाइट किया गया है।Descriptया फिर addFamily कॉल जो टेबल स्कीमा बनाते हैं:
ऊपर दिए गए स्क्रीनशॉट से, हम निम्नलिखित कार्यों को निष्पादित कर रहे हैं:
- HTable का उपयोग करनाDescriptया फिर, हम HBase में “guru99” टेबल बना सकते हैं।
- addFamily विधि का उपयोग करके, हम "शिक्षा" और "परियोजनाओं" को "गुरु99" तालिका में कॉलम परिवारों के रूप में जोड़ते हैं।
नीचे दिया गया कोड HBase से कनेक्शन स्थापित करेगा और दो कॉलम परिवारों के साथ "guru99" टेबल बनाएगा। इस कोड को HBaseConnection.java दस्तावेज़ के नीचे रखें:
// Place this code inside Hbase connection import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; Import org.apache.hadoop.hbase.client.HBaseAdmin; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
यह आवश्यक कोड है जिसे आपको चलाने से पहले HBaseConnection.java में डालना होगा। Java कार्यक्रम.
इस प्रोग्राम को चलाने के बाद, यह HBase के साथ एक कनेक्शन स्थापित करता है और बदले में, कॉलम नामों के साथ एक टेबल बनाता है।
- टेबल का नाम “guru99” है।
- स्तंभ परिवारों में "शिक्षा" और "परियोजनाएं" शामिल हैं।
चरण 4) HBase में बनाई गई तालिका की जाँच करें
हम HBase शेल मोड में "list" कमांड का उपयोग करके यह जांच सकते हैं कि HBase में "guru99" टेबल दो कॉलम परिवारों के साथ बनाई गई है या नहीं। "list" कमांड HBase में बनाई गई सभी तालिकाओं के बारे में जानकारी देती है।
एचबेस शेल में लिस्ट कमांड चलाने से नई टेबल की पुष्टि हो जाती है, जैसा कि नीचे दिखाया गया है:
- Code "list" कमांड को निष्पादित करके HBase शेल में जांच करें।
- यदि हम “list” कमांड चलाते हैं, तो यह HBase में बनाई गई तालिका को प्रदर्शित करता है। हमारे मामले में, हम देख सकते हैं कि “guru99” तालिका बनाई गई है।
HBase शैल के साथ तालिका बनाएँ
के अतिरिक्त Java API का उपयोग करके, आप सीधे HBase शेल से एक टेबल बना सकते हैं, जो त्वरित परीक्षणों के लिए टेबल सेट अप करने का सबसे तेज़ तरीका है। शेल का उपयोग करके HBase में टेबल बनाने का सिंटैक्स इस प्रकार है:
Syntax: create <tablename>, <columnfamilyname>
उदाहरण:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
उपरोक्त उदाहरण बताता है कि प्रत्येक कॉलम परिवार के लिए दिए गए विनिर्देशों के अनुसार निर्दिष्ट नाम के साथ HBase में एक टेबल कैसे बनाई जाती है। इसके अलावा, हम इसमें कुछ टेबल-स्कोप एट्रिब्यूट भी पास कर सकते हैं।
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
यहां {NAME=>'Edu', VERSIONS=>…} ब्लॉक “Edu” नाम का एक कॉलम परिवार और उसमें मौजूद सेल वर्ज़नों की संख्या निर्धारित करता है। यह बड़ी संख्या केवल उदाहरण के लिए है; व्यवहार में, VERSIONS का मान 3 या 5 जैसा छोटा होता है।
एचबेस टेबल की सूची बनाएं, उनका वर्णन करें और उनकी पुष्टि करें।
HBase में टेबल बनाने की प्रक्रिया का पहला चरण टेबल निर्माण ही है। एक बार "guru99" टेबल बन जाने के बाद, कुछ सामान्य कमांड की मदद से आप डेटा पढ़ने, लिखने या संशोधित करने से पहले उसकी स्थिति की जांच और पुष्टि कर सकते हैं। आप इन सभी कमांड को यहां से चला सकते हैं। एचबेस शेल.
list कमांड HBase में मौजूद सभी उपयोगकर्ता तालिकाओं को लौटाता है:
hbase> list
डिस्क्राइब कमांड किसी टेबल की संरचना को दर्शाती है, जिसमें उसके कॉलम परिवार और यह जानकारी शामिल होती है कि वह वर्तमान में सक्रिय है या नहीं:
hbase> describe 'guru99'
exists कमांड यह जांचता है कि कोई टेबल मौजूद है या नहीं, और is_enabled यह बताता है कि टेबल में डेटा राइट स्वीकार किया जा सकता है या नहीं।
hbase> exists 'guru99' hbase> is_enabled 'guru99'
ये रीड-ओनली चेक किसी भी समय सुरक्षित रूप से चलाए जा सकते हैं। डेटा लोड करने से पहले यह पुष्टि करने का सबसे तेज़ तरीका है कि टेबल सही ढंग से बनाई गई है और उसके कॉलम परिवारों की समीक्षा करना भी आसान है।
एक HBase टेबल को बदलें
HBase टेबल का स्कीमा निर्माण के बाद स्थिर नहीं रहता है। ऑल्टर कमांड टेबल को दोबारा बनाए बिना उसके कॉलम फ़ैमिली और टेबल-स्कोप एट्रिब्यूट्स को बदल देता है। आपके HBase संस्करण के आधार पर, आपको पहले टेबल को निष्क्रिय करना पड़ सकता है, फिर ऑल्टर कमांड चलाकर उसे दोबारा सक्रिय करना पड़ सकता है।
“guru99” टेबल में एक नया कॉलम परिवार जोड़ने के लिए:
hbase> alter 'guru99', {NAME => 'contact'}
किसी कॉलम परिवार के कितने संस्करण रखे जा सकते हैं, यह निर्धारित करने के लिए:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
टेबल से कॉलम फ़ैमिली को हटाने के लिए:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
आप टेबल-स्कोप एट्रिब्यूट्स को भी बदल सकते हैं। उदाहरण के लिए, टेबल को रीड-ओनली मार्क करें, या अधिकतम रीजन फ़ाइल आकार को 128 एमबी पर सेट करें:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
क्योंकि ऑल्टर स्कीमा को फिर से लिखता है, इसलिए प्रोडक्शन टेबल पर बदलावों की सावधानीपूर्वक योजना बनाएं और बाद में डिस्क्राइब का उपयोग करके परिणाम की पुष्टि करें।
HBase टेबल को निष्क्रिय, सक्रिय और हटाएं
किसी टेबल को हटाने या उसमें कुछ बदलाव करने के लिए, HBase को पहले उसे डिसेबल करना आवश्यक होता है। डिसेबल करने से टेबल ऑफ़लाइन हो जाती है, जिससे कोई भी क्लाइंट उस पर रीड या राइट नहीं कर सकता, और इस प्रकार संरचनात्मक बदलाव सुरक्षित हो जाते हैं।
किसी टेबल को निष्क्रिय करें और is_disabled फ़ंक्शन का उपयोग करके उसकी स्थिति की जांच करें:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
रीड और राइट ऑपरेशन फिर से शुरू करने के लिए टेबल को दोबारा सक्षम करें:
hbase> enable 'guru99'
किसी टेबल को ड्रॉप करने से पहले उसे डिसेबल करना होगा। ड्रॉपping यह टेबल और उसके सभी डेटा को स्थायी रूप से हटा देता है, इसलिए इसका उपयोग सावधानी से करें:
hbase> disable 'guru99' hbase> drop 'guru99'
एक साथ कई टेबल हटाने के लिए, drop_all कमांड उन सभी टेबल को डिलीट कर देता है जिनका नाम रेगुलर एक्सप्रेशन से मेल खाता है। create, alter, disable, enable और drop कमांड मिलकर टेबल के पूरे जीवन चक्र को कवर करते हैं। डेटा को संभालना एचबेस टेबल में।






