Hbase1.3.1 is based on Hadoop2.7.1, relevant basic operation code examples
package com.xiva.cloud.study.hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Table; /** * Hbase related operation example */ public class HbaseUtils { public static void main( String[] args ) { try { // createTable(); // putData (); // getData(); // createNamespace(); // createTableUseNamespace(); deleteData(); } catch (Exception e) { e.printStackTrace (); } } public static void createNamespace() throws Exception { Connection conn = getConnection(); Admin admin = conn.getAdmin(); NamespaceDescriptor descriptor = NamespaceDescriptor.create("ajbzns").build(); admin.createNamespace(descriptor); admin.close(); } public static void deleteData() throws Exception { Table table = getTable("AJ_RECORD"); Delete delete = new Delete("r000001".getBytes()); table.delete(delete ); table.close(); } public static void getData() throws Exception { Table table = getTable("AJ_RECORD"); Get get = new Get("r000001".getBytes()); Result result = table.get(get); /*byte[] byteVals = result.getValue("bztag".getBytes(), "afdz".getBytes()); System.out.println(new String(byteVals));*/ for (Cell cell : result.rawCells()) { System.out.print(new String(CellUtil.cloneQualifier(cell)) + ":"); System.out.println(new String(CellUtil.cloneValue(cell))); } table.close(); } public static void putData() throws Exception { Table table = getTable("AJ_RECORD"); Put put = new Put("r000001".getBytes()); put.addColumn("bztag".getBytes(), "afdz".getBytes(), "Shenzhen Nanshan District Taoyuan Metro Station".getBytes()); put.addColumn("bztag".getBytes(), "dqwp".getBytes(), "苹果手机".getBytes()); put.addColumn("baseinfo".getBytes(), "ajbh".getBytes(), "A4403053400002017080500003".getBytes()); put.addColumn("baseinfo".getBytes(), "ajmc".getBytes(), "苹果手机***".getBytes()); table.put(put); table.close(); } public static Table getTable(String tableName) throws Exception { Connection conn = getConnection(); Table table = conn.getTable(TableName.valueOf(tableName)); return table; } public static Connection getConnection() throws IOException { // create config Configuration config = HBaseConfiguration.create(); config.addResource("hbase-site.xml"); Connection conn = ConnectionFactory.createConnection(config); return conn; } public static void createTable() throws Exception { Connection conn = getConnection(); // get a admin from connection Admin admin = conn.getAdmin(); TableName ajbzTable = TableName.valueOf("AJ_RECORD"); boolean exist = admin.tableExists(ajbzTable); // Check if the table exists if (exist) { admin.disableTable(ajbzTable); admin.deleteTable(ajbzTable); } HTableDescriptor desc = new HTableDescriptor(ajbzTable); desc.addFamily(new HColumnDescriptor("bztag")); desc.addFamily(new HColumnDescriptor("baseinfo")); admin.createTable(desc); admin.close(); } public static void createTableUseNamespace() throws Exception { Connection conn = getConnection(); // get a admin from connection Admin admin = conn.getAdmin(); TableName ajbzTable = TableName.valueOf("ajbzns", "AJ_RECORD_BANK"); boolean exist = admin.tableExists(ajbzTable); // Check if the table exists if (exist) { admin.disableTable(ajbzTable); admin.deleteTable(ajbzTable); } HTableDescriptor desc = new HTableDescriptor(ajbzTable); desc.addFamily(new HColumnDescriptor("bztag")); desc.addFamily(new HColumnDescriptor("baseinfo")); admin.createTable(desc); admin.close(); } }
In addition to referencing the POM file below, you also need to import the hbase-site.xml file in the project, otherwise you need to specify the zk address in the config variable or in the environment variable.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xiva.cloud.study</groupId> <artifactId>hbase</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>hbase</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <hadoop.version>2.7.1</hadoop.version> </properties> <dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.7</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>