This is HBase Java test example. My repository is here (https://github.com/ebyhr/hbase-embed). I've changed log level to INFO because default log level is little noisy.
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableNotDisabledException;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
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.util.Bytes;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
class HBaseTest {
private static final HBaseTestingUtility HBASE = new HBaseTestingUtility();
private static final byte[] TABLE_NAME = Bytes.toBytes("EMPLOYEE");
private static final byte[] CF = Bytes.toBytes("cf1");
private static final List PEOPLES = Arrays.asList(
new People("山田", 20),
new People("영수", 33),
new People("John", 18)
);
@BeforeAll
static void setUp()
throws Exception
{
HBASE.startMiniZKCluster();
HBASE.startMiniCluster();
HTable table = HBASE.createTable(TABLE_NAME, CF);
for (People people : PEOPLES) {
int i = PEOPLES.indexOf(people);
String rowKey = "rowkey" + i;
Put put = new Put(Bytes.toBytes(rowKey));
put.add(CF, Bytes.toBytes("name"), Bytes.toBytes(people.name));
put.add(CF, Bytes.toBytes("age"), Bytes.toBytes(people.age));
table.put(put);
}
}
@AfterAll
static void tearDown()
throws Exception
{
HBASE.cleanupTestDir();
}
@Test
void testAccessTable()
throws IOException
{
HTable table = new HTable(HBASE.getConfiguration(), TABLE_NAME);
String rowKey = "rowkey1";
Result getResult = table.get(new Get(Bytes.toBytes(rowKey)));
assertEquals("영수", Bytes.toString(getResult.getValue(CF, Bytes.toBytes("name"))));
assertEquals(33, Bytes.toInt(getResult.getValue(CF, Bytes.toBytes("age"))));
}
@Test
void testDrop()
throws Exception
{
HTable table = HBASE.createTable(Bytes.toBytes("TMP-TABLE1"), CF);
HBaseAdmin admin = HBASE.getHBaseAdmin();
assertThrows(TableNotDisabledException.class, () -> admin.deleteTable(table.getTableName()));
admin.disableTable(table.getTableName());
admin.deleteTable(table.getTableName());
}
private static class People {
private String name;
private int age;
private People(String name, int age)
{
this.name = name;
this.age = age;
}
}
}
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableNotDisabledException;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
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.util.Bytes;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
class HBaseTest {
private static final HBaseTestingUtility HBASE = new HBaseTestingUtility();
private static final byte[] TABLE_NAME = Bytes.toBytes("EMPLOYEE");
private static final byte[] CF = Bytes.toBytes("cf1");
private static final List
new People("山田", 20),
new People("영수", 33),
new People("John", 18)
);
@BeforeAll
static void setUp()
throws Exception
{
HBASE.startMiniZKCluster();
HBASE.startMiniCluster();
HTable table = HBASE.createTable(TABLE_NAME, CF);
for (People people : PEOPLES) {
int i = PEOPLES.indexOf(people);
String rowKey = "rowkey" + i;
Put put = new Put(Bytes.toBytes(rowKey));
put.add(CF, Bytes.toBytes("name"), Bytes.toBytes(people.name));
put.add(CF, Bytes.toBytes("age"), Bytes.toBytes(people.age));
table.put(put);
}
}
@AfterAll
static void tearDown()
throws Exception
{
HBASE.cleanupTestDir();
}
@Test
void testAccessTable()
throws IOException
{
HTable table = new HTable(HBASE.getConfiguration(), TABLE_NAME);
String rowKey = "rowkey1";
Result getResult = table.get(new Get(Bytes.toBytes(rowKey)));
assertEquals("영수", Bytes.toString(getResult.getValue(CF, Bytes.toBytes("name"))));
assertEquals(33, Bytes.toInt(getResult.getValue(CF, Bytes.toBytes("age"))));
}
@Test
void testDrop()
throws Exception
{
HTable table = HBASE.createTable(Bytes.toBytes("TMP-TABLE1"), CF);
HBaseAdmin admin = HBASE.getHBaseAdmin();
assertThrows(TableNotDisabledException.class, () -> admin.deleteTable(table.getTableName()));
admin.disableTable(table.getTableName());
admin.deleteTable(table.getTableName());
}
private static class People {
private String name;
private int age;
private People(String name, int age)
{
this.name = name;
this.age = age;
}
}
}