Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # user - How to get coprocessor list by client API


Copy link to this message
-
Re: How to get coprocessor list by client API
Kyle Lin 2013-01-28, 09:05
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
>