package com.bytedance.hbase.example;
import org.apache.hadoop.hbase.thrift2.generated.TColumn;
import org.apache.hadoop.hbase.thrift2.generated.TColumnValue;
import org.apache.hadoop.hbase.thrift2.generated.TGet;
import org.apache.hadoop.hbase.thrift2.generated.THBaseService;
import org.apache.hadoop.hbase.thrift2.generated.TPut;
import org.apache.hadoop.hbase.thrift2.generated.TResult;
import org.apache.hadoop.hbase.thrift2.generated.TScan;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.layered.TFramedTransport;
import java.nio.ByteBuffer;
import java.util.Arrays;
public class HBaseThriftExample {
public static void main(String args[]) throws Exception{
TSocket socket = new TSocket("${HBase高可用Thrift连接地址}", ${端口号});
TTransport transport = new TFramedTransport(socket);
TProtocol protocol = new TBinaryProtocol(transport);
THBaseService.Iface client = new THBaseService.Client(protocol);
ByteBuffer table = ByteBuffer.wrap(${"table name"}.getBytes());
ByteBuffer row = ByteBuffer.wrap(${"row name"}.getBytes());
ByteBuffer family = ByteBuffer.wrap(${"columnfamily name"}.getBytes());
ByteBuffer qualifier = ByteBuffer.wrap(${"qualifier name"}.getBytes());
ByteBuffer value = ByteBuffer.wrap(${"column value"}.getBytes());
System.out.println("---put or update a key---");
TColumnValue colVal = new TColumnValue(family, qualifier, value);
put.setColumnValues(Arrays.asList(colVal));
System.out.println("---get a row---");
TColumn col = new TColumn()
.setQualifier(qualifier);
get.setColumns(Arrays.asList(col));
TResult result = client.get(table, get);
result.getColumnValues().forEach(c -> {
System.out.println(new String(result.getRow()) + " " + new String(c.getFamily()) + "_" +
new String(c.getQualifier()) + ":" + new String(c.getValue()));
System.out.println("---scan a table---");
TScan scan = new TScan();
List<TResult> resultList = client.getScannerResults(table, scan, 2);
resultList.forEach(r -> r.getColumnValues().forEach(c -> {
System.out.println(new String(r.getRow()) + " " + new String(c.getFamily()) + "_" +
new String(c.getQualifier()) + ":" + new String(c.getValue()));