6.1.4、Hbase

6.1.4、Hbase,第1张

6.1.4、Hbase 1、导包-客户端


    org.apache.hbase
    hbase-client
    1.4.6

2、连接Hbase
//连接hbase,主要是连接zookeeper
@Before
public void getConn()throws Exception{
    Configuration configuration = HbaseConfiguration.create();
    //获取集群地址
    configuration.set("hbase.zookeeper.quorum","master,node1,node2");
    //创建连接
    Connection connection = ConnectionFactory.createConnection(configuration);
}
getAdmin对表结构进行 *** 作,getTable对表数据进行 *** 作
3、创建表—站在库的角度去创建表,获取admin
//创建一张表
@Test
public void getCreateTable()throws Exception{
    //获取库,站在库的角度去创建表
    Admin admin = connection.getAdmin();
    //创建表传入的HTableDescriptor对象,参数为表名
    HTableDescriptor test_api = new HTableDescriptor(TableName.valueOf("test_api"));
    //创建表的列簇
    HColumnDescriptor info = new HColumnDescriptor("info");
    //设置列簇的属性
    info.setMaxVersions(5);
    //添加列簇
    test_api.addFamily(info);
    admin.createTable(test_api);
    connection.close();
}
4、删除表
//删除表
@Test
public void getDelete() throws Exception {
    Admin admin = connection.getAdmin();
    if (admin.tableExists(TableName.valueOf("test_api"))) {
        admin.disableTable(TableName.valueOf("test_api"));
        admin.deleteTable(TableName.valueOf("test_api"));
    } else {
        System.out.println("表不存在");
    }
    connection.close();
}
5、put插入数据
//插入数据
@Test
public void getPut()throws Exception{
    //获取表 *** 作
    Table test_api = connection.getTable(TableName.valueOf("test_api"));
    //创建一个put对象,给定row_key,以字节数组的形式
    Put put = new Put("1001".getBytes());
    //指定put数据的列簇,列,数据
    put.addColumn("info".getBytes(),"name".getBytes(),"dccc".getBytes());
    //put数据,需要传入一个put对象
    test_api.put(put);
    connection.close();
}
6、get获取数据
//get获取数据
@Test
public void getGet()throws Exception{
    Table test_api = connection.getTable(TableName.valueOf("test_api"));
    Get get = new Get("1001".getBytes());
    //get获取数据,需要传入一个get对象
    Result result = test_api.get(get);
    //结果接收
    byte[] row = result.getRow();
    String row1 = Bytes.toString(row);
    byte[] value = result.getValue("info".getBytes(), "name".getBytes());
    String name = Bytes.toString(value);
    System.out.println(row1+name);
    connection.close();
}
7、alter修改表结构数据
//alter修改表数据结构
@Test
public void getAlter() throws Exception {
    Admin admin = connection.getAdmin();
    //获取原有表的一个HTableDescriptor对象
    HTableDescriptor tableDescriptor = admin.getTableDescriptor(TableName.valueOf("test_api"));
    //获取列簇集合
    HColumnDescriptor[] columnFamilies = tableDescriptor.getColumnFamilies();
    //获取列簇
    for (HColumnDescriptor columnFamily : columnFamilies) {
        //获取列簇名称
        String nameAsString = columnFamily.getNameAsString();
        if ("info".equals(nameAsString)) {
            //获取列簇,设置更改
            columnFamily.setTimeToLive(10000);
        }
    }
    //修改表结构属性,传入表名和一个HTableDescriptor对象
    admin.modifyTable(TableName.valueOf("test_api"), tableDescriptor);
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3982468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存