Hbase的常用Api使用操作

package sl;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

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.NamespaceDescriptor.Builder;
import org.apache.hadoop.hbase.TableDescriptors;
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.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;

public class TheApi_Hbase
{
	public static void main(String[] args)
	{
		
	}
	
	//创建namespace
	public void addNamespace() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Admin admin = conn.getAdmin();
		Builder builder = NamespaceDescriptor.create("SpaceName");
		NamespaceDescriptor namespaceDescriptor = builder.build();
		admin.createNamespace(namespaceDescriptor);	
		admin.close();
		conn.close();
	}
	//查看所有表
	public void lookAllTab() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Admin admin = conn.getAdmin();
		TableName[] listTableNames = admin.listTableNames();
		for (TableName tableName : listTableNames)
		{
			System.out.println(tableName.toString());
		}
		admin.close();
		conn.close();
	}
	//删除命名空间
	public void delNameSpace() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Admin admin = conn.getAdmin();
		admin.deleteNamespace("nameSpace");
		admin.close();
		conn.close();	
	}
	//创建表
	public void createTable() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Admin admin = conn.getAdmin();
		HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("TabName"));
		HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(Bytes.toBytes("cfName"));
		HColumnDescriptor hColumnDescriptor2 = new HColumnDescriptor(Bytes.toBytes("cfName2"));
		tableDescriptor.addFamily(hColumnDescriptor);
		tableDescriptor.addFamily(hColumnDescriptor2);
		admin.createTable(tableDescriptor);
		admin.close();
		conn.close();
	}
	//删除表
	public void delTable() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Admin admin = conn.getAdmin();
		admin.disableTable(TableName.valueOf("tabName"));
		admin.deleteTable(TableName.valueOf("tabName"));
		admin.close();
		conn.close();
	}
	//增加列族
	public void addFamily() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("tabName"));
		HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(Bytes.toBytes("cfName"));
		tableDescriptor.modifyFamily(hColumnDescriptor);
		conn.close();
	}
	//增加数据
	public void addData() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Table table = conn.getTable(TableName.valueOf("tabName"));
		Put put = new Put(Bytes.toBytes("rowKey"));
		put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value"));
		table.put(put);//或者循环创建多个put,直接table添加put集合
	}
	//删除数据
	public void delData() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Table table = conn.getTable(TableName.valueOf("tabName"));
		Delete delete = new Delete("rk".getBytes());
		table.delete(delete);//或者删除一个delete对象组成的集合	
	}
	//获取数据
	public void getData() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Table table = conn.getTable(TableName.valueOf("tabName"));
		Get get = new Get("rk".getBytes());
		Result result = table.get(get);//一行数据就是一个result
		List<Cell> cells = result.listCells();
		for (Cell cell : cells)
		{
			String rk = CellUtil.cloneRow(cell).toString();
		}
	}
	//扫描获取数据
	public void getDatas() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Table table = conn.getTable(TableName.valueOf("tabName"));
		Scan scan = new Scan("startRow".getBytes(), "stopRow".getBytes());
		ResultScanner scanner = table.getScanner(scan);//获得扫描结果的对象
		Iterator<Result> iterator = scanner.iterator();//获取迭代器
		while(iterator.hasNext())
		{
			Result result = iterator.next();
			List<Cell> cells = result.listCells();	
			if(cells.size()!=0 && cells!= null)
			{
				for (Cell cell : cells)
				{
					String rk = CellUtil.cloneRow(cell).toString();
					System.out.println(rk);
				}
			}
		}
		table.close();
		conn.close();
	}
	//拆分表
	public void splitTable() throws IOException
	{
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");
		Connection conn = ConnectionFactory.createConnection(conf);
		Admin admin = conn.getAdmin();
		admin.split(TableName.valueOf("tableName"));
		admin.close();
		conn.close();	
	}
	
}

PS:使用maven导入源码真的很爽,,,,根本停不下来…

猜你喜欢

转载自blog.csdn.net/xydxsl/article/details/88757427