<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.4.4</version>
</dependency>
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.annotations.HBaseField;
import org.apache.hadoop.hbase.annotations.HBaseTable;
@HBaseTable(name = "my_table", rowKeyDataType = String.class)
public class MyDataModel {
@HBaseField
private String id;
@HBaseField(family = "data", qualifier = "name")
private String name;
@HBaseField(family = "data", qualifier = "age")
private int age;
public Put getPut() {
byte[] rowKey = Bytes.toBytes(id);
Put put = new Put(rowKey);
put.addColumn(Bytes.toBytes("data"), Bytes.toBytes("name"), Bytes.toBytes(name));
put.addColumn(Bytes.toBytes("data"), Bytes.toBytes("age"), Bytes.toBytes(age));
return put;
}
}
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.conf.Configuration;
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.io.compress.Compression.Algorithm;
import org.apache.hadoop.hbase.util.Bytes;
public class CreateTableExample {
private static final String TABLE_NAME = "my_table";
private static final String COLUMN_FAMILY = "data";
public static void main(String[] args) throws Exception {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "localhost");
config.set("hbase.zookeeper.property.clientPort", "2181");
try (Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin()) {
TableName tableName = TableName.valueOf(TABLE_NAME);
if (admin.tableExists(tableName)) {
admin.disableTable(tableName);
admin.deleteTable(tableName);
}
TableDescriptorBuilder tableBuilder = TableDescriptorBuilder.newBuilder(tableName);
ColumnFamilyDescriptor familyDescriptor = ColumnFamilyDescriptorBuilder
.newBuilder(Bytes.toBytes(COLUMN_FAMILY))
.setMaxVersions(1)
.setCompressionType(Algorithm.SNAPPY)
.build();
tableBuilder.setColumnFamily(familyDescriptor);
admin.createTable(tableBuilder.build());
}
}
}
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.util.Bytes;
public class InsertDataExample {
private static final String TABLE_NAME = "my_table";
public static void main(String[] args) throws Exception {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "localhost");
config.set("hbase.zookeeper.property.clientPort", "2181");
try (Connection connection = ConnectionFactory.createConnection(config);
Table table = connection.getTable(TableName.valueOf(TABLE_NAME))) {
MyDataModel dataModel = new MyDataModel();
dataModel.setId("1");
dataModel.setName("John Doe");
dataModel.setAge(30);
Put put = dataModel.getPut();
table.put(put);
}
}
}
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.util.Bytes;
public class GetDataExample {
private static final String TABLE_NAME = "my_table";
public static void main(String[] args) throws Exception {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "localhost");
config.set("hbase.zookeeper.property.clientPort", "2181");
try (Connection connection = ConnectionFactory.createConnection(config);
Table table = connection.getTable(TableName.valueOf(TABLE_NAME))) {
Get get = new Get(Bytes.toBytes("1"));
Result result = table.get(get);
byte[] nameBytes = result.getValue(Bytes.toBytes("data"), Bytes.toBytes("name"));
byte[] ageBytes = result.getValue(Bytes.toBytes("data"), Bytes.toBytes("age"));
String name = Bytes.toString(nameBytes);
int age = Bytes.toInt(ageBytes);
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
}