public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length < 2) { System.out.println("Caching and Versions not specified"); System.exit(-1); } int caching = -1; int versions = -1; try { caching = Integer.parseInt(otherArgs[0]); } catch (NumberFormatException nfe) { caching = DEFAULT_CACHING; } try { versions = Integer.parseInt(otherArgs[1]); } catch (NumberFormatException nfe) { versions = DEFAULT_VERSIONS; } String[] tableName = conf.getStrings(TABLE_NAME_TO_INDEX); if (tableName == null) { System.out.println( "Wrong usage. Usage is pass the table -Dindex.tablename='table1' " + "-Dtable.columns.index='IDX1=>cf1:[q1->datatype& length],[q2]," + "[q3];cf2:[q1->datatype&length],[q2->datatype&length],[q3->datatype& lenght]#IDX2=>cf1:q5,q5'"); System.out.println("The format used here is: "); System.out.println("IDX1 - Index name"); System.out.println("cf1 - Columnfamilyname"); System.out.println("q1 - qualifier"); System.out.println("datatype - datatype (Int, String, Double, Float)"); System.out.println("length - length of the value"); System.out.println("The columnfamily should be seperated by ';'"); System.out.println( "The qualifier and the datatype and its length should be enclosed in '[]'." + " The qualifier details are specified using '->' following qualifer name and the details are seperated by '&'"); System.out.println("If the qualifier details are not specified default values are used."); System.out.println("# is used to seperate between two index details"); System.out.println("Pass the scanner caching and maxversions as arguments."); System.exit(-1); } String tableNameToIndex = tableName[0]; IndexUtils.createIndexTable(tableNameToIndex, conf, cfs); createMapReduceJob(tableNameToIndex, conf, caching, versions); }