每日日报--Hbase的学习(4)

完成内容:

1.Hbase的API

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

public class TestAPI {
public static Connection conf=null;

//判断表是否存在
public static boolean isTableExist(String tableName) throws MasterNotRunningException, ZooKeeperConnectionException, IOException{
boolean exist=false;
//获取配置信息
HBaseConfiguration hBaseConfiguration=new HBaseConfiguration();
hBaseConfiguration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104");
// Configuration configuration=HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104");
//获取管理员信息
// HBaseAdmin admin=new HBaseAdmin(hBaseConfiguration);
Connection connection= ConnectionFactory.createConnection(configuration);
Admin admin=connection.getAdmin();
//判断是否存在
// exist=admin.tableExists(tableName);
// admin.close();
exist=admin.tableExists(TableName.valueOf(tableName));
connection.close();
return exist;
}
//向表里插入数据
public static void addRowData(String tableName, String rowKey, String columnFamily, String
column, String value) throws IOException{
Configuration configuration=HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104");
Connection connection= ConnectionFactory.createConnection(configuration);
//创建HTable对象
Table hTable = connection.getTable(TableName.valueOf(tableName));
//向表中插入数据
Put put = new Put(Bytes.toBytes(rowKey));
//向Put对象中组装数据
put.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(value));
hTable.put(put);
hTable.close();
System.out.println("插入数据成功");
connection.close();
}
//从表里获取全部数据
public static void getAllRows(String tableName) throws IOException{
Configuration configuration=HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104");
Connection connection= ConnectionFactory.createConnection(configuration);
Table hTable = connection.getTable(TableName.valueOf(tableName));
//得到用于扫描region的对象
Scan scan = new Scan();
//使用HTable得到resultcanner实现类的对象
ResultScanner resultScanner = hTable.getScanner(scan);
for(Result result : resultScanner){
Cell[] cells = result.rawCells();
for(Cell cell : cells){
//得到rowkey
System.out.println("行键:" + Bytes.toString(CellUtil.cloneRow(cell)));
//得到列族
System.out.println("列族" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("值:" + Bytes.toString(CellUtil.cloneValue(cell)));
}
}
connection.close();
}
//获取某一行的数据
public static void getRow(String tableName, String rowKey) throws IOException{
Configuration configuration=HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum","Hadoop102,Hadoop103,Hadoop104");
Connection connection= ConnectionFactory.createConnection(configuration);
Table table = connection.getTable(TableName.valueOf(tableName));
Get get = new Get(Bytes.toBytes(rowKey));
//get.setMaxVersions();显示所有版本
//get.setTimeStamp();显示指定时间戳的版本
Result result = table.get(get);
for(Cell cell : result.rawCells()){
System.out.println("行键:" + Bytes.toString(result.getRow()));
System.out.println("列族" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("值:" + Bytes.toString(CellUtil.cloneValue(cell)));
System.out.println("时间戳:" + cell.getTimestamp());
}
connection.close();
}
public static void main(String[] args) {
try {
System.out.println(isTableExist("student"));
// addRowData("student","1001","info","age","23");
// getAllRows("student");
// getRow("student","1001");
} catch (IOException e) {
e.printStackTrace();
}
}
}
遇到问题:
 无
目标:继续学习hadoop
posted @ 2021-09-30 13:30  1905-1雷宇  阅读(56)  评论(0编辑  收藏  举报