I searched all existing hbase logs but didn't see 'Filled indices for region'
2010/3/4 Dan Washusen <d...@reactive.org> > Hi Ted, > Did you verify that all the regions came back online after re-enabling the > table? Depending on the size of the table it may time some time... > > You should see something like the following logged in the region server > logs > for each region: > > > Filled indices for region: 'ruletable,,1267641828807' with 55555555 > entries > > in 00:05:99 > > > Cheers, > Dan > > 2010/3/5 Ted Yu <yuzhih...@gmail.com> > > > 2010/3/3 Ted Yu <yuzhih...@gmail.com> > > > > > Hi, > > > I wrote a utility to add index to my table. > > > After running it, I couldn't see the rows in that table I saw before. > > > > > > hbase(main):007:0> count 'ruletable' > > > NativeException: > > org.apache.hadoop.hbase.client.NoServerForRegionException: > > > No server address listed in .META. for region ruletable,,1267641828807 > > > > > > My code follows, how do I determine the correct IdxQualifierType ? > > > > > > > > > HBaseAdmin admin = new HBaseAdmin(conf); > > > admin.disableTable(tableName); > > > System.out.println(tableName + " disabled"); > > > > > > for (int i = 1; i < otherArgs.length; i+=2) > > > { > > > String colFam = otherArgs[i]; > > > byte[] familyName = Bytes.toBytes(colFam); > > > byte[] qualifier = Bytes.toBytes(otherArgs[i+1]); > > > > > > IdxColumnDescriptor idxColumnDescriptor = new > > > IdxColumnDescriptor(familyName); > > > IdxIndexDescriptor indexDescriptor = new > > > IdxIndexDescriptor(qualifier, IdxQualifierType.CHAR_ARRAY); > > > idxColumnDescriptor.addIndexDescriptor(indexDescriptor); > > > > > > admin.modifyColumn(tableName, colFam, idxColumnDescriptor); > > > System.out.println(colFam + ":" + otherArgs[i+1] + " indexed"); > > > } > > > admin.enableTable(tableName); > > > > > > > > > > > > 2010/2/26 Ram Kulbak <ram.kul...@gmail.com> > > > > > >> You will need to use an IdxColumnDescriptor: > > >> > > >> Here's a code example for creating a table with a byte array index: > > >> > > >> HTableDescriptor tableDescriptor = new > HTableDescriptor(TABLE_NAME); > > >> IdxColumnDescriptor idxColumnFamilyDescriptor = new > > >> IdxColumnDescriptor(FAMILY_NAME); > > >> try { > > >> idxColumnFamilyDescriptor.addIndexDescriptor( > > >> new IdxIndexDescriptor(QUALIFIER_NAME, > > IdxQualifierType.BYTE_ARRAY) > > >> ); > > >> } catch (IOException e) { > > >> throw new IllegalStateException(e); > > >> } > > >> tableDescriptor.addFamily(idxColumnFamilyDescriptor); > > >> > > >> > > >> You can add several index descriptors to the same column family and > > >> you can put indexes on more than one column families. You should use > > >> IdxScan with an org.apache.hadoop.hbase.client.idx.exp.Expression set > > >> to match your query criteria. The expression may cross columns from > > >> the same or different families using ANDs and ORs. > > >> > > >> Note that several index types are supported. Current types include all > > >> basic types and BigDecimals. Char arrays are also supported. Types > > >> allow for correct range checking (for example you can quickly evaluate > > >> a scan getting all rows for which a given column has values between 42 > > >> and 314). You should make sure that columns which are indexed with a > > >> given qualifier type are actually populated with bytes matching their > > >> type, e.g. it you use IdxQualifierType.LONG make sure that you > > >> actually put values which are 8-long byte arrays which were produced > > >> in a method similar to Bytes.toBytes(long). > > >> > > >> Yoram > > >> > > >> 2010/2/27 Ted Yu <yuzhih...@gmail.com>: > > >> > Ram: > > >> > How do I specify index in HColumnDescriptor that is passed to > > >> modifyColumn() > > >> > ? > > >> > > > >> > Thanks > > >> > > > >> > 2010/2/26 Ram Kulbak <ram.kul...@gmail.com> > > >> >> > > >> >> Hi Shen, > > >> >> > > >> >> The first thing you need to verify is that you can switch to the > > >> >> IdxRegion implementation without problems. I've just checked that > the > > >> >> following steps work on the PerformanceEvaluation tables. I would > > >> >> suggest you backup your hbase production instance before attempting > > >> >> this (or create and try it out on a sandbox instance) > > >> >> > > >> >> * Stop hbase > > >> >> * Edit conf/hbase-env.sh file and add IHBASE to your classpath. > > >> >> Here's an example which assumes you don't need to add anything else > > to > > >> >> your classpath, make sure the HBASE_HOME is defined or simply > > >> >> substiute it with the full path of hbase installation directory: > > >> >> export HBASE_CLASSPATH=(`find $HBASE_HOME/contrib/indexed -name > > >> >> '*jar' | tr -s "\n" ":"`) > > >> >> > > >> >> * Edit conf/hbase-site.xml and set IdxRegion to be the region > > >> >> implementation: > > >> >> > > >> >> <property> > > >> >> <name>hbase.hregion.impl</name> > > >> >> <value>org.apache.hadoop.hbase.regionserver.IdxRegion</value> > > >> >> </property> > > >> >> > > >> >> * Propagate the configuration to all slaves > > >> >> * Start HBASE > > >> >> > > >> >> > > >> >> Next, modify the table you want to index using code similar to > this: > > >> >> > > >> >> HBaseConfiguration conf = new HBaseConfiguration(); > > >> >> > > >> >> HBaseAdmin admin = new HBaseAdmin(conf); > > >> >> admin.disableTable(TABLE_NAME); > > >> >> admin.modifyColumn(TABLE_NAME, FAMILY_NAME1, > > >> IDX_COLUMN_DESCRIPTOR1); > > >> >> ... > > >> >> admin.modifyColumn(TABLE_NAME, FAMILY_NAMEN, > > >> IDX_COLUMN_DESCRIPTORN); > > >> >> admin.enableTable(TABLE_NAME); > > >> >> > > >> >> Wait for the table to get indexed. This may take a few minutes. > Check > > >> >> the master web page and verify your index definitions appear > > correctly > > >> >> in the table description. > > >> >> > > >> >> This is it. Please let me know how it goes. > > >> >> > > >> >> Yoram > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> 2010/2/26 ChingShen <chingshenc...@gmail.com>: > > >> >> > Thanks, But I think I need the indexed HBase rather than > > >> transactional > > >> >> > HBase. > > >> >> > > > >> >> > Shen > > >> >> > > > >> >> > 2010/2/26 <y_823...@tsmc.com> > > >> >> > > > >> >> >> You can try my code to create a index in the existing table. > > >> >> >> > > >> >> >> public void AddIdx2ExistingTable(String tablename,String > > >> >> >> columnfamily,String idx_column) throws IOException { > > >> >> >> IndexedTableAdmin admin = null; > > >> >> >> admin = new IndexedTableAdmin(config); > > >> >> >> admin.addIndex(Bytes.toBytes(tablename), new > > >> >> >> IndexSpecification(idx_column, > > >> >> >> Bytes.toBytes(columnfamily+":"+idx_column))); > > >> >> >> } > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> Fleming Chiu(邱宏明) > > >> >> >> 707-6128 > > >> >> >> y_823...@tsmc.com > > >> >> >> 週一無肉日吃素救地球(Meat Free Monday Taiwan) > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> ChingShen > > >> >> >> <chingshenc...@gm To: > hbase-user > > < > > >> >> >> hbase-user@hadoop.apache.org> > > >> >> >> ail.com> cc: (bcc: > > >> >> >> Y_823910/TSMC) > > >> >> >> Subject: [Indexed > > >> HBase] > > >> >> >> Can > > >> >> >> I add index in an existing table? > > >> >> >> 2010/02/26 10:18 > > >> >> >> AM > > >> >> >> Please respond to > > >> >> >> hbase-user > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> Hi, > > >> >> >> > > >> >> >> I got http://issues.apache.org/jira/browse/HBASE-2037 that can > > >> create a > > >> >> >> new > > >> >> >> table with index, but can I add index in an existing table? > > >> >> >> Any code examples? > > >> >> >> > > >> >> >> Thanks. > > >> >> >> > > >> >> >> Shen > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> > > > --------------------------------------------------------------------------- > > >> >> >> TSMC > > >> PROPERTY > > >> >> >> This email communication (and any attachments) is proprietary > > >> >> >> information > > >> >> >> for the sole use of its > > >> >> >> intended recipient. Any unauthorized review, use or > distribution > > by > > >> >> >> anyone > > >> >> >> other than the intended > > >> >> >> recipient is strictly prohibited. If you are not the intended > > >> >> >> recipient, > > >> >> >> please notify the sender by > > >> >> >> replying to this email, and then delete this email and any > copies > > >> of > > >> >> >> it > > >> >> >> immediately. Thank you. > > >> >> >> > > >> >> >> > > >> >> >> > > >> > > > --------------------------------------------------------------------------- > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> > > > >> >> > > > >> >> > -- > > >> >> > ***************************************************** > > >> >> > Ching-Shen Chen > > >> >> > Advanced Technology Center, > > >> >> > Information & Communications Research Lab. > > >> >> > E-mail: chenchings...@itri.org.tw > > >> >> > Tel:+886-3-5915542 > > >> >> > ***************************************************** > > >> >> > > > >> > > > >> > > > >> > > > > > > > > >