इस ट्यूटोरियल में, आप सीखेंगे:
- HBase तालिका में डेटा लिखें: शेल
- HBase तालिका से डेटा पढ़ें: शेल
- HBase तालिका में डेटा लिखें: जावा एपीआई
- HBase तालिका से डेटा पढ़ें: जावा एपीआई
HBase तालिका में डेटा लिखें: शेल
पुट कमांड का उपयोग डेटा को टेबल में स्टोर करने के लिए किया जाता है
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
इस कमांड का उपयोग निम्नलिखित चीजों के लिए किया जाता है
- यह एक परिभाषित या निर्दिष्ट तालिका या पंक्ति या स्तंभ पर एक सेल 'मान' डालेगा।
- यह वैकल्पिक रूप से समय स्टाम्प का समन्वय करेगा।
उदाहरण:
- यहां हम पंक्ति r1 और कॉलम c1 के तहत "गुरु99" तालिका में मान रख रहे हैं
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- हमने तीन मान रखे हैं, 10,15 और 30 टेबल "गुरु 99" में, जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है
-
मान लीजिए अगर टेबल "गुरु 99" में कुछ टेबल संदर्भ हैं जैसे कि जी। हम कमांड को टेबल रेफरेंस पर भी चला सकते हैं
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
आउटपुट "गुरु 99" में मान रखने के बाद उपरोक्त स्क्रीनशॉट में दिखाया जाएगा।
HBase तालिका से डेटा पढ़ें: शेल
इस अनुभाग में, हम निम्नलिखित की जांच करेंगे
- मान जो HBase तालिका "गुरु99" में डाले गए हैं
- HBase टेबल गुरु 99 में मौजूद मानों के साथ कॉलम नाम
उपरोक्त स्क्रीनशॉट से, हम अनुमान लगा सकते हैं
- यदि हम HBase शेल में "स्कैन" कमांड चलाते हैं, तो यह "गुरु99" में सम्मिलित मानों को अनुसरण के रूप में प्रदर्शित करेगा
- HBase शेल में, यह हमारे कोड द्वारा कॉलम और रो नामों के साथ डाले गए मानों को प्रदर्शित करेगा
- यहां हम देख सकते हैं कि डाला गया कॉलम "शिक्षा" और "प्रोजेक्ट" हैं
- सम्मिलित मूल्य "बिगडाटा" और "एचबीएएस ट्यूटोरियल" उल्लेखित कॉलम में हैं
आप तालिका से डेटा पढ़ने के लिए गेट कमांड का उपयोग भी कर सकते हैं
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
यहाँ <अतिरिक्त पैरामीटर> TIMERANGE, TIMESTAMP, संस्करण और फ़िल्टर शामिल हैं।
इस कमांड का उपयोग करके, आपको तालिका में मौजूद एक पंक्ति या सेल सामग्री मिल जाएगी। इसके अलावा, आप किसी विशेष पंक्ति या सेल सामग्री को प्राप्त करने के लिए इसमें अतिरिक्त पैरामीटर भी जोड़ सकते हैं जैसे TIMESTAMP, TIMERANGE, संस्करण, फ़िल्टर आदि।
उदाहरण:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
तालिका "गुरु 99 'पंक्ति के लिए आर 1 और कॉलम सी 1 मान इस कमांड का उपयोग करके प्रदर्शित करेंगे जैसा कि ऊपर दिए गए स्क्रीनशॉट में दिखाया गया है
hbase> get 'guru99', 'r1'
तालिका "गुरु99" पंक्ति के लिए r1 मान इस कमांड का उपयोग करके प्रदर्शित किया जाएगा
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
तालिका "गुरु 99" पंक्ति 1 के लिए समय सीमा ts1 और ts2 में इस कमांड का उपयोग करके प्रदर्शित किया जाएगा
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
तालिका "गुरु99" पंक्ति के लिए आर 1 और कॉलम परिवारों के सी 1, सी 2, सी 3 मान इस कमांड का उपयोग करके प्रदर्शित किए जाएंगे
HBase तालिका में डेटा लिखें: जावा एपीआई
इस चरण में, हम HBase तालिका "गुरु99" में डेटा लिखने जा रहे हैं
सबसे पहले, हमें HBaseLading.java प्रोग्राम का उपयोग करके HBase से मान डालने और पुनः प्राप्त करने के लिए कोड लिखना होगा ।
स्तंभ स्तर पर तालिका में मान बनाने और सम्मिलित करने के लिए, आपको नीचे की तरह कोड करना होगा ।
ऊपर स्क्रीन शॉट से
- जब हम HBase कॉन्फ़िगरेशन बनाते हैं, तो यह जो भी कॉन्फ़िगरेशन हम बेस-site.xml और hbase-default.xml में सेट करता है वह HBase इंस्टॉलेशन के दौरान इंगित करेगा
- HTable पद्धति का उपयोग करके तालिका "गुरु99" का निर्माण
- पंक्ति 1 से जोड़कर "guru99"
- कॉलम नामों को "शिक्षा" और "प्रोजेक्ट्स" निर्दिष्ट करना और संबंधित रो 1 में कॉलम नामों में मान सम्मिलित करना। यहां डाले गए मान "बिगडाटा" और "एचबीटीट्यूरीटस" हैं।
HBase तालिका से डेटा पढ़ें: जावा एपीआई
उपरोक्त खंड में HBase तालिकाओं में हमने जो भी मान रखे हैं, यहाँ हम उन मूल्यों को लाने और प्रदर्शित करने जा रहे हैं।
"गुरु99" में संग्रहीत परिणाम प्राप्त करने के लिए
उपरोक्त स्क्रीनशॉट से पता चलता है कि डेटा HBase तालिका 'गुरु 99' से पढ़ा जा रहा है
- इसमें हम उन मानों को लाने जा रहे हैं जो कॉलम परिवारों में संग्रहीत हैं "शिक्षा" और "प्रोजेक्ट"
- "प्राप्त" कमांड का उपयोग करके हम HBase तालिका में संग्रहीत मान प्राप्त करने जा रहे हैं
- "स्कैन" कमांड का उपयोग करके स्कैनिंग परिणाम। वे मान जो रो 1 में संचित होते हैं, यह कंसोल पर प्रदर्शित होंगे।
एक बार कोड लिखने के बाद, आपको इस तरह जावा एप्लिकेशन को चलाना होगा
- HBaseLoading.java पर राइट क्लिक करें -> इस प्रकार चलाएँ -> जावा एप्लिकेशन
- "HBaseLoading .java" को चलाने के बाद HBase में प्रत्येक कॉलम में "गुरु99" डालने जा रहे हैं और उसी प्रोग्राम में यह मानों को पुनः प्राप्त भी कर सकता है।
यहाँ पूरा कोड है
import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}
सारांश:
जैसा कि हमने इस ट्यूटोरियल में चर्चा की है, आप तालिका में डेटा डालने के लिए पुट कमांड का उपयोग कर सकते हैं। आप स्कैन का उपयोग कर सकते हैं, तालिका से डेटा पढ़ने के लिए कमांड प्राप्त कर सकते हैं