Hi Kyle, I this it's possible. I have already done that between 0.94.1 and 0.94.3.
JM 2013/1/29, Kyle Lin <[email protected]>: > Hello JM > > If I import 0.94.4 jar file on Client side for calling getCoprocessors > to get list from server of old version(0.94.0), Is it possible? > > Kyle > > 2013/1/28 Jean-Marc Spaggiari <[email protected]> > >> Hi Kyle, >> >> If you are not running a production cluster, you might think about >> getting the last 0.94.4 source code, apply HBASE-7654 and deploy it. >> That way you can use getCoprocessors which will send you the list you >> the list you are looking for... >> >> JM >> >> 2013/1/28, Kyle Lin <[email protected]>: >> > Hi JM >> > >> > I saw the source code of hasCoprocessor, and notice this CONTANT. >> > Thanks for your hint. >> > >> > Kyle >> > >> > 2013/1/24 Jean-Marc Spaggiari <[email protected]> >> > >> >> Hi Kyle, >> >> >> >> This will give you all the attributs of the table, not just the >> >> coprocessors, so don't forget to parse they key using >> >> CP_HTD_ATTR_KEY_PATTERN ... >> >> >> >> I will add in my ToDo to add a List<> getCoprocessors() method in >> >> HTableInterface or HTableDescriptor... >> >> >> >> JM >> >> >> >> 2013/1/23, Kyle Lin <[email protected]>: >> >> > Hello JM >> >> > >> >> > It really works! Thanks a lot. >> >> > >> >> > Hello Jack >> >> > >> >> > For each table, it needs to use htable.getTableDescriptor(). >> >> > >> >> > hbaseAdmin.getTableDescriptor only gets -ROOT- and .META. >> >> > >> >> > So I use the code as follows, >> >> > >> >> > HTable htable = new HTable(config, tableName); >> >> > HTableDescriptor htableDesc = *htable.getTableDescriptor()*; >> >> > Map<ImmutableBytesWritable, ImmutableBytesWritable> maps = >> >> > htableDesc.getValues(); >> >> > Set<Entry<ImmutableBytesWritable, ImmutableBytesWritable>> sets = >> >> > maps.entrySet(); >> >> > for (Map.Entry<ImmutableBytesWritable, ImmutableBytesWritable> >> entrySet >> >> > : >> >> > sets) { >> >> > String stringKey = Bytes.toString(entrySet.getKey().get()); >> >> > String stringValue = Bytes.toString(entrySet.getValue().get()); >> >> > System.out.println("key:" + stringKey + ", value:" + stringValue); >> >> > } >> >> > htable.close(); >> >> > >> >> > Kyle >> >> > >> >> > 2013/1/24 jack <[email protected]> >> >> > >> >> >> Hi, Kyle >> >> >> >> >> >> Configuration config = HBaseConfiguration.create(); >> >> >> config.set("hbase.zookeeper.quorum", "host3"); >> >> >> config.set("hbase.zookeeper.property.clientPort", "2181"); >> >> >> >> >> >> config.set("fs.default.name", "hdfs://host3:9000"); >> >> >> config.set("mapred.job.tracker", "hdfs://host3:9001"); >> >> >> >> >> >> HBaseAdmin hbaseAdmin = new HBaseAdmin(config); >> >> >> >> >> >> HTableDescriptor htableDescriptor = >> >> >> hbaseAdmin.getTableDescriptor(Bytes.toBytes("table21")); >> >> >> >> >> >> Map<ImmutableBytesWritable, ImmutableBytesWritable> maps = >> >> >> htableDescriptor.getValues(); >> >> >> Set<Entry<ImmutableBytesWritable, ImmutableBytesWritable>> >> >> >> sets >> >> = >> >> >> maps.entrySet(); >> >> >> Iterator<Entry<ImmutableBytesWritable, >> >> >> ImmutableBytesWritable>> >> >> >> it >> >> >> = sets.iterator(); >> >> >> while(it.hasNext()){ >> >> >> Entry<ImmutableBytesWritable, >> >> >> ImmutableBytesWritable> >> >> >> keys = it.next(); >> >> >> ImmutableBytesWritable ibwKey = keys.getKey(); >> >> >> ImmutableBytesWritable ibwValue = keys.getValue(); >> >> >> String stringKey = Bytes.toString(ibwKey.get()); >> >> >> String stringValue = >> >> >> Bytes.toString(ibwValue.get()); >> >> >> System.out.println(stringKey + " " + >> >> >> stringValue); >> >> >> } >> >> >> hbaseAdmin.close(); >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ________________________________ >> >> >> 寄件者: Kyle Lin <[email protected]> >> >> >> 收件者: [email protected] >> >> >> 寄件日期: 2013/1/23 (週三) 4:18 PM >> >> >> 主旨: How to get coprocessor list by client API >> >> >> >> >> >> Hi, Everyone >> >> >> >> >> >> I need to know What coprocessors registered in a HTable. But, >> >> >> in >> >> >> Class >> >> >> HTableDescriptor, I can only find >> >> >> *addCoprocessor< >> >> >> >> >> >> http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HTableDescriptor.html#addCoprocessor(java.lang.String) >> >> >> > >> >> >> *, *hasCoprocessor< >> >> >> >> >> >> http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HTableDescriptor.html#hasCoprocessor(java.lang.String) >> >> >> > >> >> >> * ..etc. How can I use Client API to get the coprocessor >> >> >> information >> >> just >> >> >> like Typing "describe table_name" in HBase Shell as follows? >> >> >> >> >> >> >> >> >> hbase(main):002:0> describe 'table21' >> >> >> DESCRIPTION >> >> >> ENABLED >> >> >> {NAME => 'table21', *coprocessor$1 => >> >> >> 'hdfs://host3:9000/sumCoprocessor.jar|idv.jack.endpoint true >> >> >> * >> >> >> * .SumDataEndpoint||'*, FAMILIES => [{NAME => 'cf', >> >> >> DATA_BLOCK_ENCODING >> >> >> => >> >> >> 'NONE', BLOOMFILTER >> >> >> => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION >> >> >> => >> >> >> 'NONE', MIN_VERSIONS => >> >> >> '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', >> >> >> BLOCKSIZE >> >> >> => >> >> >> '65536', IN_MEMORY => >> >> >> 'false', ENCODE_ON_DISK => 'true', BLOCKCACHE => 'true'}]} >> >> >> >> >> >> 1 row(s) in 0.0210 seconds >> >> >> >> >> >> Kyle >> >> >> >> >> > >> >> >> > >> >
