@Override public void createTable(String tableName, Map<String, Object> tableConf, Map<String, Map<String, Object>> familyConfs) { try { this.initHbaseAdmin(); try { if(admin.tableExists(tableName)) { logger.error("Table already exists! name:"+tableName); return; } HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf(tableName)); if(tableConf != null ){ for(String prop : tableConf.keySet()) { MethodUtils.invokeMethod(tableDesc, prop, tableConf.get(prop)); } } for(String family : familyConfs.keySet()) { HColumnDescriptor hcd = new HColumnDescriptor(family); //默认设置数据保存在内存中以提高响应速度 //hcd.setInMemory(true); //默认不保留历史版本 hcd.setMaxVersions(1); Map<String, Object> familyConf = familyConfs.get(family); if (familyConf != null) { for(String prop : familyConf.keySet()) { MethodUtils.invokeMethod(hcd, prop, familyConf.get(prop)); } } tableDesc.addFamily(hcd); } byte[][] region=null; if("ns_spider:p_site_product".equals(tableName)){ region = this.genKeys(); }else if("ns_spider:p_product_out_param".equals(tableName)){ region = this.genKeysBak2(); }else if("ns_spider:p_product_cross".equals(tableName)){ region = this.genKeys(); }else if("ns_spider:p_std_product".equals(tableName)){ region = this.genKeys(); }else if("ns_spider:t_band_log".equals(tableName)){ region = this.genKeys(); }else if(tableName.contains("p_common_product_temp")){ region = this.genKeys(); }else if(tableName.contains("ns_spider:s_")){ region = this.genKeysBak(); } admin.createTable(tableDesc,region); logger.info("create table success! name:"+tableName); } finally { admin.close(); } } catch (Exception e) { throw new HBaseCheckException(e); } } /** * 按字节分成32 个region * * @return */ private byte[][] genKeys() { byte[][] keys = new byte[31][]; byte key = 0x08; for (int i = 0; i < 31; i++) { keys[i] = new byte[]{key}; key += 0x08; } return keys; } private byte[][] genKeysBak2() { byte[][] regions = new byte[][]{ Bytes.toBytes("1"), Bytes.toBytes("2"), Bytes.toBytes("3"), Bytes.toBytes("4"), Bytes.toBytes("5"), Bytes.toBytes("6"), Bytes.toBytes("7"), Bytes.toBytes("8"), Bytes.toBytes("9"), Bytes.toBytes("0"), }; return regions; } private byte[][] genKeysBak() { byte[][] regions = new byte[][]{ Bytes.toBytes("01"), Bytes.toBytes("02"), Bytes.toBytes("03"), Bytes.toBytes("04"), Bytes.toBytes("05"), Bytes.toBytes("06"), Bytes.toBytes("07"), Bytes.toBytes("08"), Bytes.toBytes("09"), Bytes.toBytes("0a"), Bytes.toBytes("0b"), Bytes.toBytes("0c"), Bytes.toBytes("0d"), Bytes.toBytes("0e"), Bytes.toBytes("0f"), Bytes.toBytes("10") }; return regions; }
hbase 中java 设置分区数
猜你喜欢
转载自yylcslg.iteye.com/blog/2291437
今日推荐
周排行