HBase - वर्णन करें और अलर्ट करें
वर्णन
यह आदेश तालिका का विवरण लौटाता है। इसका सिंटैक्स इस प्रकार है:
hbase> describe 'table name'
नीचे दिए गए वर्णन कमांड का आउटपुट है emp तालिका।
hbase(main):006:0> describe 'emp'
DESCRIPTION
ENABLED
'emp', {NAME ⇒ 'READONLY', DATA_BLOCK_ENCODING ⇒ 'NONE', BLOOMFILTER
⇒ 'ROW', REPLICATION_SCOPE ⇒ '0', COMPRESSION ⇒ 'NONE', VERSIONS ⇒
'1', TTL true
⇒ 'FOREVER', MIN_VERSIONS ⇒ '0', KEEP_DELETED_CELLS ⇒ 'false',
BLOCKSIZE ⇒ '65536', IN_MEMORY ⇒ 'false', BLOCKCACHE ⇒ 'true'}, {NAME
⇒ 'personal
data', DATA_BLOCK_ENCODING ⇒ 'NONE', BLOOMFILTER ⇒ 'ROW',
REPLICATION_SCOPE ⇒ '0', VERSIONS ⇒ '5', COMPRESSION ⇒ 'NONE',
MIN_VERSIONS ⇒ '0', TTL
⇒ 'FOREVER', KEEP_DELETED_CELLS ⇒ 'false', BLOCKSIZE ⇒ '65536',
IN_MEMORY ⇒ 'false', BLOCKCACHE ⇒ 'true'}, {NAME ⇒ 'professional
data', DATA_BLO
CK_ENCODING ⇒ 'NONE', BLOOMFILTER ⇒ 'ROW', REPLICATION_SCOPE ⇒ '0',
VERSIONS ⇒ '1', COMPRESSION ⇒ 'NONE', MIN_VERSIONS ⇒ '0', TTL ⇒
'FOREVER', K
EEP_DELETED_CELLS ⇒ 'false', BLOCKSIZE ⇒ '65536', IN_MEMORY ⇒
'false', BLOCKCACHE ⇒ 'true'}, {NAME ⇒ 'table_att_unset',
DATA_BLOCK_ENCODING ⇒ 'NO
NE', BLOOMFILTER ⇒ 'ROW', REPLICATION_SCOPE ⇒ '0', COMPRESSION ⇒
'NONE', VERSIONS ⇒ '1', TTL ⇒ 'FOREVER', MIN_VERSIONS ⇒ '0',
KEEP_DELETED_CELLS
⇒ 'false', BLOCKSIZE ⇒ '6
बदलने
Alter एक मौजूदा तालिका में परिवर्तन करने के लिए उपयोग की जाने वाली कमांड है। इस कमांड का उपयोग करके, आप कॉलम परिवार के सेल की अधिकतम संख्या को बदल सकते हैं, टेबल स्कोप ऑपरेटरों को सेट और डिलीट कर सकते हैं, और एक टेबल से कॉलम परिवार को हटा सकते हैं।
एक कॉलम परिवार की कोशिकाओं की अधिकतम संख्या को बदलना
नीचे दिए गए कॉलम परिवार की अधिकतम सेल को बदलने के लिए सिंटैक्स है।
hbase> alter 't1', NAME ⇒ 'f1', VERSIONS ⇒ 5
निम्नलिखित उदाहरण में, कोशिकाओं की अधिकतम संख्या 5 पर सेट है।
hbase(main):003:0> alter 'emp', NAME ⇒ 'personal data', VERSIONS ⇒ 5
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.3050 seconds
टेबल स्कोप ऑपरेटर्स
परिवर्तन का उपयोग करते हुए, आप MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, आदि जैसे टेबल स्कोप ऑपरेटर को सेट और निकाल सकते हैं।
सेटिंग केवल पढ़ें
नीचे दी गई सारणी केवल पढ़ने के लिए वाक्य रचना है।
hbase>alter 't1', READONLY(option)
निम्नलिखित उदाहरण में, हमने बनाया है emp टेबल ही पढ़ी।
hbase(main):006:0> alter 'emp', READONLY
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.2140 seconds
टेबल स्कोप ऑपरेटर्स को हटाना
हम टेबल स्कोप ऑपरेटरों को भी हटा सकते हैं। नीचे दी गई सूची तालिका से 'MAX_FILESIZE' निकालने का सिंटैक्स है।
hbase> alter 't1', METHOD ⇒ 'table_att_unset', NAME ⇒ 'MAX_FILESIZE'
एक स्तंभ परिवार को हटाना
परिवर्तन का उपयोग करके, आप एक कॉलम परिवार को भी हटा सकते हैं। नीचे दिए गए परिवर्तन का उपयोग करके एक कॉलम परिवार को हटाने के लिए वाक्यविन्यास है।
hbase> alter ‘ table name ’, ‘delete’ ⇒ ‘ column family ’
नीचे दिया गया एक उदाहरण 'एम्पायर' टेबल से एक कॉलम परिवार को हटाने के लिए है।
मान लें कि HBase में एक कर्मचारी नाम की एक तालिका है। इसमें निम्न डेटा शामिल हैं:
hbase(main):006:0> scan 'employee'
ROW COLUMN+CELL
row1 column = personal:city, timestamp = 1418193767, value = hyderabad
row1 column = personal:name, timestamp = 1418193806767, value = raju
row1 column = professional:designation, timestamp = 1418193767, value = manager
row1 column = professional:salary, timestamp = 1418193806767, value = 50000
1 row(s) in 0.0160 seconds
अब हम कॉलम परिवार नाम हटाते हैं professional बदल कमांड का उपयोग करना।
hbase(main):007:0> alter 'employee','delete'⇒'professional'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.2380 seconds
अब परिवर्तन के बाद तालिका में डेटा सत्यापित करें। स्तंभ परिवार को ध्यान से देखें, तो 'व्यावसायिक' अधिक नहीं है, क्योंकि हमने इसे हटा दिया है।
hbase(main):003:0> scan 'employee'
ROW COLUMN + CELL
row1 column = personal:city, timestamp = 14181936767, value = hyderabad
row1 column = personal:name, timestamp = 1418193806767, value = raju
1 row(s) in 0.0830 seconds
जावा एपीआई का उपयोग करके एक कॉलम परिवार जोड़ना
आप विधि का उपयोग करके एक स्तंभ परिवार को एक तालिका में जोड़ सकते हैं addColumn() का HBAseAdminकक्षा। स्तंभ परिवार को तालिका में जोड़ने के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1
झटपट HBaseAdmin कक्षा।
// Instantiating configuration object
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
चरण 2
addColumn() विधि के लिए एक टेबल नाम और एक ऑब्जेक्ट की आवश्यकता होती है HColumnDescriptorकक्षा। इसलिए तत्कालHColumnDescriptorकक्षा। के निर्माताHColumnDescriptorबदले में एक कॉलम परिवार के नाम की आवश्यकता होती है जिसे जोड़ा जाना है। यहाँ हम मौजूदा "कर्मचारी" तालिका में "contactDetails" नामक एक कॉलम परिवार जोड़ रहे हैं।
// Instantiating columnDescriptor object
HColumnDescriptor columnDescriptor = new
HColumnDescriptor("contactDetails");
चरण 3
कॉलम परिवार का उपयोग कर जोड़ें addColumnतरीका। तालिका का नाम और पास करेंHColumnDescriptor इस विधि के मापदंडों के रूप में वर्ग वस्तु।
// Adding column family
admin.addColumn("employee", new HColumnDescriptor("columnDescriptor"));
नीचे दिए गए मौजूदा तालिका में एक कॉलम परिवार जोड़ने का पूरा कार्यक्रम है।
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.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class AddColoumn{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class.
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class.
HBaseAdmin admin = new HBaseAdmin(conf);
// Instantiating columnDescriptor class
HColumnDescriptor columnDescriptor = new HColumnDescriptor("contactDetails");
// Adding column family
admin.addColumn("employee", columnDescriptor);
System.out.println("coloumn added");
}
}
उपरोक्त कार्यक्रम को संकलित और निष्पादित करें जैसा कि नीचे दिखाया गया है।
$javac AddColumn.java
$java AddColumn
उपरोक्त संकलन केवल तभी काम करता है, जब आपने क्लासपैथ को “में” सेट किया हो .bashrc"। यदि आपने नहीं किया है, तो अपनी .java फ़ाइल संकलित करने के लिए नीचे दी गई प्रक्रिया का पालन करें।
//if "/home/home/hadoop/hbase " is your Hbase home folder then.
$javac -cp /home/hadoop/hbase/lib/*: Demo.java
यदि सबकुछ ठीक हो जाता है, तो यह निम्न आउटपुट का उत्पादन करेगा:
column added
जावा एपीआई का उपयोग करके एक कॉलम परिवार को हटाना
आप विधि का उपयोग करके एक स्तंभ परिवार को तालिका से हटा सकते हैं deleteColumn() का HBAseAdminकक्षा। स्तंभ परिवार को तालिका में जोड़ने के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1
झटपट HBaseAdmin कक्षा।
// Instantiating configuration object
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
चरण 2
कॉलम परिवार का उपयोग कर जोड़ें deleteColumn()तरीका। इस विधि में पैरामीटर के रूप में तालिका नाम और स्तंभ परिवार नाम पास करें।
// Deleting column family
admin.deleteColumn("employee", "contactDetails");
नीचे दी गई एक मौजूदा तालिका से एक कॉलम परिवार को हटाने का पूरा कार्यक्रम है।
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DeleteColoumn{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class.
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class.
HBaseAdmin admin = new HBaseAdmin(conf);
// Deleting a column family
admin.deleteColumn("employee","contactDetails");
System.out.println("coloumn deleted");
}
}
उपरोक्त कार्यक्रम को संकलित और निष्पादित करें जैसा कि नीचे दिखाया गया है।
$javac DeleteColumn.java
$java DeleteColumn
निम्नलिखित आउटपुट होना चाहिए:
column deleted