package com.shujia.hbase;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Demo2Test {
private Connection connection;
@Before
public void init() {
Configuration configuration = new Configuration();
configuration.set("hbase.zookeeper.quorum","master");
try {
connection = ConnectionFactory.createConnection(configuration);
System.out.println("创建连接成功");
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void Createtable() throws IOException {
Admin admin = connection.getAdmin();
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf("test2"));
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("info".getBytes());
hColumnDescriptor.setVersions(1,10);
hTableDescriptor.addFamily(hColumnDescriptor);
admin.createTable(hTableDescriptor);
}
@Test
public void dropTable() throws Exception{
Admin admin = connection.getAdmin();
admin.disableTable(TableName.valueOf("test2"));
admin.deleteTable(TableName.valueOf("test2"));
}
@Test
public void put() throws IOException {
Table table = connection.getTable(TableName.valueOf("test2"));
Put put = new Put("001".getBytes());
put.addColumn("info".getBytes(),"name".getBytes(),"zhangsan".getBytes());
put.addColumn("info".getBytes(),"age".getBytes(),"23".getBytes());
table.put(put);
table.close();
}
@Test
public void putStudent() throws IOException {
Table table = connection.getTable(TableName.valueOf("student"));
BufferedReader br = new BufferedReader(new FileReader("data/students.txt"));
String line;
ArrayList<Put> puts = new ArrayList<Put>();
while((line=br.readLine())!=null){
String[] split = line.split(",");
String id = split[0];
String name = split[1];
String age = split[2];
String gender = split[3];
String clazz = split[4];
Put put = new Put(id.getBytes());
put.addColumn("info".getBytes(),"name".getBytes(),name.getBytes());
put.addColumn("info".getBytes(),"age".getBytes(),age.getBytes());
put.addColumn("info".getBytes(),"gender".getBytes(),gender.getBytes());
put.addColumn("info".getBytes(),"clazz".getBytes(),clazz.getBytes());
puts.add(put);
}
table.put(puts);
}
@Test
public void get() throws IOException {
Table table = connection.getTable(TableName.valueOf("student"));
Get get = new Get("1500100004".getBytes());
Result result = table.get(get);
String id = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("info".getBytes(), "name".getBytes()));
String age = Bytes.toString(result.getValue("info".getBytes(), "age".getBytes()));
String gender = Bytes.toString(result.getValue("info".getBytes(), "gender".getBytes()));
String clazz = Bytes.toString(result.getValue("info".getBytes(), "clazz".getBytes()));
System.out.println(id+"\t"+name+"\t"+age+"\t"+gender+"\t"+clazz);
}
@Test
public void scan() throws IOException {
Table table = connection.getTable(TableName.valueOf("student"));
Scan scan = new Scan();
scan.setLimit(10);
ResultScanner scanner = table.getScanner(scan);
Result result;
while((result=scanner.next())!=null){
String id = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("info".getBytes(), "name".getBytes()));
String age = Bytes.toString(result.getValue("info".getBytes(), "age".getBytes()));
String gender = Bytes.toString(result.getValue("info".getBytes(), "gender".getBytes()));
String clazz = Bytes.toString(result.getValue("info".getBytes(), "clazz".getBytes()));
System.out.println(name+"\t"+age+"\t"+gender+"\t"+clazz);
}
}
}