On Monday 30 March 2015 08:03 PM, Josh Elser wrote:
Why are you using a print writer to get output from your iterator? Just use a logger and look in $ACCUMULO_HOME/logs/tserver_$hostname.debug.log (or wherever you configured logging). Create a log4j or slf4j Logger and use that instead of a print writer. (It's possible that your print writer is also what is slowing things down)

In most real deployments, iterators should be faster on the server side than your client because you have N servers performing the work instead of your one client.

It's not unheard of that a programming error is slowing down your iterator. Looking at what your iterator does (via logging) should help. Alternatively, you can use a remote debugger, connect a the tabletserver, and set breakpoints inside your iterator.

shweta.agrawal wrote:
On Monday 30 March 2015 09:58 AM, shweta.agrawal wrote:
Hi,

Actually i am working on iterator, which i ran on server side by
making jar and also on client side on same data, but on server side
jar which i made is working slow than on client side. I am not able to
find what went wrong. is it possible to work same logic more fast on
client side than on accumulo iterators?

time on client side:8s
time on server side:30s

And to get the output i am writing output on text file through print
writer. To perform my task, i am calling my method on next method and
i am writing output to a file in next method. So actually i want to
know the final method which is called, so that i can write my output
to a file after performing all the task.

Thanks and Regards
Shweta


Hi,

Without print writer also it is taking the same time. And i am trying to use remote debugger as you suggested but i am facing problem.

To enable remote debugger i changed this in accumulo-env.sh file:
test -z "$ACCUMULO_TSERVER_OPTS" && export ACCUMULO_TSERVER_OPTS="${POLICY} -Xmx384m -Xms384m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=50095"

But after changing this accumulo is not working. In terminal its showing started and when i am going to accumulo shell its saying there are no tablet servers. So please help me out in this. am i doing something wrong?

Monitor and tserver is not starting their logs are:
Monitor Logs:
2015-03-31 17:36:09,516 [mortbay.log] INFO : Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
2015-03-31 17:36:09,535 [mortbay.log] INFO :  jetty-6.1.26
2015-03-31 17:36:09,607 [mortbay.log] WARN : failed SocketConnector@shweta:50095: java.net.BindException: Address already in use 2015-03-31 17:36:09,608 [mortbay.log] WARN : failed Server@6555694: java.net.BindException: Address already in use 2015-03-31 17:36:09,608 [mortbay.log] INFO : Stopped SocketConnector@shweta:50095

Tserver Logs:
2015-03-31 17:28:49,206 [tabletserver.TabletServer] INFO : unloaded !0;~;!0<
2015-03-31 17:28:49,298 [tabletserver.TabletServer] INFO : unloaded !0<;~
2015-03-31 17:28:50,074 [tabletserver.TabletServer] INFO : unloaded !0;!0<<
2015-03-31 17:28:50,121 [tabletserver.TabletServer] FATAL: Lost tablet server lock (reason = LOCK_DELETED), exiting. 2015-03-31 17:28:50,122 [tabletserver.TabletServer] INFO : Master requested tablet server halt


Thanks and Regards
Shweta

Reply via email to