栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

6.1.4、Hbase

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332631.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号