package com.hadooparchitecturebook.frauddetection; import com.hadooparchitecturebook.frauddetection.model.HBaseTableMetaModel; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; /** * Created by ted.malaska on 1/18/15. */ public class CreateTables { public static void main(String[] args) throws IOException { Configuration config = HBaseConfiguration.create(); executeCreateTables(config); } public static void executeCreateTables(Configuration config) throws IOException { HBaseAdmin admin = new HBaseAdmin(config); createProfileCacheTable(admin); createValidationRuleTable(admin); admin.close(); } private static void createValidationRuleTable(HBaseAdmin admin) throws IOException { HTableDescriptor tableDescriptor = new HTableDescriptor(HBaseTableMetaModel.validationRulesTableName); HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(HBaseTableMetaModel.validationRulesColumnFamily); hColumnDescriptor.setMaxVersions(1); tableDescriptor.addFamily(hColumnDescriptor); tableDescriptor.setValue(tableDescriptor.SPLIT_POLICY, DisabledRegionSplitPolicy.class.getName()); admin.createTable(tableDescriptor); } private static void createProfileCacheTable(HBaseAdmin admin) throws IOException { HTableDescriptor tableDescriptor = new HTableDescriptor(HBaseTableMetaModel.profileCacheTableName); HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(HBaseTableMetaModel.profileCacheColumnFamily); hColumnDescriptor.setMaxVersions(1); tableDescriptor.addFamily(hColumnDescriptor); tableDescriptor.setValue(tableDescriptor.SPLIT_POLICY, DisabledRegionSplitPolicy.class.getName()); byte[][] splitKeys = new byte[HBaseTableMetaModel.profileCacheNumberOfProfileCacheSalts][]; for (int i = 0; i < HBaseTableMetaModel.profileCacheNumberOfProfileCacheSalts; i++) { char salt = (char)('A' + i); splitKeys[i] = Bytes.toBytes(salt); } admin.createTable(tableDescriptor, splitKeys); } }