栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hbase多版本插入java Api

Hbase多版本插入java Api

参数1,hbase连接,参数2,给定1个rowkey的列表

读取rowkey这个tableR表的rowkey,处理后,存储至tableW这个表。

tableR有多个版本,也要插入进去。注意,hbase不支持list插入(多个版本)

会以rowkey进行自动覆盖

    public static boolean threadInser(Connection hbaseConnection,ArrayList rowKeys){
        try {
            Table tableR = hbaseConnection.getTable(TableName.valueOf("0_library_token"));
            Table tableW = hbaseConnection.getTable(TableName.valueOf("test_library_token"));
            for(String row:rowKeys){
                Get get = new Get(Bytes.toBytes(row)).setMaxVersions(1111111)
                        .addColumn(Bytes.toBytes("F"), Bytes.toBytes("F"));

                Cell[] cells = tableR.get(get).rawCells();
                //List puts = new ArrayList<>();错误方式,血的教训
                for(Cell cell:cells){
                    String jsonstr = Bytes.toString(CellUtil.clonevalue(cell));
                    JSonObject jsonObject = JSONObject.parseObject(jsonstr);
                    String[] hbasePathStrs = jsonObject.getString("path").split("/");
                    String projectVersion = new StringBuffer().append(hbasePathStrs[1]).append("/").append(hbasePathStrs[3]).toString();//消耗少量内存
                    Put put = new Put(row.getBytes()); //指定rowkey
                    put.addColumn("F".getBytes(), "F".getBytes(), projectVersion.getBytes());
                    //puts.add(put);错误方式,血的教训
                    tableW.put(put);//正确方式
                }
                //tableW.put(puts);错误方式,血的教训
            }

            tableR.close();
            tableW.close();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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