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

Switch to Threaded View
Accumulo >> mail # user >> How to remove entire row at the server side?

Copy link to this message
Re: How to remove entire row at the server side?
Actually, the classpath command won't verify if it was loaded, it will just
verify that it should be loaded. There is a race condition in the file
monitor that can cause jars in place to fail to be reloaded.
On Wed, Nov 6, 2013 at 9:06 PM, David Medinets <[EMAIL PROTECTED]>wrote:

> Just in case you didn't know there is a 'classpath' command in the
> Accumulo shell which should list your custom jar. It's handy to verify that
> it was loaded. I think there might also be a log entry if you have access
> to them. I've also found it useful to use 'jar tf <filename> on the
> Accumulo nodes to verify the jar file contents. Sometimes I've deployed the
> wrong version of a jar file.
> On Wed, Nov 6, 2013 at 7:56 PM, Billie Rinaldi <[EMAIL PROTECTED]>wrote:
>> Making your class "extends RowFilter implements OptionDescriber" should
>> be fine.  One reason it might have been complaining about the @Override
>> annotations is if the Java compiler is set to 1.5 compatibility rather than
>> 1.6.
>> Regarding getting the same error, did you replace all the jars containing
>> your iterator on all the nodes?  If you did, perhaps it's not reloading the
>> jars properly.  You could restart accumulo to make sure it's using the
>> fresh jar, or you could try renaming your class and dropping it in with a
>> different jar name to ensure the new code is being picked up.
>> On Wed, Nov 6, 2013 at 2:50 PM, Terry P. <[EMAIL PROTECTED]> wrote:
>>> Hi Billie,
>>> Many thanks for your help.  I added those two methods, but had to remove
>>> the @Override as the RowFilter class I'm extending from doesn't implement
>>> them.  Even with these methods in place, I still get the same error trying
>>> to add the iterator in the shell.
>>> I notice that the RowFilter class extends WrappingIterator, which also
>>> doesn't appear to have the describeOptions and validateOptions methods ...
>>> should I try extending from just the Filter class?  I didn't understand the
>>> benefits William listed of extending from the RowFilter class.  I just know
>>> that once I identify a RowKey should be purged based on its expTs ColFam
>>> Value, I want to remove all entries for that RowKey.
>>> On Wed, Nov 6, 2013 at 3:29 PM, Billie Rinaldi <[EMAIL PROTECTED]
>>> > wrote:
>>>> To use setiter in the shell, your iterator must implement
>>>> OptionDescriber.  It has two methods, and something like the following
>>>> should work for your iterator.  If you implement passing options to the
>>>> iterator, you'll want to change the null parameters to the constructor of
>>>> IteratorOptions below, and probably also to do some validation in
>>>> validateOptions.
>>>>   @Override
>>>>   public IteratorOptions describeOptions() {
>>>>     return new IteratorOptions("expTs", "Removes rows based on the
>>>> column designated as the expiration timestamp column family", null, null);
>>>>   }
>>>>   @Override
>>>>   public boolean validateOptions(Map<String,String> options) {
>>>>     return true;
>>>>   }
>>>> On Wed, Nov 6, 2013 at 12:49 PM, Terry P. <[EMAIL PROTECTED]> wrote:
>>>>> Eyes of an eagle Billie!  com is correct, but after viewing
>>>>> "org.apache.accumulo" so many times, my brain was stuck on org and I goofed
>>>>> in my setiter syntax.
>>>>> With THAT corrected, here is the new error:
>>>>> root@meta> setiter -class
>>>>> com.esa.accumulo.iterators.ExpirationTimestampPurgeFilter -n expTsFilter -p
>>>>> 20 -scan -t itertest
>>>>> 2013-11-06 14:46:28,280 [shell.Shell] ERROR:
>>>>> org.apache.accumulo.core.util.shell.ShellCommandException: Command could
>>>>> not be initialized (Unable to load
>>>>> com.esa.accumulo.iterators.ExpirationTimestampPurgeFilter as type
>>>>> org.apache.accumulo.core.iterators.OptionDescriber; configure with 'config'
>>>>> instead)
>>>>> On Wed, Nov 6, 2013 at 2:43 PM, Billie Rinaldi <
>>>>> [EMAIL PROTECTED]> wrote: