bq. Hbase 0.98.4 so this feature already should be there? Yes.
Drop the class containing SuffixFilter class in location specified by hbase.dynamic.jars.dir config. Then region server should be able to find it. On Fri, Apr 17, 2015 at 10:22 AM, Jeetendra Gangele <[email protected]> wrote: > I am using Hbase 0.98.4 so this feature already should be there? > problem is FilterList class(when we add this filter) not able to find the > SuffixFilter > > On 17 April 2015 at 22:47, Jeetendra Gangele <[email protected]> wrote: > > > Yes I used inside my project. This project will build the jar that jar I > > added with classpath when running the job > > > > On 17 April 2015 at 22:40, Ted Yu <[email protected]> wrote: > > > >> bq. java.io.IOException: java.lang.ClassNotFoundException: > >> com.insideview.yam.HbaseClient.SuffixFilter > >> > >> I assume you copied SuffixFilter class to your insideview project. How > did > >> you deploy the jar containing SuffixFilter to hbase cluster ? > >> See HBASE-1936 for more details where hbase.dynamic.jars.dir was > >> introduced. > >> > >> Cheers > >> > >> On Fri, Apr 17, 2015 at 9:57 AM, Jeetendra Gangele < > [email protected]> > >> wrote: > >> > >> > at java.lang.Thread.run(Thread.java:745) > >> > Caused by: java.lang.reflect.InvocationTargetException > >> > at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown > Source) > >> > at > >> > > >> > > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > >> > at java.lang.reflect.Method.invoke(Method.java:606) > >> > at > >> > > >> > > >> > org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1439) > >> > ... 8 more > >> > Caused by: > org.apache.hadoop.hbase.exceptions.DeserializationException: > >> > java.io.IOException: java.lang.ClassNotFoundException: > >> > com.insideview.yam.HbaseClient.SuffixFilter > >> > at > >> > > org.apache.hadoop.hbase.filter.FilterList.parseFrom(FilterList.java:406) > >> > ... 12 more > >> > Caused by: java.io.IOException: java.lang.ClassNotFoundException: > >> > com.insideview.yam.HbaseClient.SuffixFilter > >> > at > >> > > >> > > >> > org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1441) > >> > at > >> > > org.apache.hadoop.hbase.filter.FilterList.parseFrom(FilterList.java:403) > >> > > >> > This is the error i m getting > >> > On 17 April 2015 at 20:32, Ted Yu <[email protected]> wrote: > >> > > >> > > Here is an example > >> > > from > >> > > > >> > > >> > phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java > >> > > : > >> > > > >> > > byte[] suffix = > >> > > ByteUtil.concat(QueryConstants.SEPARATOR_BYTE_ARRAY, > >> > > SchemaUtil.getTableNameAsBytes(schemaName, tableName)); > >> > > SuffixFilter rowFilter = new SuffixFilter(suffix); > >> > > Filter filter = new FilterList(linkFilter, rowFilter); > >> > > > >> > > You can use the following method from Bytes.java (in hbase-common) > to > >> > > obtain byte[] from "12345" > >> > > > >> > > public static byte[] toBytes(String s) { > >> > > > >> > > Cheers > >> > > > >> > > On Fri, Apr 17, 2015 at 7:50 AM, Jeetendra Gangele < > >> [email protected] > >> > > > >> > > wrote: > >> > > > >> > > > filterRowKey what is these arguments? Can you please explain lets > >> say I > >> > > > have data like abcde_12345 similary way > >> > > > and I want to scan all the records ending with "12345" what > should I > >> > pass > >> > > > to this function? > >> > > > > >> > > > > >> > > > On 16 April 2015 at 20:12, Ted Yu <[email protected]> wrote: > >> > > > > >> > > > > Please take a look > >> > > > > at > >> > > > > > >> > > > > >> > > > >> > > >> > phoenix-core/src/main/java/org/apache/phoenix/coprocessor/SuffixFilter.java > >> > > > > in Phoenix repo. > >> > > > > > >> > > > > Processing is done in the following method: > >> > > > > > >> > > > > public boolean filterRowKey(byte[] buffer, int offset, int > >> length) > >> > { > >> > > > > > >> > > > > Note: the suffix is expressed in byte array. > >> > > > > > >> > > > > FYI > >> > > > > > >> > > > > On Thu, Apr 16, 2015 at 7:27 AM, Jeetendra Gangele < > >> > > [email protected] > >> > > > > > >> > > > > wrote: > >> > > > > > >> > > > > > Thanks for your reply.Ya I am filtering on row-key which ended > >> with > >> > > > > "12567" > >> > > > > > > >> > > > > > I did not understand properly what do you mean by "You can > >> compose > >> > > > > > SuffixFilter which filters row key by comparing suffix." > >> > > > > > > >> > > > > > can you elaborate . > >> > > > > > > >> > > > > > On 16 April 2015 at 19:49, Ted Yu <[email protected]> > wrote: > >> > > > > > > >> > > > > > > bq. record key ending with "12567" > >> > > > > > > > >> > > > > > > Can you clarify whether you're filtering by row key ? > >> > > > > > > If so, please take a look at PrefixFilter. > >> > > > > > > You can compose SuffixFilter which filters row key by > >> comparing > >> > > > suffix. > >> > > > > > > > >> > > > > > > Cheers > >> > > > > > > > >> > > > > > > On Thu, Apr 16, 2015 at 7:06 AM, Jeetendra Gangele < > >> > > > > [email protected] > >> > > > > > > > >> > > > > > > wrote: > >> > > > > > > > >> > > > > > > > Hi All I have get all the records using scan with end with > >> > > > particular > >> > > > > > > > string let > >> > > > > > > > say record key ending with "12567". I need to scan and get > >> all > >> > > such > >> > > > > > > result. > >> > > > > > > > > >> > > > > > > > I am values filter and do the substring there but i want > to > >> > avoid > >> > > > > this > >> > > > > > > > because its slow. > >> > > > > > > > > >> > > > > > > > Regards > >> > > > > > > > jeetendra > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > > > > > > > > >
