Hbase之新型API使用
public static void main(String[] args) throws Exception {
Configuration conf = HBaseConfiguration.create();
// 新型API创建连接
Connection conn = ConnectionFactory.createConnection(conf);
// 获得管理admin对象
Admin admin = conn.getAdmin();
// 连接表
TableName tname = TableName.valueOf("test");
conn.getTable(tname);
// 创建表
admin.createTable(null);
// disable表
admin.disableTable(null);
// 删除表
admin.deleteTable(null);
Table table = conn.getTable(null);
// 查询
// table.get(null);
// 添加
// table.put(null);
// scan表
// ResultScanner rs=table.getScanner(null);
// for (Result result : rs) {
//
// }
}
Hbase大数据操作–使用新型API插入万及以上数据
静态声明Configuration和Connection对象
public static Configuration conf = null; public static Connection conn = null;
创建静态程序块
/** * 运行时创建静态程序块 */ static { try { // 新型API创建连接 conf = HBaseConfiguration.create(); conn = ConnectionFactory.createConnection(conf); } catch (IOException e) { e.printStackTrace(); } }
创建两个静态方法将String和int转换成byte[]
public static byte[] converBytes(String str) { return Bytes.toBytes(str); } public static byte[] converBytes(int i) { return Bytes.toBytes(i); }
创建表
/** * 创建表 * @param tname * 表名称 * @throws Exception */ public static void createTable(String name) throws Exception { // 获得admin对象 Admin admin = conn.getAdmin(); // 指定表名称 TableName tname = TableName.valueOf(name); // 判断表是否存在 if (admin.tableExists(tname)) { // 删除表 admin.disableTable(tname); admin.deleteTable(tname); } // 表描述符 HTableDescriptor htd = new HTableDescriptor(tname); // 指定字段 // 添加列族 HColumnDescriptor hcd = new HColumnDescriptor("data"); htd.addFamily(hcd); // 创建表 admin.createTable(htd); }
循环插入数据
/** * 循环插入数据 * * @param n * 插入次数 * @throws IOException */ public static void batchPut(int n) throws IOException { TableName tname = TableName.valueOf("test"); Table t = conn.getTable(tname); // 构造不同put对象添加 Put put = null; for (int i = 1; i < n; i++) { // 行,以数字递增 put = new Put(converBytes(i)); // 添加 put.addColumn(converBytes("data"), converBytes("1"), converBytes("tom" + i)); t.put(put); System.out.println(i); } t.close(); }
main函数
public static void main(String[] args) throws Exception { createTable("test"); batchPut(10000); }
- 将项目导出在主节点运行最后结果