public void createTable(HTableDescriptor hTableDescriptor, byte [][] splitKeys) throws IOException { if (!isMasterRunning()) { throw new MasterNotRunningException(); } HRegionInfo [] newRegions = getHRegionInfos(hTableDescriptor, splitKeys); checkInitialized(); if (cpHost != null) { cpHost.preCreateTable(hTableDescriptor, newRegions); } this.executorService.submit(new CreateTableHandler(this, this.fileSystemManager, this.serverManager, hTableDescriptor, conf, newRegions, catalogTracker, assignmentManager)); if (cpHost != null) { cpHost.postCreateTable(hTableDescriptor, newRegions); } }
@Override public void createTable(HTableDescriptor hTableDescriptor, byte[][] splitKeys) throws IOException { if (isStopped()) { throw new MasterNotRunningException(); } String namespace = hTableDescriptor.getTableName().getNamespaceAsString(); ensureNamespaceExists(namespace); HRegionInfo[] newRegions = getHRegionInfos(hTableDescriptor, splitKeys); checkInitialized(); sanityCheckTableDescriptor(hTableDescriptor); if (cpHost != null) { cpHost.preCreateTable(hTableDescriptor, newRegions); } LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor); this.service.submit(new CreateTableHandler(this, this.fileSystemManager, hTableDescriptor, conf, newRegions, this).prepare()); if (cpHost != null) { cpHost.postCreateTable(hTableDescriptor, newRegions); } }
@Override public void createTable(HTableDescriptor hTableDescriptor, byte [][] splitKeys) throws IOException { if (!isMasterRunning()) { throw new MasterNotRunningException(); } String namespace = hTableDescriptor.getTableName().getNamespaceAsString(); getNamespaceDescriptor(namespace); // ensure namespace exists HRegionInfo[] newRegions = getHRegionInfos(hTableDescriptor, splitKeys); checkInitialized(); checkCompression(hTableDescriptor); if (cpHost != null) { cpHost.preCreateTable(hTableDescriptor, newRegions); } LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor); this.executorService.submit(new CreateTableHandler(this, this.fileSystemManager, hTableDescriptor, conf, newRegions, this).prepare()); if (cpHost != null) { cpHost.postCreateTable(hTableDescriptor, newRegions); } }
public void createTable(HTableDescriptor hTableDescriptor, byte [][] splitKeys) throws IOException { if (!isMasterRunning()) { throw new MasterNotRunningException(); } HRegionInfo [] newRegions = getHRegionInfos(hTableDescriptor, splitKeys); if (cpHost != null) { cpHost.preCreateTable(hTableDescriptor, newRegions); } this.executorService.submit(new CreateTableHandler(this, this.fileSystemManager, this.serverManager, hTableDescriptor, conf, newRegions, catalogTracker, assignmentManager)); if (cpHost != null) { cpHost.postCreateTable(hTableDescriptor, newRegions); } }
@Override public void createTable(HTableDescriptor hTableDescriptor, byte [][] splitKeys) throws IOException { if (!isMasterRunning()) { throw new MasterNotRunningException(); } HRegionInfo [] newRegions = getHRegionInfos(hTableDescriptor, splitKeys); checkInitialized(); checkCompression(hTableDescriptor); if (cpHost != null) { cpHost.preCreateTable(hTableDescriptor, newRegions); } this.executorService.submit(new CreateTableHandler(this, this.fileSystemManager, hTableDescriptor, conf, newRegions, catalogTracker, assignmentManager)); if (cpHost != null) { cpHost.postCreateTable(hTableDescriptor, newRegions); } }
private void createNamespaceTable(MasterServices masterServices) throws IOException { HRegionInfo newRegions[] = new HRegionInfo[]{ new HRegionInfo(HTableDescriptor.NAMESPACE_TABLEDESC.getTableName(), null, null)}; //we need to create the table this way to bypass //checkInitialized masterServices.getExecutorService() .submit(new CreateTableHandler(masterServices, masterServices.getMasterFileSystem(), HTableDescriptor.NAMESPACE_TABLEDESC, masterServices.getConfiguration(), newRegions, masterServices).prepare()); }
/** * Shen Li: add parameter replicaNum */ @Override public void createTable(HTableDescriptor hTableDescriptor, byte [][] splitKeys, int replicaNum) throws IOException { if (isStopped()) { throw new MasterNotRunningException(); } String namespace = hTableDescriptor.getTableName().getNamespaceAsString(); getNamespaceDescriptor(namespace); // ensure namespace exists // Shen Li: add parameter replicaNum HRegionInfo[] newRegions = getHRegionInfos(hTableDescriptor, splitKeys, replicaNum); // Shen Li: testing for (HRegionInfo region: newRegions) { LOG.info("Shen Li: creating region " + region.getRegionNameAsString() + ", startkey = " + bytes2long(region.getStartKey()) + ", endkey = " + bytes2long(region.getEndKey()) + ", splitKeyNum = " + (region.getAllKeys().length - 2)); } checkInitialized(); sanityCheckTableDescriptor(hTableDescriptor); if (cpHost != null) { cpHost.preCreateTable(hTableDescriptor, newRegions); } LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor); this.service.submit(new CreateTableHandler(this, this.fileSystemManager, hTableDescriptor, conf, newRegions, this).prepare()); if (cpHost != null) { cpHost.postCreateTable(hTableDescriptor, newRegions); } }
/** * @param IndexedHTableDescriptor iDesc * @param HRegionInfo [] regions * @param MasterServices master * @throws NotAllMetaRegionsOnlineException * @throws IOException */ private void createSecondaryIndexTable(IndexedHTableDescriptor iDesc, byte[][] splitKeys, MasterServices master, boolean disableTable) throws NotAllMetaRegionsOnlineException, IOException { String indexTableName = IndexUtils.getIndexTableName(iDesc.getNameAsString()); LOG.info("Creating secondary index table " + indexTableName + " for table " + iDesc.getNameAsString() + '.'); HTableDescriptor indexTableDesc = new HTableDescriptor(indexTableName); HColumnDescriptor columnDescriptor = new HColumnDescriptor(Constants.IDX_COL_FAMILY); String dataBlockEncodingAlgo = master.getConfiguration().get("index.data.block.encoding.algo", "NONE"); DataBlockEncoding[] values = DataBlockEncoding.values(); for (DataBlockEncoding dataBlockEncoding : values) { if (dataBlockEncoding.toString().equals(dataBlockEncodingAlgo)) { columnDescriptor.setDataBlockEncoding(dataBlockEncoding); } } indexTableDesc.addFamily(columnDescriptor); indexTableDesc.setValue(HTableDescriptor.SPLIT_POLICY, ConstantSizeRegionSplitPolicy.class.getName()); indexTableDesc.setMaxFileSize(Long.MAX_VALUE); LOG.info("Setting the split policy for the Index Table " + indexTableName + " as ConstantSizeRegionSplitPolicy with maxFileSize as " + Long.MAX_VALUE + '.'); HRegionInfo[] newRegions = getHRegionInfos(indexTableDesc, splitKeys); new CreateTableHandler(master, master.getMasterFileSystem(), master.getServerManager(), indexTableDesc, master.getConfiguration(), newRegions, master.getCatalogTracker(), master.getAssignmentManager()).process(); // Disable the index table so that when we enable the main table both can be enabled if (disableTable) { new DisableTableHandler(master, Bytes.toBytes(indexTableName), master.getCatalogTracker(), master.getAssignmentManager(), false).process(); } LOG.info("Created secondary index table " + indexTableName + " for table " + iDesc.getNameAsString() + '.'); }
/** * @param HTableDescriptor desc * @param HRegionInfo [] regions * @param MasterServices master * @throws NotAllMetaRegionsOnlineException * @throws IOException */ private void createSecondaryIndexTable(HTableDescriptor desc, byte[][] splitKeys, MasterServices master, boolean disableTable) throws NotAllMetaRegionsOnlineException, IOException { TableName indexTableName = TableName.valueOf(IndexUtils.getIndexTableName(desc.getNameAsString())); LOG.info("Creating secondary index table " + indexTableName + " for table " + desc.getNameAsString() + '.'); HTableDescriptor indexTableDesc = new HTableDescriptor(indexTableName); HColumnDescriptor columnDescriptor = new HColumnDescriptor(Constants.IDX_COL_FAMILY); String dataBlockEncodingAlgo = master.getConfiguration().get("index.data.block.encoding.algo", "NONE"); DataBlockEncoding[] values = DataBlockEncoding.values(); for (DataBlockEncoding dataBlockEncoding : values) { if (dataBlockEncoding.toString().equals(dataBlockEncodingAlgo)) { columnDescriptor.setDataBlockEncoding(dataBlockEncoding); } } // TODO read this data from a config file?? columnDescriptor.setBlocksize(8 * 1024);// 8KB indexTableDesc.addFamily(columnDescriptor); indexTableDesc.setValue(HTableDescriptor.SPLIT_POLICY, IndexRegionSplitPolicy.class.getName()); LOG.info("Setting the split policy for the Index Table " + indexTableName + " as " + IndexRegionSplitPolicy.class.getName() + '.'); HRegionInfo[] newRegions = getHRegionInfos(indexTableDesc, splitKeys); CreateTableHandler tableHandler = new CreateTableHandler(master, master.getMasterFileSystem(), indexTableDesc, master.getConfiguration(), newRegions, master); tableHandler.prepare(); tableHandler.process(); // Disable the index table so that when we enable the main table both can be enabled if (disableTable) { new DisableTableHandler(master, indexTableName, master.getCatalogTracker(), master.getAssignmentManager(), master.getTableLockManager(), false).prepare().process(); } LOG.info("Created secondary index table " + indexTableName + " for table " + desc.getNameAsString() + '.'); }