You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@accumulo.apache.org by Arjumand Bonhomme <ju...@gmail.com> on 2012/08/16 09:59:16 UTC
Using Accumulo as input to a MapReduce job frequently hangs due to
lost Zookeeper connection
Hello,
I'm fairly new to both Accumulo and Hadoop, so I think my problem may be
due to poor configuration on my part, but I'm running out of ideas.
I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from cdh3u4)
in pseudo-distributed mode.
zookeeper version zookeeper-3.3.5 from cdh3u4
I'm using the 1.4.1 release of accumulo with a configuration copied from
"conf/examples/512MB/standalone"
I've got a Map task that is using an accumulo table as the input.
I'm fetching all rows, but just a single column family, that has hundreds
or even thousands of different column qualifiers.
The table has a SummingCombiner installed for the given the column family.
The task runs fine at first, but after ~9-15K records (I print the record
count to the console every 1K records), it hangs and the following messages
are printed to the console where I'm running the job:
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional data
from server sessionid 0x1392cc35b460d1c, likely server has closed socket,
closing socket connection and attempting reconnect
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/fe80:0:0:0:0:0:0:1%1:2181
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
connection
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client connection,
connectString=localhost sessionTimeout=30000
watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/0:0:0:0:0:0:0:1:2181
12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/0:0:0:0:0:0:0:1:2181, initiating session
12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment complete
on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x1392cc35b460d25,
negotiated timeout = 30000
12/08/16 02:57:11 INFO mapred.LocalJobRunner:
12/08/16 02:57:14 INFO mapred.LocalJobRunner:
12/08/16 02:57:17 INFO mapred.LocalJobRunner:
Sometimes the messages contain a stacktrace like this below:
12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40 for
server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
socket connection and attempting reconnect
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
at sun.nio.ch.IOUtil.read(IOUtil.java:166)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/127.0.0.1:2181
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/127.0.0.1:2181, initiating session
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
connection
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client connection,
connectString=localhost sessionTimeout=30000
watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/fe80:0:0:0:0:0:0:1%1:2181
12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment complete
on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
0x1392cc35b460b46, negotiated timeout = 30000
I've poked through the logs in accumulo, and I've noticed that when it
hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
current session : Expired
16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
registration at null
16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
I've noticed that if I make the map task print out the record count more
frequently (ie every 10 records), it seems to be able get through more
records than when I only print every 1K records. My assumption was that
this had something to do with more time being spent in the map task, and
not fetching data from accumulo. There was at least one occasion where I
printed to the console for every record, and in that situation it managed
to process 47K records, although I have been unable to repeat that behavior.
I've also noticed that if I stop and start accumulo, the map-reduce job
will pickup where it left off, but seems to fail quicker.
Could someone make some suggestions as to what my problem might be? It
would be greatly appreciated. If you need any additional information from
me, just let me know. I'd paste my config files, driver setup, and example
data into this post, but I think it's probably long enough already.
Thanks in advance,
-Arjumand
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Adam Fuchs <af...@apache.org>.
That was going to be my suggestion as well, except the zookeeper property
is maxclientcnxns.
Cheers,
Adam
On Aug 16, 2012 7:22 AM, "Jim Klucar" <kl...@gmail.com> wrote:
> Just shooting from the hip here.
>
> Zookeeper maxclientcxns in zoo.cfg should be increased from the default to
> something like 100. Check the zookeeper log file to see if it is shutting
> down connections.
>
> Check your what your max open files setting is for your OS with 'ulimit
> -n' and increase it if necessary.
>
>
>
>
>
> Sent from my iPhone
>
> On Aug 16, 2012, at 4:00 AM, Arjumand Bonhomme <ju...@gmail.com> wrote:
>
> Hello,
>
> I'm fairly new to both Accumulo and Hadoop, so I think my problem may be
> due to poor configuration on my part, but I'm running out of ideas.
>
> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from cdh3u4)
> in pseudo-distributed mode.
> zookeeper version zookeeper-3.3.5 from cdh3u4
> I'm using the 1.4.1 release of accumulo with a configuration copied from
> "conf/examples/512MB/standalone"
>
> I've got a Map task that is using an accumulo table as the input.
> I'm fetching all rows, but just a single column family, that has hundreds
> or even thousands of different column qualifiers.
> The table has a SummingCombiner installed for the given the column family.
>
> The task runs fine at first, but after ~9-15K records (I print the record
> count to the console every 1K records), it hangs and the following messages
> are printed to the console where I'm running the job:
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional
> data from server sessionid 0x1392cc35b460d1c, likely server has closed
> socket, closing socket connection and attempting reconnect
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/fe80:0:0:0:0:0:0:1%1:2181
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
> connection
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client connection,
> connectString=localhost sessionTimeout=30000
> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/0:0:0:0:0:0:0:1:2181
> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/0:0:0:0:0:0:0:1:2181, initiating session
> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
> 0x1392cc35b460d25, negotiated timeout = 30000
> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>
> Sometimes the messages contain a stacktrace like this below:
> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40 for
> server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
> socket connection and attempting reconnect
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcher.read0(Native Method)
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
> at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/127.0.0.1:2181
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/127.0.0.1:2181, initiating session
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
> connection
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client connection,
> connectString=localhost sessionTimeout=30000
> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/fe80:0:0:0:0:0:0:1%1:2181
> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
> 0x1392cc35b460b46, negotiated timeout = 30000
>
>
> I've poked through the logs in accumulo, and I've noticed that when it
> hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
> 16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
> current session : Expired
> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
> registration at null
> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>
>
> I've noticed that if I make the map task print out the record count more
> frequently (ie every 10 records), it seems to be able get through more
> records than when I only print every 1K records. My assumption was that
> this had something to do with more time being spent in the map task, and
> not fetching data from accumulo. There was at least one occasion where I
> printed to the console for every record, and in that situation it managed
> to process 47K records, although I have been unable to repeat that behavior.
>
> I've also noticed that if I stop and start accumulo, the map-reduce job
> will pickup where it left off, but seems to fail quicker.
>
>
>
> Could someone make some suggestions as to what my problem might be? It
> would be greatly appreciated. If you need any additional information from
> me, just let me know. I'd paste my config files, driver setup, and example
> data into this post, but I think it's probably long enough already.
>
>
> Thanks in advance,
> -Arjumand
>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Jim Klucar <kl...@gmail.com>.
Just shooting from the hip here.
Zookeeper maxclientcxns in zoo.cfg should be increased from the default to
something like 100. Check the zookeeper log file to see if it is shutting
down connections.
Check your what your max open files setting is for your OS with 'ulimit -n'
and increase it if necessary.
Sent from my iPhone
On Aug 16, 2012, at 4:00 AM, Arjumand Bonhomme <ju...@gmail.com> wrote:
Hello,
I'm fairly new to both Accumulo and Hadoop, so I think my problem may be
due to poor configuration on my part, but I'm running out of ideas.
I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from cdh3u4)
in pseudo-distributed mode.
zookeeper version zookeeper-3.3.5 from cdh3u4
I'm using the 1.4.1 release of accumulo with a configuration copied from
"conf/examples/512MB/standalone"
I've got a Map task that is using an accumulo table as the input.
I'm fetching all rows, but just a single column family, that has hundreds
or even thousands of different column qualifiers.
The table has a SummingCombiner installed for the given the column family.
The task runs fine at first, but after ~9-15K records (I print the record
count to the console every 1K records), it hangs and the following messages
are printed to the console where I'm running the job:
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional data
from server sessionid 0x1392cc35b460d1c, likely server has closed socket,
closing socket connection and attempting reconnect
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/fe80:0:0:0:0:0:0:1%1:2181
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
connection
12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client connection,
connectString=localhost sessionTimeout=30000
watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/0:0:0:0:0:0:0:1:2181
12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/0:0:0:0:0:0:0:1:2181, initiating session
12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment complete
on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x1392cc35b460d25,
negotiated timeout = 30000
12/08/16 02:57:11 INFO mapred.LocalJobRunner:
12/08/16 02:57:14 INFO mapred.LocalJobRunner:
12/08/16 02:57:17 INFO mapred.LocalJobRunner:
Sometimes the messages contain a stacktrace like this below:
12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40 for
server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
socket connection and attempting reconnect
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
at sun.nio.ch.IOUtil.read(IOUtil.java:166)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/127.0.0.1:2181
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/127.0.0.1:2181, initiating session
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
connection
12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client connection,
connectString=localhost sessionTimeout=30000
watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/fe80:0:0:0:0:0:0:1%1:2181
12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment complete
on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
0x1392cc35b460b46, negotiated timeout = 30000
I've poked through the logs in accumulo, and I've noticed that when it
hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
current session : Expired
16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
registration at null
16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
I've noticed that if I make the map task print out the record count more
frequently (ie every 10 records), it seems to be able get through more
records than when I only print every 1K records. My assumption was that
this had something to do with more time being spent in the map task, and
not fetching data from accumulo. There was at least one occasion where I
printed to the console for every record, and in that situation it managed
to process 47K records, although I have been unable to repeat that behavior.
I've also noticed that if I stop and start accumulo, the map-reduce job
will pickup where it left off, but seems to fail quicker.
Could someone make some suggestions as to what my problem might be? It
would be greatly appreciated. If you need any additional information from
me, just let me know. I'd paste my config files, driver setup, and example
data into this post, but I think it's probably long enough already.
Thanks in advance,
-Arjumand
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Arjumand Bonhomme <ju...@gmail.com>.
That's a decent thought. I have a linode instance from an old project that
I've never de-commissioned. I'll may look into that pretty soon.
On Thu, Aug 16, 2012 at 10:33 PM, David Medinets
<da...@gmail.com>wrote:
> Would it help if you had another Accumulo instance to test your code
> against? Sometimes starting fresh helps. I could lend you my server.
> Or you could buy a linode server for about $20. In 60 minutes, you'd
> have a working brand-new Accumulo instance.
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by David Medinets <da...@gmail.com>.
Would it help if you had another Accumulo instance to test your code
against? Sometimes starting fresh helps. I could lend you my server.
Or you could buy a linode server for about $20. In 60 minutes, you'd
have a working brand-new Accumulo instance.
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by ameet kini <am...@gmail.com>.
My previous post had some stale text after my signature - sorry. Reposting
after chopping the stale text off.
Turns out that my assumption of tables being partitioned the same way may
be too restrictive. I need to account for join partitions not being
co-located on the same tablet server. So the CompositeInputFormat is not
applicable as I'd initially thought. That said, I hadn't gotten very far
with it, and in particular, couldn't for the life of me figure out how to
configure the mapred.join.expr to work on Accumulo's rfile directory
structure.
I ended up extending AccumuloInputFormat to do the join. The record reader
would read table A using AccumuloInputFormat's scannerIterator and issue
BatchScanner lookups to get table B's matching records, similar to Keith's
suggestion above.
Thanks,
Ameet
On Wed, Oct 17, 2012 at 10:10 AM, ameet kini <am...@gmail.com> wrote:
>
> Turns out that my assumption of tables being partitioned the same way may
> be too restrictive. I need to account for join partitions not being
> co-located on the same tablet server. So the CompositeInputFormat is not
> applicable as I'd initially thought. That said, I hadn't gotten very far
> with it, and in particular, couldn't for the life of me figure out how to
> configure the mapred.join.expr to work on Accumulo's rfile directory
> structure.
>
> I ended up extending AccumuloInputFormat to do the join. The record reader
> would read table A using AccumuloInputFormat's scannerIterator and issue
> BatchScanner lookups to get table B's matching records, similar to Keith's
> suggestion above.
>
> Thanks,
> Ameet
>
>
>
>
>
>
> On Thu, Oct 11, 2012 at 2:57 PM, Billie Rinaldi <bi...@apache.org> wrote:
>
>> On Wed, Oct 10, 2012 at 7:22 AM, ameet kini <am...@gmail.com> wrote:
>>
>>> I have a related problem where I need to do a 1-1 join (every row in
>>> table A joins with a unique row in table B and vice versa). My join
>>> key is the row id of the table. In the past, I've used Hadoop's
>>> CompositeInputFormat to do a map-side join over data in HDFS
>>> (described here
>>> http://www.congiu.com/joins-in-hadoop-using-compositeinputformat/) My
>>> tables in Accumulo seem to fit the eligibility criteria of
>>> CompositeInputFormat: both tables are sorted by the join key, since
>>> the join key is the row id in my case, and the tables are partitioned
>>> the same way (i.e., same split points).
>>>
>>> Has anyone tried using CompositeInputFormat over Accumulo tables? Is
>>> it possible to configure CompositeInputFormat with
>>> AccumuloInputFormat?
>>>
>>
>> I haven't tried it. If you do, let us know how it works out.
>>
>> Billie
>>
>>
>>>
>>> Thanks,
>>> Ameet
>>>
>>>
>>> On Tue, Aug 21, 2012 at 8:23 AM, Keith Turner <ke...@deenlo.com> wrote:
>>> > Yeah, that would certainly work.
>>> >
>>> > You could run two map only jobs (could run concurrently). A job that
>>> > reads D1 and writes to Table3 and a job that reads D2 and writes
>>> > Table3. Map reduce may be faster, unless you want the final result
>>> > in Accumulo in which case this may be faster. The two map reduce jobs
>>> > could also produce files to bulk import into table3.
>>> >
>>> > Keith
>>> >
>>> > On Mon, Aug 20, 2012 at 8:26 PM, David Medinets
>>> > <da...@gmail.com> wrote:
>>> >> Can you use a new table to join and then scan the new table? Use the
>>> foreign
>>> >> key as the rowid. Basically create your own materialized view.
>>>
>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by ameet kini <am...@gmail.com>.
Turns out that my assumption of tables being partitioned the same way may
be too restrictive. I need to account for join partitions not being
co-located on the same tablet server. So the CompositeInputFormat is not
applicable as I'd initially thought. That said, I hadn't gotten very far
with it, and in particular, couldn't for the life of me figure out how to
configure the mapred.join.expr to work on Accumulo's rfile directory
structure.
I ended up extending AccumuloInputFormat to do the join. The record reader
would read table A using AccumuloInputFormat's scannerIterator and issue
BatchScanner lookups to get table B's matching records, similar to Keith's
suggestion above.
Thanks,
Ameet
That said, I had spent some time trying to configure it with
AccumuloInputFormat, and couldn't get very far because I couldn't figure
out how to write a mapred.join.expr which would work directly on the
underlying rfiles in Accumulo. Even if I flush/compact the table so I end
up with exactly 1 rfile per tablet, the mapred.join.expr is
On Thu, Oct 11, 2012 at 2:57 PM, Billie Rinaldi <bi...@apache.org> wrote:
> On Wed, Oct 10, 2012 at 7:22 AM, ameet kini <am...@gmail.com> wrote:
>
>> I have a related problem where I need to do a 1-1 join (every row in
>> table A joins with a unique row in table B and vice versa). My join
>> key is the row id of the table. In the past, I've used Hadoop's
>> CompositeInputFormat to do a map-side join over data in HDFS
>> (described here
>> http://www.congiu.com/joins-in-hadoop-using-compositeinputformat/) My
>> tables in Accumulo seem to fit the eligibility criteria of
>> CompositeInputFormat: both tables are sorted by the join key, since
>> the join key is the row id in my case, and the tables are partitioned
>> the same way (i.e., same split points).
>>
>> Has anyone tried using CompositeInputFormat over Accumulo tables? Is
>> it possible to configure CompositeInputFormat with
>> AccumuloInputFormat?
>>
>
> I haven't tried it. If you do, let us know how it works out.
>
> Billie
>
>
>>
>> Thanks,
>> Ameet
>>
>>
>> On Tue, Aug 21, 2012 at 8:23 AM, Keith Turner <ke...@deenlo.com> wrote:
>> > Yeah, that would certainly work.
>> >
>> > You could run two map only jobs (could run concurrently). A job that
>> > reads D1 and writes to Table3 and a job that reads D2 and writes
>> > Table3. Map reduce may be faster, unless you want the final result
>> > in Accumulo in which case this may be faster. The two map reduce jobs
>> > could also produce files to bulk import into table3.
>> >
>> > Keith
>> >
>> > On Mon, Aug 20, 2012 at 8:26 PM, David Medinets
>> > <da...@gmail.com> wrote:
>> >> Can you use a new table to join and then scan the new table? Use the
>> foreign
>> >> key as the rowid. Basically create your own materialized view.
>>
>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Billie Rinaldi <bi...@apache.org>.
On Wed, Oct 10, 2012 at 7:22 AM, ameet kini <am...@gmail.com> wrote:
> I have a related problem where I need to do a 1-1 join (every row in
> table A joins with a unique row in table B and vice versa). My join
> key is the row id of the table. In the past, I've used Hadoop's
> CompositeInputFormat to do a map-side join over data in HDFS
> (described here
> http://www.congiu.com/joins-in-hadoop-using-compositeinputformat/) My
> tables in Accumulo seem to fit the eligibility criteria of
> CompositeInputFormat: both tables are sorted by the join key, since
> the join key is the row id in my case, and the tables are partitioned
> the same way (i.e., same split points).
>
> Has anyone tried using CompositeInputFormat over Accumulo tables? Is
> it possible to configure CompositeInputFormat with
> AccumuloInputFormat?
>
I haven't tried it. If you do, let us know how it works out.
Billie
>
> Thanks,
> Ameet
>
>
> On Tue, Aug 21, 2012 at 8:23 AM, Keith Turner <ke...@deenlo.com> wrote:
> > Yeah, that would certainly work.
> >
> > You could run two map only jobs (could run concurrently). A job that
> > reads D1 and writes to Table3 and a job that reads D2 and writes
> > Table3. Map reduce may be faster, unless you want the final result
> > in Accumulo in which case this may be faster. The two map reduce jobs
> > could also produce files to bulk import into table3.
> >
> > Keith
> >
> > On Mon, Aug 20, 2012 at 8:26 PM, David Medinets
> > <da...@gmail.com> wrote:
> >> Can you use a new table to join and then scan the new table? Use the
> foreign
> >> key as the rowid. Basically create your own materialized view.
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by ameet kini <am...@gmail.com>.
I have a related problem where I need to do a 1-1 join (every row in
table A joins with a unique row in table B and vice versa). My join
key is the row id of the table. In the past, I've used Hadoop's
CompositeInputFormat to do a map-side join over data in HDFS
(described here
http://www.congiu.com/joins-in-hadoop-using-compositeinputformat/) My
tables in Accumulo seem to fit the eligibility criteria of
CompositeInputFormat: both tables are sorted by the join key, since
the join key is the row id in my case, and the tables are partitioned
the same way (i.e., same split points).
Has anyone tried using CompositeInputFormat over Accumulo tables? Is
it possible to configure CompositeInputFormat with
AccumuloInputFormat?
Thanks,
Ameet
On Tue, Aug 21, 2012 at 8:23 AM, Keith Turner <ke...@deenlo.com> wrote:
> Yeah, that would certainly work.
>
> You could run two map only jobs (could run concurrently). A job that
> reads D1 and writes to Table3 and a job that reads D2 and writes
> Table3. Map reduce may be faster, unless you want the final result
> in Accumulo in which case this may be faster. The two map reduce jobs
> could also produce files to bulk import into table3.
>
> Keith
>
> On Mon, Aug 20, 2012 at 8:26 PM, David Medinets
> <da...@gmail.com> wrote:
>> Can you use a new table to join and then scan the new table? Use the foreign
>> key as the rowid. Basically create your own materialized view.
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Keith Turner <ke...@deenlo.com>.
Yeah, that would certainly work.
You could run two map only jobs (could run concurrently). A job that
reads D1 and writes to Table3 and a job that reads D2 and writes
Table3. Map reduce may be faster, unless you want the final result
in Accumulo in which case this may be faster. The two map reduce jobs
could also produce files to bulk import into table3.
Keith
On Mon, Aug 20, 2012 at 8:26 PM, David Medinets
<da...@gmail.com> wrote:
> Can you use a new table to join and then scan the new table? Use the foreign
> key as the rowid. Basically create your own materialized view.
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by David Medinets <da...@gmail.com>.
Can you use a new table to join and then scan the new table? Use the
foreign key as the rowid. Basically create your own materialized view.
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Keith Turner <ke...@deenlo.com>.
Arjumand
It sounds like you are joining two data sets? Reading one data set
from Accumulo and then doing a lookup into the other dataset for each
input to the mapper? This is a good approach if one data set is small
and fits into memory. If this is not the case, then you may want to
consider another join strategy.
Below are some of the options I know of joining two data sets, D1 and D2 :
* Read D1 into memory on each mapper, and do lookups into the D1 map
as each is read from D2. Good approach when D1 is small.
* Set D1 and D2 as inputs to the map reduce job and join in the
reduce phase. Good approach when D1 and D2 are large.
* If D1 is an Accumulo table, use the batch scanner to lookup
elements in D2. Good approach when D1 is already in a table and D2 is
relatively small. If D2 is larger, could do batch scans in reducers
or maybe mappers.
* Compute a bloom filter for D1, load the bloom filter into memory
for each mapper. Check existence in D1 bloom filter as each item is
read from D2. This is can work well when lots of things in D2 do not
exist in D1. However this is just a filter step that cuts down on
what you need to join. A join will still need to be done.
The approach you choose for joining depends on the relative size of
your two data sets. The goal is to batch work and avoid single
lookups into Accumulo or a Map File if possible.
Keith
On Mon, Aug 20, 2012 at 1:00 PM, Arjumand Bonhomme <ju...@gmail.com> wrote:
> Hey guys,
>
> I'm back with some additional information and I'm hoping that you might be
> able to help me finally get past this issue.
>
>
> So I changed my config from the 512MB version to the 1GB version without any
> noticeable improvement. The job still became stuck at roughly 10K input
> records, and accumulo's zookeeper session timed out as usual. After
> thinking about this for a while it occurred to me that I had previously used
> accumulo as an input source on over 30K records with no issues at all (it
> was writing back out to accumulo as well). So I tried to figure out why
> this new job could never reliably get past 10K records. The only real
> difference was that the new job was using a Hadoop MapFile as a lookup table
> for record values. So after commenting out of the use of the MapFile and
> using a single hard-coded value, I ran the job again and it made it through
> the entire input very quickly, ~3.5M entries in just over a minute. So
> after this I assumed the MapFile was slowing my job down too much for the
> accumulo input scanner to keep its connection with zookeeper. The MapFile
> was generated by reading some data from one of my tables in accumulo, so
> the next thing I tried (which I figured would be very bad in practice) was
> to read the lookup data directly from accumulo; I re-wrote the mapper to do
> a scanner lookup against the other accumulo table for each input record.
> This immediately worked much better than the MapFile. It was pretty slow,
> but it managed to get up to ~92K records before it failed. Accumulo once
> again lost its zookeeper session due to timeout.
>
> I recognize that this is not exactly an accumulo issue, but I was hoping
> that you might be able to provide me some guidance as to how to ultimately
> get past this issue. I'm using this against a small sample of what the
> actual input will be, and I have ~3.5M input records and ~30K values in my
> lookup table. Both of these values will likely increase in size
> substantially when this is run against the actual input.
>
> Any suggestions about how to approach this problem will be greatly
> appreciated.
>
>
> Thanks,
> -Arjumand
>
>
> BTW, While I recognize this would not be the appropriate way to address my
> problem, I was wondering if there was a reason why the
> org.apache.accumulo.core.client.ZooKeeperInstance constructor allows you
> specify/request a specific session timeout, but the same thing is not
> available on the .setZooKeeperInstance() methods of the
> AccumuloInputFormat/AccumuloOutputFormat classe?
>
>
> On Thu, Aug 16, 2012 at 10:10 PM, Arjumand Bonhomme <ju...@gmail.com>
> wrote:
>>
>> Thanks for the input, no worries about the offline scanner bit. Although
>> if I can ever get past my current issue, I'd love to learn why the offline
>> scanner failed as well.
>>
>> So I took a look at my various other settings, and watched the paging
>> while everything was running, and it doesn't appear (at least not to me) to
>> be related to swapping.
>> I'm using the 512MB accumulo configuration, and I'm running the hadoop
>> task with a 256MB heap. I'm running hadoop with the standard
>> pseudo-distributed config, except for bumping the dfs.datanode.max.xcievers
>> property to 4096. I'm running zookeeper with the OOB config, except for the
>> adjustment to maxclientcxns in zoo.cfg increased to be 100
>>
>> I did a reboot of my machine, then began another series of tests. This
>> time I was watching vm_stat while everything was running.
>>
>> I noticed the same behavior I've been witnessing all along. I'm including
>> the stacktrace that was emitted to the tserver log when it hung as it
>> usually does.
>> 6 20:58:12,311 [zookeeper.ZooLock] DEBUG: event null None Disconnected
>> 16 20:58:13,375 [zookeeper.ZooCache] WARN : Zookeeper error, will retry
>> org.apache.zookeeper.KeeperException$SessionExpiredException:
>> KeeperErrorCode = Session expired for
>> /accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7/tables/1/conf/table.compaction.minor.idle
>> at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
>> at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
>> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
>> at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
>> at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
>> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
>> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
>> at
>> org.apache.accumulo.server.conf.TableConfiguration.get(TableConfiguration.java:120)
>> at
>> org.apache.accumulo.server.conf.TableConfiguration.get(TableConfiguration.java:108)
>> at
>> org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis(AccumuloConfiguration.java:70)
>> at
>> org.apache.accumulo.server.tabletserver.LargestFirstMemoryManager.getMemoryManagementActions(LargestFirstMemoryManager.java:95)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework.manageMemory(TabletServerResourceManager.java:312)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework.access$200(TabletServerResourceManager.java:228)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework$2.run(TabletServerResourceManager.java:252)
>> at
>> org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
>> at java.lang.Thread.run(Thread.java:680)
>> 16 20:58:13,375 [zookeeper.ZooCache] WARN : Zookeeper error, will retry
>> org.apache.zookeeper.KeeperException$SessionExpiredException:
>> KeeperErrorCode = Session expired for
>> /accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7/config/table.scan.max.memory
>> at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
>> at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
>> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
>> at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
>> at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
>> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
>> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
>> at
>> org.apache.accumulo.server.conf.ZooConfiguration.get(ZooConfiguration.java:109)
>> at
>> org.apache.accumulo.server.conf.ZooConfiguration._get(ZooConfiguration.java:76)
>> at
>> org.apache.accumulo.server.conf.ZooConfiguration.get(ZooConfiguration.java:103)
>> at
>> org.apache.accumulo.core.conf.AccumuloConfiguration.getMemoryInBytes(AccumuloConfiguration.java:47)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:960)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServerResourceManager.executeReadAhead(TabletServerResourceManager.java:699)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.continueMultiScan(TabletServer.java:1316)
>> at
>> org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.startMultiScan(TabletServer.java:1284)
>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at
>> org.apache.accumulo.cloudtrace.instrument.thrift.TraceWrap$1.invoke(TraceWrap.java:59)
>> at $Proxy1.startMultiScan(Unknown Source)
>> at
>> org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.process(TabletClientService.java:2164)
>> at
>> org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor.process(TabletClientService.java:2037)
>> at
>> org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:154)
>> at
>> org.apache.thrift.server.TNonblockingServer$FrameBuffer.invoke(TNonblockingServer.java:631)
>> at
>> org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:202)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> at
>> org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
>> at java.lang.Thread.run(Thread.java:680)
>> 16 20:58:13,379 [zookeeper.ZooLock] DEBUG: event null None Expired
>> 16 20:58:13,393 [tabletserver.TabletServer] FATAL: Lost tablet server lock
>> (reason = SESSION_EXPIRED), exiting.
>>
>>
>> Below is the matching stacktrace emitted by the hadoop job.
>> 12/08/16 20:57:14 INFO zookeeper.ZooKeeper: Initiating client connection,
>> connectString=localhost sessionTimeout=30000
>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@47124746
>> 12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/fe80:0:0:0:0:0:0:1%1:2181
>> 12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Socket connection established
>> to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>> 12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Session establishment
>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>> 0x13931fecee3012e, negotiated timeout = 30000
>> 12/08/16 20:57:14 INFO mapred.JobClient: Running job: job_local_0001
>> 12/08/16 20:57:14 INFO mapred.Task: Using ResourceCalculatorPlugin : null
>> 12/08/16 20:57:14 INFO mapred.MapTask: io.sort.mb = 100
>> 12/08/16 20:57:15 INFO mapred.MapTask: data buffer = 79691776/99614720
>> 12/08/16 20:57:15 INFO mapred.MapTask: record buffer = 262144/327680
>> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
>> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
>> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
>> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
>> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
>> 12/08/16 20:57:15 INFO mapred.JobClient: map 0% reduce 0%
>> 001000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@feel
>> 002000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@perhap
>> 12/08/16 20:57:20 INFO mapred.LocalJobRunner:
>> 003000
>> 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@univers
>> 12/08/16 20:57:23 INFO mapred.LocalJobRunner:
>> 004000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@doubt
>> 005000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@morwai
>> 12/08/16 20:57:26 INFO mapred.LocalJobRunner:
>> 006000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@tgame
>> 007000 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@colleg
>> 12/08/16 20:57:29 INFO mapred.LocalJobRunner:
>> 008000 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@led
>> 12/08/16 20:57:32 INFO mapred.LocalJobRunner:
>> 009000
>> 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@stephanopoulo
>> 010000
>> 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@brother
>> 12/08/16 20:57:35 INFO mapred.LocalJobRunner:
>> 011000 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@inabl
>> 12/08/16 20:57:38 INFO mapred.LocalJobRunner:
>> 12/08/16 20:57:41 INFO mapred.LocalJobRunner:
>> 12/08/16 20:58:12 INFO zookeeper.ClientCnxn: Client session timed out,
>> have not heard from server in 37008ms for sessionid 0x13931fecee3012e,
>> closing socket connection and attempting reconnect
>> 012000
>> 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@saturdai
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/0:0:0:0:0:0:0:1:2181
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Socket connection established
>> to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Unable to reconnect to
>> ZooKeeper service, session 0x13931fecee3012e has expired, closing socket
>> connection
>> 12/08/16 20:58:13 WARN zookeeper.ZooCache: Zookeeper error, will retry
>> org.apache.zookeeper.KeeperException$SessionExpiredException:
>> KeeperErrorCode = Session expired for
>> /accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7
>> at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
>> at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
>> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
>> at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
>> at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
>> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
>> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
>> at
>> org.apache.accumulo.core.client.ZooKeeperInstance.getInstanceID(ZooKeeperInstance.java:147)
>> at
>> org.apache.accumulo.core.client.impl.TabletLocator.getInstance(TabletLocator.java:96)
>> at
>> org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:245)
>> at
>> org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:94)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> at java.lang.Thread.run(Thread.java:680)
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: EventThread shut down
>> 12/08/16 20:58:13 INFO zookeeper.ZooKeeper: Initiating client connection,
>> connectString=localhost sessionTimeout=30000
>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@7f434cb2
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/0:0:0:0:0:0:0:1:2181
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Socket connection established
>> to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Session establishment
>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>> 0x13931fecee30135, negotiated timeout = 30000
>> 013000
>> 2012-06-11T09-05-19/abc/06a7b8b2de18727faa635b841b0dd043.txt@anthoni
>> 12/08/16 20:58:17 INFO mapred.LocalJobRunner:
>>
>>
>> And finally here is the output from "vm_stat 1". Doesn't look like
>> anything was really getting swapped out to disk. While there was a flurry
>> of paging (reading pages in) as soon as I started up the job, that paging
>> ceased very quickly after that. Then very shortly it hung again as usual.
>> When looking at the output, it may help to know that I started the hadoop
>> job just after the 3rd banner/header was printed out, and you can see the
>> initial flurry of paging and then it stops after roughly 12 seconds.
>> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
>> free active spec inactive wire faults copy 0fill reactive
>> pageins pageout
>> 595157 944925 81264 89580 385586 319170K 8990003 159901K 3094025
>> 9227006 1546121
>> 595491 944110 81292 89605 386400 1909 0 1417 0
>> 4 0
>> 595204 944911 81292 89579 385625 708 0 551 0
>> 0 0
>> 595429 944652 81293 89579 385879 1941 0 1314 0
>> 0 0
>> 595379 945101 81293 89579 385407 616 0 521 0
>> 0 0
>> 595114 944636 81294 89579 385879 1824 0 1329 0
>> 0 0
>> 595664 945080 81295 89578 385406 5365 6 4032 0
>> 1 0
>> 595221 944078 81295 89578 386410 2645 0 1840 0
>> 0 0
>> 595338 945075 81295 89578 385406 767 2 505 0
>> 0 0
>> 595061 944463 81295 89578 386059 2113 0 1433 0
>> 1 0
>> 595194 944936 81295 89578 385587 674 0 565 0
>> 0 0
>> 595267 944458 81296 89578 386059 1731 0 1293 0
>> 0 0
>> 595418 944925 81297 89578 385587 780 0 581 0
>> 0 0
>> 595124 944200 81296 89579 386419 2111 84 1397 0
>> 2 0
>> 595037 944686 81295 89579 385948 657 2 548 0
>> 2 0
>> 595054 944213 81295 89579 386420 1785 0 1350 0
>> 1 0
>> 595289 944687 81295 89579 385948 758 0 565 0
>> 1 0
>> 595052 944221 81296 89579 386420 1987 0 1356 0
>> 0 0
>> 595017 944698 81296 89579 385948 768 0 558 0
>> 0 0
>> 595272 944217 81296 89579 386420 1957 0 1334 0
>> 0 0
>> 594954 944686 81296 89579 385948 704 0 535 0
>> 0 0
>> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
>> free active spec inactive wire faults copy 0fill reactive
>> pageins pageout
>> 594997 944166 81296 89579 386420 319204K 8990097 159926K 3094025
>> 9227018 1546121
>> 594977 944641 81298 89579 385948 784 0 569 0
>> 0 0
>> 595282 944160 81298 89579 386420 1874 0 1368 0
>> 1 0
>> 595252 944633 81298 89579 385948 735 0 561 0
>> 1 0
>> 595057 944186 81298 89579 386420 1972 0 1391 0
>> 0 0
>> 595039 944481 81298 89579 386129 929 0 564 0
>> 1 0
>> 595512 943232 81346 89579 387188 3109 31 2542 0
>> 1 0
>> 595395 944491 81346 89579 385948 742 0 626 0
>> 0 0
>> 595134 944016 81346 89579 386420 1844 1 1335 0
>> 0 0
>> 595329 944501 81346 89579 385948 694 0 546 0
>> 0 0
>> 595329 944016 81346 89579 386431 1801 0 1330 0
>> 0 0
>> 595471 944458 81347 89579 385949 797 0 669 0
>> 0 0
>> 595433 943918 81347 89579 386431 2380 0 1806 0
>> 0 0
>> 595118 944433 81347 89579 385948 678 0 567 0
>> 0 0
>> 595142 943989 81347 89571 386420 1863 0 1378 0
>> 1 0
>> 595097 944462 81347 89571 385948 654 0 540 0
>> 1 0
>> 595126 944060 81347 89571 386420 1874 0 1430 0
>> 0 0
>> 595068 944674 81348 89571 385948 787 0 678 0
>> 0 0
>> 595110 944174 81348 89571 386420 1863 0 1345 0
>> 0 0
>> 595362 944627 81348 89571 385948 768 2 575 0
>> 0 0
>> 595115 944131 81348 89572 386420 1755 0 1323 0
>> 0 0
>> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
>> free active spec inactive wire faults copy 0fill reactive
>> pageins pageout
>> 595142 944657 81348 89571 385948 319233K 8990131 159947K 3094025
>> 9227025 1546121
>> 591569 946751 81348 89571 387281 9240 786 4725 0
>> 8 0
>> 579748 958406 81358 90168 386840 20057 287 13388 0
>> 492 0
>> 563598 959835 88682 97236 387319 20388 931 4220 0
>> 0 0
>> 535840 986697 88692 98643 386906 59619 1497 32467 0
>> 164 0
>> 534240 987263 88696 99134 387394 42744 0 6762 0
>> 98 0
>> 529479 992037 88723 100123 386187 39552 3 9006 0
>> 10 0
>> 529065 991283 88760 100107 387430 32014 153 7500 0
>> 41 0
>> 528147 992276 88784 100376 386966 37719 2 6050 0
>> 15 0
>> 527155 993536 88818 100380 386672 34999 0 6928 0
>> 1 0
>> 526748 992973 88851 100380 387747 34379 1 5240 0
>> 0 0
>> 526835 994071 88902 100404 386674 34698 2 7063 0
>> 8 0
>> 524993 994621 89207 100582 387027 28374 460 6018 0
>> 182 0
>> 524182 995184 89286 100582 387544 42552 226 7313 0
>> 0 0
>> 523704 995987 89328 100629 387076 42731 1 6357 0
>> 0 0
>> 523154 995939 89367 100629 387554 41100 0 7338 0
>> 0 0
>> 522867 996724 89405 100629 387307 39246 0 6089 0
>> 0 0
>> 522160 996665 89451 100639 387563 37614 1 7463 0
>> 0 0
>> 522414 997920 89501 100639 386324 40044 0 6995 0
>> 0 0
>> 521524 997171 89539 100639 387569 39447 0 7048 0
>> 1 0
>> 520258 998993 89575 100645 387107 37476 0 6789 0
>> 0 0
>> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
>> free active spec inactive wire faults copy 0fill reactive
>> pageins pageout
>> 519291 999119 89614 100645 387771 319989K 8994481 160119K 3094025
>> 9228045 1546121
>> 518546 1000K 89653 100647 387672 39985 81 6722 0
>> 0 0
>> 518354 1000K 89701 100647 387196 33629 0 7757 0
>> 0 0
>> 516218 1002K 89737 100647 387192 39403 0 7368 0
>> 1 0
>> 513388 1004K 89764 100648 388210 36737 0 14479 0
>> 0 0
>> 507991 1011K 89784 100648 386465 32460 1 13133 0
>> 1 0
>> 506346 1012K 89816 100648 387917 39257 2 7246 0
>> 1 0
>> 506298 1012K 89816 100648 387356 626 0 313 0
>> 0 0
>> 506070 1013K 89816 100648 386259 217 1 102 0
>> 0 0
>> 506101 1013K 89816 100648 386259 386 0 99 0
>> 0 0
>> 505974 1012K 89769 100618 387548 1417 21 1250 0
>> 9 0
>> 506078 1013K 89769 100618 386259 297 0 191 0
>> 0 0
>> 506349 1013K 89769 100618 386259 200 0 100 0
>> 0 0
>> 506105 1013K 89769 100618 386259 211 0 104 0
>> 0 0
>> 506351 1013K 89769 100618 386259 187 0 89 0
>> 0 0
>> 506114 1013K 89769 100618 386599 269 0 185 0
>> 0 0
>> 506228 1013K 89769 100618 386258 228 0 129 0
>> 0 0
>> 506231 1013K 89769 100618 386258 147 0 83 0
>> 0 0
>> 506486 1013K 89769 100618 386258 306 0 119 0
>> 0 0
>> 506215 1013K 89769 100619 386258 174 0 62 0
>> 0 0
>> 505927 1014K 89769 100619 386258 593 0 524 0
>> 0 0
>> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
>> free active spec inactive wire faults copy 0fill reactive
>> pageins pageout
>> 506437 1013K 89769 100619 386700 320215K 8994587 160180K 3094025
>> 9228057 1546121
>> 506670 1013K 89769 100619 386225 128 0 45 0
>> 0 0
>> 506347 1013K 89769 100619 386225 268 0 58 0
>> 0 0
>> 506033 1013K 89769 100619 386225 127 0 89 0
>> 0 0
>> 506221 1013K 89769 100619 386225 86 0 41 0
>> 0 0
>> 506157 1013K 89769 100619 386225 81 0 38 0
>> 0 0
>> 506096 1013K 89769 100619 386225 345 0 186 0
>> 0 0
>> 506044 1013K 89769 100619 386236 291 0 224 0
>> 0 0
>> 505980 1013K 89769 100619 386225 81 0 39 0
>> 0 0
>> 505916 1013K 89769 100619 386225 99 0 50 0
>> 0 0
>> 505839 1013K 89769 100619 386225 79 0 36 0
>> 0 0
>> 506028 1013K 89769 100619 386225 102 0 61 0
>> 0 0
>> 505760 1014K 89769 100619 386225 286 0 229 0
>> 0 0
>> 506151 1013K 89769 100619 386406 140 0 88 0
>> 0 0
>> 506097 1013K 89769 100619 386406 101 2 47 0
>> 0 0
>> 506028 1014K 89769 100619 386225 175 0 62 0
>> 0 0
>> 506230 1014K 89769 100619 386225 227 0 39 0
>> 0 0
>> 505939 1014K 89769 100619 386225 550 0 512 0
>> 0 0
>> 505682 1014K 89769 100619 386225 90 0 50 0
>> 0 0
>> 506772 1011K 89782 100619 388439 6973 15 1797 0
>> 1 0
>> 550258 968746 89827 99598 388175 40677 7 8407 0
>> 1 0
>> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
>> free active spec inactive wire faults copy 0fill reactive
>> pageins pageout
>> 585656 935138 89879 98682 387121 320304K 8994611 160203K 3094025
>> 9228060 1546121
>> 585477 935589 89892 98682 386906 10654 1 2648 0
>> 0 0
>> 586236 935269 89898 98683 386610 2120 2 1473 0
>> 1 0
>> 586650 935141 89903 98683 386138 833 0 638 0
>> 2 0
>> 586647 933883 89903 98683 387378 3028 174 1553 0
>> 0 0
>> 587883 932971 89909 98683 387427 882 0 638 0
>> 0 0
>> 588259 932579 89915 98683 386994 1988 0 1383 0
>> 0 0
>> 589697 931139 89923 98683 387427 1174 4 709 0
>> 0 0
>> 589306 931423 89925 98684 387052 2432 0 1743 0
>> 0 0
>> 589128 931606 89926 98688 387043 2309 0 1632 0
>> 5 0
>> 590286 930456 89904 98689 387413 3506 7 2453 0
>> 16 0
>> 590411 931982 89905 98689 385674 1801 0 1384 0
>> 0 0
>> 590385 931329 89905 98689 386327 2954 1 2187 0
>> 0 0
>> 590551 931731 89910 98664 385920 2060 0 1543 0
>> 0 0
>> 589471 931873 89911 98664 386856 5511 252 3120 0
>> 0 0
>> 589397 931941 89911 98659 386769 1351 0 1090 0
>> 0 0
>>
>>
>> So while I'm not 100% certain that this isn't related to swapping and
>> garbage collection, it seems like something else is probably the cause.
>>
>> Can you guys give me some more pointers/guidance on what I can check to
>> try to get past this issue?
>> Would seeing any of the configuration or hadoop driver code help you get a
>> better idea of what I might be dealing with?
>> If there's any more due diligence I can/should be doing, just let me know.
>>
>> I'm sure it's more than likely a configuration issue on my end, I'm really
>> pulling at straws at this point.
>>
>> Thanks again for all the help,
>> -Arjumand
>>
>>
>>
>> On Thu, Aug 16, 2012 at 3:54 PM, John Vines <vi...@apache.org> wrote:
>>
>>> I'm sorry, I missed the use of the offline scanner being used.
>>>
>>> Issues with locks being lost like you described typically occur from
>>> swapping issues. You said you used the 512MB footprint Accumulo
>>> configuration, but you should also make sure that your memory settings from
>>> the various hadoop settings, being sure to take into account the number of
>>> map and reduce jobs occurring, do not exceed your physical memory (plus any
>>> other processes you may be running on your system). Swapping + garbage
>>> collection have proven to be quite effective at causing lost locks.
>>>
>>> John
>>
>> ===
>>
>>
>> On Thu, Aug 16, 2012 at 3:48 PM, Arjumand Bonhomme <ju...@gmail.com>
>> wrote:
>>>
>>> While this isn't my original concern/problem, so it's not terribly
>>> important, but I'm not sure I understand and I'd like to learn as much as
>>> possible.
>>>
>>> Why wouldn't it work with the cloned table offline?
>>> I followed the example laid out in
>>> org.apache.accumulo.examples.simple.mapreduce.UniqueColumns
>>> Using the "AccumuloInputFormat.setScanOffline(job.getConfiguration(),
>>> true);" setup.
>>>
>>> Can you give me some detail as to why it definitely would not have worked
>>> offline? Is this method no longer supported.
>>>
>>> Thanks!
>>> -Arjumand
>>>
>>>
>>> On Thu, Aug 16, 2012 at 3:24 PM, John Vines <vi...@apache.org> wrote:
>>>>
>>>> You're work ont he clone table failed because you took it offline. The
>>>> table needs to be online in order to do a job against it.
>>>>
>>>> John
>>>>
>>>>
>>>> On Thu, Aug 16, 2012 at 2:36 PM, Arjumand Bonhomme <ju...@gmail.com>
>>>> wrote:
>>>>>
>>>>> Jim, William, Adam: Thanks for your help with this, I'm running out of
>>>>> ideas to google search for answers.
>>>>>
>>>>> I'm going to try to answer your questions:
>>>>>
>>>>> 1) I had already adjusted the maxclientcxns in zoo.cfg to be 100. I
>>>>> didn't see anything in log indicating that it was shutting down connections
>>>>> due to reaching a connection limit. However, throughout the zookeeper logs,
>>>>> even before the hadoop job was run. I did see lots of lines like these. Up
>>>>> til this point, I've assumed it's innocuous and unrelated to my issue.
>>>>> INFO [Thread-371:NIOServerCnxn@1435] - Closed socket connection for
>>>>> client /127.0.0.1:59158 (no session established for client)
>>>>>
>>>>> 2) I had also already adjusted the dfs.datanode.max.xcievers property
>>>>> to 4096 in hdfs-site.xml. An investigation of the log shows that this limit
>>>>> is not being reached. It had been being reached at some point before I
>>>>> increased the value from the default. I had increased the value while
>>>>> troubleshooting, but prior to posting to this list; it didn't appear to have
>>>>> a noticeable affect on the behavior of the hadoop job.
>>>>>
>>>>> 3) I'm writing out to a sequence file, so accumulo is only being used
>>>>> for input. As a side note, at one point during my troubleshooting, I
>>>>> compacted, cloned, and then took the cloned table offline and tried to use
>>>>> that instead. That failed immediately, without processing any records.
>>>>> From the stacktrace, it appeared as though the iterator was trying to use
>>>>> one of the files for the original table (from what I understand about
>>>>> cloning, this is normal b/c no changes had been made to the original table)
>>>>> but said it did not exist. I was, however, able to find the file on hdfs.
>>>>> So I just gave up on that. Also, under the normal case, ie using the
>>>>> original table online, nothing is writing to the table while the hadoop job
>>>>> is running.
>>>>>
>>>>> 4) My original open file limit was the os default of 256. So I upped
>>>>> it to 1024, and performed another attempt. The behavior was the same as
>>>>> before.
>>>>>
>>>>> I'm including a snippet from the tserver debug log. It looks like an
>>>>> expired session might be the root of the problem, but I'm not sure what
>>>>> would cause that:
>>>>> 16 13:47:26,284 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49730 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>>> 16 13:47:26,619 [tabletserver.TabletServer] DEBUG: UpSess
>>>>> 127.0.0.1:49719 45 in 0.006s, at=[0 0 0.00 1] ft=0.004s(pt=0.001s lt=0.002s
>>>>> ct=0.001s)
>>>>> 16 13:47:31,317 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49740 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>>> 16 13:47:36,350 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49750 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>>> 16 13:47:41,377 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49760 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>>> 16 13:47:46,278 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49771 !0 4 entries in 0.02 secs, nbTimes = [17 17 17.00 1]
>>>>> 16 13:47:46,305 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49771 !0 2 entries in 0.01 secs, nbTimes = [14 14 14.00 1]
>>>>> 16 13:47:46,406 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:49782 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>>> 16 13:47:47,487 [tabletserver.TabletServer] DEBUG: gc
>>>>> ParNew=0.07(+0.01) secs ConcurrentMarkSweep=0.00(+0.00) secs
>>>>> freemem=111,234,160(+14,477,728) totalmem=132,055,040
>>>>> 16 13:47:51,452 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>>> 16 13:47:51,462 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50970 !0 8 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>>>>> 16 13:47:51,474 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50977 !0 0 entries in 0.01 secs, nbTimes = [2 2 2.00 1]
>>>>> 16 13:47:51,477 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50970 !0 26 entries in 0.01 secs, nbTimes = [11 11 11.00 1]
>>>>> 16 13:47:51,494 [tabletserver.LargestFirstMemoryManager] DEBUG: IDLE
>>>>> minor compaction chosen
>>>>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>>>>> COMPACTING !0<;~ total = 120,840 ingestMemory = 120,840
>>>>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>>>>> chosenMem = 2,416 chosenIT = 300.23 load 3,044
>>>>> 16 13:47:51,498 [tabletserver.Tablet] DEBUG: MinC initiate lock 0.00
>>>>> secs
>>>>> 16 13:47:51,502 [tabletserver.MinorCompactor] DEBUG: Begin minor
>>>>> compaction /accumulo/tables/!0/default_tablet/F000051i.rf_tmp !0<;~
>>>>> 16 13:47:51,525 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>>> 16 13:47:51,532 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>>>>> 16 13:47:51,538 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: BEFORE
>>>>> compactionThreshold = 0.605 maxObserved = 120,840
>>>>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: AFTER
>>>>> compactionThreshold = 0.666
>>>>> 16 13:47:51,942 [tabletserver.Compactor] DEBUG: Compaction !0<;~ 24
>>>>> read | 4 written | 4,800 entries/sec | 0.005 secs
>>>>> 16 13:47:51,950 [tabletserver.Tablet] DEBUG: Logs for memory compacted:
>>>>> !0<;~ 127.0.0.1:11224/770e1b91-351a-45ac-8992-c0fb602ac51c
>>>>> 16 13:47:51,956 [log.TabletServerLogger] DEBUG: wrote MinC finish 35:
>>>>> writeTime:1ms
>>>>> 16 13:47:51,956 [tabletserver.Tablet] TABLET_HIST: !0<;~ MinC [memory]
>>>>> -> /default_tablet/F000051i.rf
>>>>> 16 13:47:51,957 [tabletserver.Tablet] DEBUG: MinC finish lock 0.00 secs
>>>>> !0<;~
>>>>> 16 13:47:52,650 [tabletserver.TabletServer] DEBUG: UpSess
>>>>> 127.0.0.1:51480 43 in 0.009s, at=[0 0 0.00 1] ft=0.005s(pt=0.001s lt=0.003s
>>>>> ct=0.001s)
>>>>> 16 13:47:53,233 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>>>>> Total=0.0769043MB (80640), Free=19.923096MB (20890880), Max=20.0MB
>>>>> (20971520), Counts: Blocks=33, Access=43, Hit=10, Miss=33, Evictions=0,
>>>>> Evicted=0, Ratios: Hit Ratio=23.255814611911774%, Miss
>>>>> Ratio=76.74418687820435%, Evicted/Run=NaN, Duplicate Reads=0
>>>>> 16 13:47:53,254 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>>>>> Total=0.0128479MB (13472), Free=6.987152MB (7326560), Max=7.0MB (7340032),
>>>>> Counts: Blocks=20, Access=127, Hit=106, Miss=21, Evictions=0, Evicted=0,
>>>>> Ratios: Hit Ratio=83.4645688533783%, Miss Ratio=16.535432636737823%,
>>>>> Evicted/Run=NaN, Duplicate Reads=1
>>>>> 16 13:47:53,491 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>>>>> secs, wait 0.00 secs
>>>>> 16 13:47:53,493 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>>>>> secs, wait 0.00 secs
>>>>> 16 13:47:53,494 [tabletserver.Tablet] DEBUG: Starting MajC !0;~;!0<
>>>>> (NORMAL) [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>>>>> /table_info/A000051j.rf_tmp
>>>>> 16 13:47:53,495 [tabletserver.Tablet] DEBUG: Starting MajC !0;!0<<
>>>>> (NORMAL) [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>>>>> /root_tablet/A000051k.rf_tmp
>>>>> 16 13:47:53,683 [tabletserver.Compactor] DEBUG: Compaction !0;!0<< 39
>>>>> read | 21 written | 276 entries/sec | 0.141 secs
>>>>> 16 13:47:53,701 [tabletserver.Compactor] DEBUG: Compaction !0;~;!0< 56
>>>>> read | 51 written | 323 entries/sec | 0.173 secs
>>>>> 16 13:47:53,708 [tabletserver.Tablet] DEBUG: MajC finish lock 0.02 secs
>>>>> 16 13:47:53,708 [tabletserver.Tablet] TABLET_HIST: !0;!0<< MajC
>>>>> [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>>>>> /root_tablet/A000051k.rf
>>>>> 16 13:47:53,712 [tabletserver.TabletServer] INFO : Adding 1 logs for
>>>>> extent !0<;~ as alias 2
>>>>> 16 13:47:53,726 [tabletserver.Tablet] DEBUG: MajC finish lock 0.00 secs
>>>>> 16 13:47:53,726 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< MajC
>>>>> [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>>>>> /table_info/A000051j.rf
>>>>> 16 13:47:54,497 [tabletserver.TabletServer] DEBUG: gc
>>>>> ParNew=0.09(+0.02) secs ConcurrentMarkSweep=0.00(+0.00) secs
>>>>> freemem=97,183,880(-1,627,536) totalmem=132,055,040
>>>>> 16 13:47:54,694 [tabletserver.TabletServer] DEBUG: UpSess
>>>>> 127.0.0.1:51480 146 in 0.034s, at=[0 0 0.00 1] ft=0.013s(pt=0.001s lt=0.008s
>>>>> ct=0.004s)
>>>>> 16 13:47:56,527 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:53005 !0 0 entries in 0.02 secs, nbTimes = [15 15 15.00 1]
>>>>> 16 13:48:01,503 [tabletserver.TabletServer] DEBUG: gc
>>>>> ParNew=0.09(+0.01) secs ConcurrentMarkSweep=0.00(+0.00) secs
>>>>> freemem=98,415,928(+12,106,904) totalmem=132,055,040
>>>>> 16 13:48:01,576 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:55688 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>>>>> 127.0.0.1:65352 2 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
>>>>> ranges:1)
>>>>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>>>>> 127.0.0.1:65358 4 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
>>>>> ranges:1)
>>>>> 16 13:48:06,620 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>>> 127.0.0.1:58247 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>>> 16 13:48:44,595 [zookeeper.ZooLock] DEBUG: event null None Disconnected
>>>>> 16 13:48:44,927 [zookeeper.ZooLock] DEBUG: event null None Expired
>>>>> 16 13:48:44,943 [tabletserver.TabletServer] FATAL: Lost tablet server
>>>>> lock (reason = SESSION_EXPIRED), exiting.
>>>>>
>>>>>
>>>>> I'm also including a snippet from the zookeeper log as well. Around
>>>>> the same the tserver logs show the loss of the tablet server lock due to
>>>>> expired session, the zookeeper logs mentions the expiration of several
>>>>> sessions due to timeout.
>>>>> 2012-08-16 13:48:07,368 - INFO
>>>>> [Thread-370:NIOServerCnxn$StatCommand@1153] - Stat command output
>>>>> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /127.0.0.1:58633 (no session established
>>>>> for client)
>>>>> 2012-08-16 13:48:08,371 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] -
>>>>> Accepted socket connection from /127.0.0.1:59158
>>>>> 2012-08-16 13:48:08,372 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing
>>>>> stat command from /127.0.0.1:59158
>>>>> 2012-08-16 13:48:08,378 - INFO
>>>>> [Thread-371:NIOServerCnxn$StatCommand@1153] - Stat command output
>>>>> 2012-08-16 13:48:08,379 - INFO [Thread-371:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /127.0.0.1:59158 (no session established
>>>>> for client)
>>>>> 2012-08-16 13:48:09,395 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] -
>>>>> Accepted socket connection from /127.0.0.1:59635
>>>>> 2012-08-16 13:48:09,395 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing
>>>>> stat command from /127.0.0.1:59635
>>>>> 2012-08-16 13:48:09,399 - INFO
>>>>> [Thread-372:NIOServerCnxn$StatCommand@1153] - Stat command output
>>>>> 2012-08-16 13:48:09,400 - INFO [Thread-372:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /127.0.0.1:59635 (no session established
>>>>> for client)
>>>>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80005, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80004, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:32,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80001, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:32,001 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80005
>>>>> 2012-08-16 13:48:32,001 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80004
>>>>> 2012-08-16 13:48:32,001 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80001
>>>>> 2012-08-16 13:48:32,003 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /127.0.0.1:65339 which had sessionid
>>>>> 0x1393086dfb80005
>>>>> 2012-08-16 13:48:34,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80002, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:36,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80007, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:38,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb8004d, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:38,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80006, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:40,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>>> Expiring session 0x1393086dfb80003, timeout of 30000ms exceeded
>>>>> 2012-08-16 13:48:44,456 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65332 which had
>>>>> sessionid 0x1393086dfb80004
>>>>> 2012-08-16 13:48:44,458 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /127.0.0.1:65316 which had sessionid
>>>>> 0x1393086dfb80001
>>>>> 2012-08-16 13:48:44,461 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80002
>>>>> 2012-08-16 13:48:44,482 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80007
>>>>> 2012-08-16 13:48:44,484 - WARN
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@639] - Exception
>>>>> causing close of session 0x1393086dfb80003 due to java.io.IOException:
>>>>> Connection reset by peer
>>>>> 2012-08-16 13:48:44,486 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65317 which had
>>>>> sessionid 0x1393086dfb80002
>>>>> 2012-08-16 13:48:44,491 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb8004d
>>>>> 2012-08-16 13:48:44,493 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80006
>>>>> 2012-08-16 13:48:44,495 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed
>>>>> socket connection for client /fe80:0:0:0:0:0:0:1%1:65330 which had sessionid
>>>>> 0x1393086dfb80003
>>>>> 2012-08-16 13:48:44,495 - WARN
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] -
>>>>> EndOfStreamException: Unable to read additional data from client sessionid
>>>>> 0x1393086dfb80007, likely client has closed socket
>>>>> 2012-08-16 13:48:44,496 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed
>>>>> socket connection for client /0:0:0:0:0:0:0:1%0:65343 which had sessionid
>>>>> 0x1393086dfb80007
>>>>> 2012-08-16 13:48:44,496 - WARN
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] -
>>>>> EndOfStreamException: Unable to read additional data from client sessionid
>>>>> 0x1393086dfb8004d, likely client has closed socket
>>>>> 2012-08-16 13:48:44,497 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed
>>>>> socket connection for client /127.0.0.1:49770 which had sessionid
>>>>> 0x1393086dfb8004d
>>>>> 2012-08-16 13:48:44,498 - INFO
>>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session termination
>>>>> for sessionid: 0x1393086dfb80003
>>>>> 2012-08-16 13:48:44,500 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65341 which had
>>>>> sessionid 0x1393086dfb80006
>>>>> 2012-08-16 13:48:44,613 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] -
>>>>> Accepted socket connection from /0:0:0:0:0:0:0:1%0:59789
>>>>> 2012-08-16 13:48:44,615 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client
>>>>> attempting to renew session 0x1393086dfb80001 at /0:0:0:0:0:0:0:1%0:59789
>>>>> 2012-08-16 13:48:44,616 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1573] - Invalid
>>>>> session 0x1393086dfb80001 for client /0:0:0:0:0:0:0:1%0:59789, probably
>>>>> expired
>>>>> 2012-08-16 13:48:44,616 - INFO
>>>>> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed
>>>>> socket connection for client /0:0:0:0:0:0:0:1%0:59789 which had sessionid
>>>>> 0x1393086dfb80001
>>>>>
>>>>>
>>>>> Sorry for the huge post of log drivel, but if you'd like to see more I
>>>>> can post (or via pastebin) the full logs. I made sure to shut down
>>>>> everything, wipe out the logs, then start everything back up so the logs
>>>>> would be as clean as possible.
>>>>>
>>>>>
>>>>> I looked for a way to increase the session timeout on the
>>>>> AccumuloInputFormat, but there doesn't seem to be one. I'm sure that's not
>>>>> the right fix anyway, but figured I'd mention it.
>>>>>
>>>>>
>>>>> Do you guys have any other suggestions. I'm sure this is due to some
>>>>> configuration error on my part, but I'm running out of idea.
>>>>>
>>>>>
>>>>> Thanks a ton,
>>>>> -Arjumand
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Aug 16, 2012 at 7:24 AM, William Slacum
>>>>> <wi...@accumulo.net> wrote:
>>>>>>
>>>>>> What does your TServer debug log say? Also, are you writing back out
>>>>>> to Accumulo?
>>>>>>
>>>>>> To follow up what Jim said, you can check the zookeeper log to see if
>>>>>> max connections is being hit. You may also want to check and see what your
>>>>>> max xceivers is set to for HDFS and check your Accumulo and HDFS logs to see
>>>>>> if it is mentioned.
>>>>>>
>>>>>>
>>>>>> On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I'm fairly new to both Accumulo and Hadoop, so I think my problem may
>>>>>>> be due to poor configuration on my part, but I'm running out of ideas.
>>>>>>>
>>>>>>> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from
>>>>>>> cdh3u4) in pseudo-distributed mode.
>>>>>>> zookeeper version zookeeper-3.3.5 from cdh3u4
>>>>>>> I'm using the 1.4.1 release of accumulo with a configuration copied
>>>>>>> from "conf/examples/512MB/standalone"
>>>>>>>
>>>>>>> I've got a Map task that is using an accumulo table as the input.
>>>>>>> I'm fetching all rows, but just a single column family, that has
>>>>>>> hundreds or even thousands of different column qualifiers.
>>>>>>> The table has a SummingCombiner installed for the given the column
>>>>>>> family.
>>>>>>>
>>>>>>> The task runs fine at first, but after ~9-15K records (I print the
>>>>>>> record count to the console every 1K records), it hangs and the following
>>>>>>> messages are printed to the console where I'm running the job:
>>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read
>>>>>>> additional data from server sessionid 0x1392cc35b460d1c, likely server has
>>>>>>> closed socket, closing socket connection and attempting reconnect
>>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket
>>>>>>> connection to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection
>>>>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>>>>> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
>>>>>>> connection
>>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
>>>>>>> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client
>>>>>>> connection, connectString=localhost sessionTimeout=30000
>>>>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
>>>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket
>>>>>>> connection to server localhost/0:0:0:0:0:0:0:1:2181
>>>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection
>>>>>>> established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>>>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
>>>>>>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>>>>>>> 0x1392cc35b460d25, negotiated timeout = 30000
>>>>>>> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
>>>>>>> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
>>>>>>> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>>>>>>>
>>>>>>> Sometimes the messages contain a stacktrace like this below:
>>>>>>> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session
>>>>>>> 0x1392cc35b460b40 for server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected
>>>>>>> error, closing socket connection and attempting reconnect
>>>>>>> java.io.IOException: Connection reset by peer
>>>>>>> at sun.nio.ch.FileDispatcher.read0(Native Method)
>>>>>>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>>>>>>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
>>>>>>> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
>>>>>>> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
>>>>>>> at
>>>>>>> org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
>>>>>>> at
>>>>>>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
>>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket
>>>>>>> connection to server localhost/127.0.0.1:2181
>>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection
>>>>>>> established to localhost/127.0.0.1:2181, initiating session
>>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>>>>> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
>>>>>>> connection
>>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
>>>>>>> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client
>>>>>>> connection, connectString=localhost sessionTimeout=30000
>>>>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
>>>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket
>>>>>>> connection to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection
>>>>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
>>>>>>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>>>>>>> 0x1392cc35b460b46, negotiated timeout = 30000
>>>>>>>
>>>>>>>
>>>>>>> I've poked through the logs in accumulo, and I've noticed that when
>>>>>>> it hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
>>>>>>> 16 03:29:46,332 [logger.LogService] DEBUG: event null None
>>>>>>> Disconnected
>>>>>>> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state
>>>>>>> of current session : Expired
>>>>>>> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
>>>>>>> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
>>>>>>> registration at null
>>>>>>> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
>>>>>>> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>>>>>>>
>>>>>>>
>>>>>>> I've noticed that if I make the map task print out the record count
>>>>>>> more frequently (ie every 10 records), it seems to be able get through more
>>>>>>> records than when I only print every 1K records. My assumption was that this
>>>>>>> had something to do with more time being spent in the map task, and not
>>>>>>> fetching data from accumulo. There was at least one occasion where I
>>>>>>> printed to the console for every record, and in that situation it managed to
>>>>>>> process 47K records, although I have been unable to repeat that behavior.
>>>>>>>
>>>>>>> I've also noticed that if I stop and start accumulo, the map-reduce
>>>>>>> job will pickup where it left off, but seems to fail quicker.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Could someone make some suggestions as to what my problem might be?
>>>>>>> It would be greatly appreciated. If you need any additional information
>>>>>>> from me, just let me know. I'd paste my config files, driver setup, and
>>>>>>> example data into this post, but I think it's probably long enough already.
>>>>>>>
>>>>>>>
>>>>>>> Thanks in advance,
>>>>>>> -Arjumand
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Arjumand Bonhomme <ju...@gmail.com>.
Hey guys,
I'm back with some additional information and I'm hoping that you might be
able to help me finally get past this issue.
So I changed my config from the 512MB version to the 1GB version without
any noticeable improvement. The job still became stuck at roughly 10K
input records, and accumulo's zookeeper session timed out as usual. After
thinking about this for a while it occurred to me that I had previously
used accumulo as an input source on over 30K records with no issues at all
(it was writing back out to accumulo as well). So I tried to figure out
why this new job could never reliably get past 10K records. The only real
difference was that the new job was using a Hadoop MapFile as a lookup
table for record values. So after commenting out of the use of the MapFile
and using a single hard-coded value, I ran the job again and it made it
through the entire input very quickly, ~3.5M entries in just over a minute.
So after this I assumed the MapFile was slowing my job down too much for
the accumulo input scanner to keep its connection with zookeeper. The
MapFile was generated by reading some data from one of my tables in
accumulo, so the next thing I tried (which I figured would be very bad in
practice) was to read the lookup data directly from accumulo; I re-wrote
the mapper to do a scanner lookup against the other accumulo table for each
input record. This immediately worked much better than the MapFile. It
was pretty slow, but it managed to get up to ~92K records before it failed.
Accumulo once again lost its zookeeper session due to timeout.
I recognize that this is not exactly an accumulo issue, but I was hoping
that you might be able to provide me some guidance as to how
to ultimately get past this issue. I'm using this against a small sample
of what the actual input will be, and I have ~3.5M input records and ~30K
values in my lookup table. Both of these values will likely increase in
size substantially when this is run against the actual input.
Any suggestions about how to approach this problem will be greatly
appreciated.
Thanks,
-Arjumand
BTW, While I recognize this would not be the appropriate way to address my
problem, I was wondering if there was a reason why
the org.apache.accumulo.core.client.ZooKeeperInstance constructor allows
you specify/request a specific session timeout, but the same thing is not
available on the .setZooKeeperInstance() methods of
the AccumuloInputFormat/AccumuloOutputFormat classe?
On Thu, Aug 16, 2012 at 10:10 PM, Arjumand Bonhomme <ju...@gmail.com>wrote:
> Thanks for the input, no worries about the offline scanner bit. Although
> if I can ever get past my current issue, I'd love to learn why the offline
> scanner failed as well.
>
> So I took a look at my various other settings, and watched the paging
> while everything was running, and it doesn't appear (at least not to me) to
> be related to swapping.
> I'm using the 512MB accumulo configuration, and I'm running the hadoop
> task with a 256MB heap. I'm running hadoop with the standard
> pseudo-distributed config, except for bumping the dfs.datanode.max.xcievers
> property to 4096. I'm running zookeeper with the OOB config, except for
> the adjustment to maxclientcxns in zoo.cfg increased to be 100
>
> I did a reboot of my machine, then began another series of tests. This
> time I was watching vm_stat while everything was running.
>
> I noticed the same behavior I've been witnessing all along. I'm including
> the stacktrace that was emitted to the tserver log when it hung as it
> usually does.
> 6 20:58:12,311 [zookeeper.ZooLock] DEBUG: event null None Disconnected
> 16 20:58:13,375 [zookeeper.ZooCache] WARN : Zookeeper error, will retry
> org.apache.zookeeper.KeeperException$SessionExpiredException:
> KeeperErrorCode = Session expired for
> /accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7/tables/1/conf/table.compaction.minor.idle
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
> at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
> at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
> at
> org.apache.accumulo.server.conf.TableConfiguration.get(TableConfiguration.java:120)
> at
> org.apache.accumulo.server.conf.TableConfiguration.get(TableConfiguration.java:108)
> at
> org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis(AccumuloConfiguration.java:70)
> at
> org.apache.accumulo.server.tabletserver.LargestFirstMemoryManager.getMemoryManagementActions(LargestFirstMemoryManager.java:95)
> at
> org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework.manageMemory(TabletServerResourceManager.java:312)
> at
> org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework.access$200(TabletServerResourceManager.java:228)
> at
> org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework$2.run(TabletServerResourceManager.java:252)
> at
> org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
> at java.lang.Thread.run(Thread.java:680)
> 16 20:58:13,375 [zookeeper.ZooCache] WARN : Zookeeper error, will retry
> org.apache.zookeeper.KeeperException$SessionExpiredException:
> KeeperErrorCode = Session expired for
> /accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7/config/table.scan.max.memory
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
> at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
> at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
> at
> org.apache.accumulo.server.conf.ZooConfiguration.get(ZooConfiguration.java:109)
> at
> org.apache.accumulo.server.conf.ZooConfiguration._get(ZooConfiguration.java:76)
> at
> org.apache.accumulo.server.conf.ZooConfiguration.get(ZooConfiguration.java:103)
> at
> org.apache.accumulo.core.conf.AccumuloConfiguration.getMemoryInBytes(AccumuloConfiguration.java:47)
> at
> org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:960)
> at
> org.apache.accumulo.server.tabletserver.TabletServerResourceManager.executeReadAhead(TabletServerResourceManager.java:699)
> at
> org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.continueMultiScan(TabletServer.java:1316)
> at
> org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.startMultiScan(TabletServer.java:1284)
> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.accumulo.cloudtrace.instrument.thrift.TraceWrap$1.invoke(TraceWrap.java:59)
> at $Proxy1.startMultiScan(Unknown Source)
> at
> org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.process(TabletClientService.java:2164)
> at
> org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor.process(TabletClientService.java:2037)
> at
> org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:154)
> at
> org.apache.thrift.server.TNonblockingServer$FrameBuffer.invoke(TNonblockingServer.java:631)
> at
> org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:202)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at
> org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
> at java.lang.Thread.run(Thread.java:680)
> 16 20:58:13,379 [zookeeper.ZooLock] DEBUG: event null None Expired
> 16 20:58:13,393 [tabletserver.TabletServer] FATAL: Lost tablet server lock
> (reason = SESSION_EXPIRED), exiting.
>
>
> Below is the matching stacktrace emitted by the hadoop job.
> 12/08/16 20:57:14 INFO zookeeper.ZooKeeper: Initiating client connection,
> connectString=localhost sessionTimeout=30000
> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@47124746
> 12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/fe80:0:0:0:0:0:0:1%1:2181
> 12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Session establishment
> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
> 0x13931fecee3012e, negotiated timeout = 30000
> 12/08/16 20:57:14 INFO mapred.JobClient: Running job: job_local_0001
> 12/08/16 20:57:14 INFO mapred.Task: Using ResourceCalculatorPlugin : null
> 12/08/16 20:57:14 INFO mapred.MapTask: io.sort.mb = 100
> 12/08/16 20:57:15 INFO mapred.MapTask: data buffer = 79691776/99614720
> 12/08/16 20:57:15 INFO mapred.MapTask: record buffer = 262144/327680
> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
> 12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
> 12/08/16 20:57:15 INFO mapred.JobClient: map 0% reduce 0%
> 001000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@feel
> 002000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@perhap
> 12/08/16 20:57:20 INFO mapred.LocalJobRunner:
> 003000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@univers
> 12/08/16 20:57:23 INFO mapred.LocalJobRunner:
> 004000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@doubt
> 005000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@morwai
> 12/08/16 20:57:26 INFO mapred.LocalJobRunner:
> 006000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@tgame
> 007000 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@colleg
> 12/08/16 20:57:29 INFO mapred.LocalJobRunner:
> 008000 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@led
> 12/08/16 20:57:32 INFO mapred.LocalJobRunner:
> 009000
> 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@stephanopoulo
> 010000 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@brother
> 12/08/16 20:57:35 INFO mapred.LocalJobRunner:
> 011000 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@inabl
> 12/08/16 20:57:38 INFO mapred.LocalJobRunner:
> 12/08/16 20:57:41 INFO mapred.LocalJobRunner:
> 12/08/16 20:58:12 INFO zookeeper.ClientCnxn: Client session timed out,
> have not heard from server in 37008ms for sessionid 0x13931fecee3012e,
> closing socket connection and attempting reconnect
> 012000
> 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@saturdai
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/0:0:0:0:0:0:0:1:2181
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/0:0:0:0:0:0:0:1:2181, initiating session
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Unable to reconnect to
> ZooKeeper service, session 0x13931fecee3012e has expired, closing socket
> connection
> 12/08/16 20:58:13 WARN zookeeper.ZooCache: Zookeeper error, will retry
> org.apache.zookeeper.KeeperException$SessionExpiredException:
> KeeperErrorCode = Session expired for
> /accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
> at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
> at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
> at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
> at
> org.apache.accumulo.core.client.ZooKeeperInstance.getInstanceID(ZooKeeperInstance.java:147)
> at
> org.apache.accumulo.core.client.impl.TabletLocator.getInstance(TabletLocator.java:96)
> at
> org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:245)
> at
> org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:94)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: EventThread shut down
> 12/08/16 20:58:13 INFO zookeeper.ZooKeeper: Initiating client connection,
> connectString=localhost sessionTimeout=30000
> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@7f434cb2
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/0:0:0:0:0:0:0:1:2181
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/0:0:0:0:0:0:0:1:2181, initiating session
> 12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Session establishment
> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
> 0x13931fecee30135, negotiated timeout = 30000
> 013000 2012-06-11T09-05-19/abc/06a7b8b2de18727faa635b841b0dd043.txt@anthoni
> 12/08/16 20:58:17 INFO mapred.LocalJobRunner:
>
>
> And finally here is the output from "vm_stat 1". Doesn't look like
> anything was really getting swapped out to disk. While there was a flurry
> of paging (reading pages in) as soon as I started up the job, that paging
> ceased very quickly after that. Then very shortly it hung again as usual.
> When looking at the output, it may help to know that I started the hadoop
> job just after the 3rd banner/header was printed out, and you can see the
> initial flurry of paging and then it stops after roughly 12 seconds.
> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
> free active spec inactive wire faults copy 0fill reactive
> pageins pageout
> 595157 944925 81264 89580 385586 319170K 8990003 159901K 3094025
> 9227006 1546121
> 595491 944110 81292 89605 386400 1909 0 1417 0
> 4 0
> 595204 944911 81292 89579 385625 708 0 551 0
> 0 0
> 595429 944652 81293 89579 385879 1941 0 1314 0
> 0 0
> 595379 945101 81293 89579 385407 616 0 521 0
> 0 0
> 595114 944636 81294 89579 385879 1824 0 1329 0
> 0 0
> 595664 945080 81295 89578 385406 5365 6 4032 0
> 1 0
> 595221 944078 81295 89578 386410 2645 0 1840 0
> 0 0
> 595338 945075 81295 89578 385406 767 2 505 0
> 0 0
> 595061 944463 81295 89578 386059 2113 0 1433 0
> 1 0
> 595194 944936 81295 89578 385587 674 0 565 0
> 0 0
> 595267 944458 81296 89578 386059 1731 0 1293 0
> 0 0
> 595418 944925 81297 89578 385587 780 0 581 0
> 0 0
> 595124 944200 81296 89579 386419 2111 84 1397 0
> 2 0
> 595037 944686 81295 89579 385948 657 2 548 0
> 2 0
> 595054 944213 81295 89579 386420 1785 0 1350 0
> 1 0
> 595289 944687 81295 89579 385948 758 0 565 0
> 1 0
> 595052 944221 81296 89579 386420 1987 0 1356 0
> 0 0
> 595017 944698 81296 89579 385948 768 0 558 0
> 0 0
> 595272 944217 81296 89579 386420 1957 0 1334 0
> 0 0
> 594954 944686 81296 89579 385948 704 0 535 0
> 0 0
> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
> free active spec inactive wire faults copy 0fill reactive
> pageins pageout
> 594997 944166 81296 89579 386420 319204K 8990097 159926K 3094025
> 9227018 1546121
> 594977 944641 81298 89579 385948 784 0 569 0
> 0 0
> 595282 944160 81298 89579 386420 1874 0 1368 0
> 1 0
> 595252 944633 81298 89579 385948 735 0 561 0
> 1 0
> 595057 944186 81298 89579 386420 1972 0 1391 0
> 0 0
> 595039 944481 81298 89579 386129 929 0 564 0
> 1 0
> 595512 943232 81346 89579 387188 3109 31 2542 0
> 1 0
> 595395 944491 81346 89579 385948 742 0 626 0
> 0 0
> 595134 944016 81346 89579 386420 1844 1 1335 0
> 0 0
> 595329 944501 81346 89579 385948 694 0 546 0
> 0 0
> 595329 944016 81346 89579 386431 1801 0 1330 0
> 0 0
> 595471 944458 81347 89579 385949 797 0 669 0
> 0 0
> 595433 943918 81347 89579 386431 2380 0 1806 0
> 0 0
> 595118 944433 81347 89579 385948 678 0 567 0
> 0 0
> 595142 943989 81347 89571 386420 1863 0 1378 0
> 1 0
> 595097 944462 81347 89571 385948 654 0 540 0
> 1 0
> 595126 944060 81347 89571 386420 1874 0 1430 0
> 0 0
> 595068 944674 81348 89571 385948 787 0 678 0
> 0 0
> 595110 944174 81348 89571 386420 1863 0 1345 0
> 0 0
> 595362 944627 81348 89571 385948 768 2 575 0
> 0 0
> 595115 944131 81348 89572 386420 1755 0 1323 0
> 0 0
> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
> free active spec inactive wire faults copy 0fill reactive
> pageins pageout
> 595142 944657 81348 89571 385948 319233K 8990131 159947K 3094025
> 9227025 1546121
> 591569 946751 81348 89571 387281 9240 786 4725 0
> 8 0
> 579748 958406 81358 90168 386840 20057 287 13388 0
> 492 0
> 563598 959835 88682 97236 387319 20388 931 4220 0
> 0 0
> 535840 986697 88692 98643 386906 59619 1497 32467 0
> 164 0
> 534240 987263 88696 99134 387394 42744 0 6762 0
> 98 0
> 529479 992037 88723 100123 386187 39552 3 9006 0
> 10 0
> 529065 991283 88760 100107 387430 32014 153 7500 0
> 41 0
> 528147 992276 88784 100376 386966 37719 2 6050 0
> 15 0
> 527155 993536 88818 100380 386672 34999 0 6928 0
> 1 0
> 526748 992973 88851 100380 387747 34379 1 5240 0
> 0 0
> 526835 994071 88902 100404 386674 34698 2 7063 0
> 8 0
> 524993 994621 89207 100582 387027 28374 460 6018 0
> 182 0
> 524182 995184 89286 100582 387544 42552 226 7313 0
> 0 0
> 523704 995987 89328 100629 387076 42731 1 6357 0
> 0 0
> 523154 995939 89367 100629 387554 41100 0 7338 0
> 0 0
> 522867 996724 89405 100629 387307 39246 0 6089 0
> 0 0
> 522160 996665 89451 100639 387563 37614 1 7463 0
> 0 0
> 522414 997920 89501 100639 386324 40044 0 6995 0
> 0 0
> 521524 997171 89539 100639 387569 39447 0 7048 0
> 1 0
> 520258 998993 89575 100645 387107 37476 0 6789 0
> 0 0
> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
> free active spec inactive wire faults copy 0fill reactive
> pageins pageout
> 519291 999119 89614 100645 387771 319989K 8994481 160119K 3094025
> 9228045 1546121
> 518546 1000K 89653 100647 387672 39985 81 6722 0
> 0 0
> 518354 1000K 89701 100647 387196 33629 0 7757 0
> 0 0
> 516218 1002K 89737 100647 387192 39403 0 7368 0
> 1 0
> 513388 1004K 89764 100648 388210 36737 0 14479 0
> 0 0
> 507991 1011K 89784 100648 386465 32460 1 13133 0
> 1 0
> 506346 1012K 89816 100648 387917 39257 2 7246 0
> 1 0
> 506298 1012K 89816 100648 387356 626 0 313 0
> 0 0
> 506070 1013K 89816 100648 386259 217 1 102 0
> 0 0
> 506101 1013K 89816 100648 386259 386 0 99 0
> 0 0
> 505974 1012K 89769 100618 387548 1417 21 1250 0
> 9 0
> 506078 1013K 89769 100618 386259 297 0 191 0
> 0 0
> 506349 1013K 89769 100618 386259 200 0 100 0
> 0 0
> 506105 1013K 89769 100618 386259 211 0 104 0
> 0 0
> 506351 1013K 89769 100618 386259 187 0 89 0
> 0 0
> 506114 1013K 89769 100618 386599 269 0 185 0
> 0 0
> 506228 1013K 89769 100618 386258 228 0 129 0
> 0 0
> 506231 1013K 89769 100618 386258 147 0 83 0
> 0 0
> 506486 1013K 89769 100618 386258 306 0 119 0
> 0 0
> 506215 1013K 89769 100619 386258 174 0 62 0
> 0 0
> 505927 1014K 89769 100619 386258 593 0 524 0
> 0 0
> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
> free active spec inactive wire faults copy 0fill reactive
> pageins pageout
> 506437 1013K 89769 100619 386700 320215K 8994587 160180K 3094025
> 9228057 1546121
> 506670 1013K 89769 100619 386225 128 0 45 0
> 0 0
> 506347 1013K 89769 100619 386225 268 0 58 0
> 0 0
> 506033 1013K 89769 100619 386225 127 0 89 0
> 0 0
> 506221 1013K 89769 100619 386225 86 0 41 0
> 0 0
> 506157 1013K 89769 100619 386225 81 0 38 0
> 0 0
> 506096 1013K 89769 100619 386225 345 0 186 0
> 0 0
> 506044 1013K 89769 100619 386236 291 0 224 0
> 0 0
> 505980 1013K 89769 100619 386225 81 0 39 0
> 0 0
> 505916 1013K 89769 100619 386225 99 0 50 0
> 0 0
> 505839 1013K 89769 100619 386225 79 0 36 0
> 0 0
> 506028 1013K 89769 100619 386225 102 0 61 0
> 0 0
> 505760 1014K 89769 100619 386225 286 0 229 0
> 0 0
> 506151 1013K 89769 100619 386406 140 0 88 0
> 0 0
> 506097 1013K 89769 100619 386406 101 2 47 0
> 0 0
> 506028 1014K 89769 100619 386225 175 0 62 0
> 0 0
> 506230 1014K 89769 100619 386225 227 0 39 0
> 0 0
> 505939 1014K 89769 100619 386225 550 0 512 0
> 0 0
> 505682 1014K 89769 100619 386225 90 0 50 0
> 0 0
> 506772 1011K 89782 100619 388439 6973 15 1797 0
> 1 0
> 550258 968746 89827 99598 388175 40677 7 8407 0
> 1 0
> Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
> free active spec inactive wire faults copy 0fill reactive
> pageins pageout
> 585656 935138 89879 98682 387121 320304K 8994611 160203K 3094025
> 9228060 1546121
> 585477 935589 89892 98682 386906 10654 1 2648 0
> 0 0
> 586236 935269 89898 98683 386610 2120 2 1473 0
> 1 0
> 586650 935141 89903 98683 386138 833 0 638 0
> 2 0
> 586647 933883 89903 98683 387378 3028 174 1553 0
> 0 0
> 587883 932971 89909 98683 387427 882 0 638 0
> 0 0
> 588259 932579 89915 98683 386994 1988 0 1383 0
> 0 0
> 589697 931139 89923 98683 387427 1174 4 709 0
> 0 0
> 589306 931423 89925 98684 387052 2432 0 1743 0
> 0 0
> 589128 931606 89926 98688 387043 2309 0 1632 0
> 5 0
> 590286 930456 89904 98689 387413 3506 7 2453 0
> 16 0
> 590411 931982 89905 98689 385674 1801 0 1384 0
> 0 0
> 590385 931329 89905 98689 386327 2954 1 2187 0
> 0 0
> 590551 931731 89910 98664 385920 2060 0 1543 0
> 0 0
> 589471 931873 89911 98664 386856 5511 252 3120 0
> 0 0
> 589397 931941 89911 98659 386769 1351 0 1090 0
> 0 0
>
>
> So while I'm not 100% certain that this isn't related to swapping and
> garbage collection, it seems like something else is probably the cause.
>
> Can you guys give me some more pointers/guidance on what I can check to
> try to get past this issue?
> Would seeing any of the configuration or hadoop driver code help you get a
> better idea of what I might be dealing with?
> If there's any more due diligence I can/should be doing, just let me know.
>
> I'm sure it's more than likely a configuration issue on my end, I'm really
> pulling at straws at this point.
>
> Thanks again for all the help,
> -Arjumand
>
>
>
> On Thu, Aug 16, 2012 at 3:54 PM, John Vines <vi...@apache.org> wrote:
>
> I'm sorry, I missed the use of the offline scanner being used.
>>
>> Issues with locks being lost like you described typically occur from
>> swapping issues. You said you used the 512MB footprint Accumulo
>> configuration, but you should also make sure that your memory settings from
>> the various hadoop settings, being sure to take into account the number of
>> map and reduce jobs occurring, do not exceed your physical memory (plus any
>> other processes you may be running on your system). Swapping + garbage
>> collection have proven to be quite effective at causing lost locks.
>>
>> John
>
> ===
>
>
> On Thu, Aug 16, 2012 at 3:48 PM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>
>> While this isn't my original concern/problem, so it's not terribly
>> important, but I'm not sure I understand and I'd like to learn as much as
>> possible.
>>
>> Why wouldn't it work with the cloned table offline?
>> I followed the example laid out in
>> org.apache.accumulo.examples.simple.mapreduce.UniqueColumns
>> Using the "AccumuloInputFormat.setScanOffline(job.getConfiguration(),
>> true);" setup.
>>
>> Can you give me some detail as to why it definitely would not have worked
>> offline? Is this method no longer supported.
>>
>> Thanks!
>> -Arjumand
>>
>>
>> On Thu, Aug 16, 2012 at 3:24 PM, John Vines <vi...@apache.org> wrote:
>>
>>> You're work ont he clone table failed because you took it offline. The
>>> table needs to be online in order to do a job against it.
>>>
>>> John
>>>
>>>
>>> On Thu, Aug 16, 2012 at 2:36 PM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>>>
>>>> Jim, William, Adam: Thanks for your help with this, I'm running out of
>>>> ideas to google search for answers.
>>>>
>>>> I'm going to try to answer your questions:
>>>>
>>>> 1) I had already adjusted the maxclientcxns in zoo.cfg to be 100. I
>>>> didn't see anything in log indicating that it was shutting down connections
>>>> due to reaching a connection limit. However, throughout the zookeeper
>>>> logs, even before the hadoop job was run. I did see lots of lines like
>>>> these. Up til this point, I've assumed it's innocuous and unrelated to my
>>>> issue.
>>>> INFO [Thread-371:NIOServerCnxn@1435] - Closed socket connection for
>>>> client /127.0.0.1:59158 (no session established for client)
>>>>
>>>> 2) I had also already adjusted the dfs.datanode.max.xcievers property
>>>> to 4096 in hdfs-site.xml. An investigation of the log shows that this
>>>> limit is not being reached. It had been being reached at some point before
>>>> I increased the value from the default. I had increased the value while
>>>> troubleshooting, but prior to posting to this list; it didn't appear to
>>>> have a noticeable affect on the behavior of the hadoop job.
>>>>
>>>> 3) I'm writing out to a sequence file, so accumulo is only being used
>>>> for input. As a side note, at one point during my troubleshooting, I
>>>> compacted, cloned, and then took the cloned table offline and tried to use
>>>> that instead. That failed immediately, without processing any records.
>>>> From the stacktrace, it appeared as though the iterator was trying to use
>>>> one of the files for the original table (from what I understand about
>>>> cloning, this is normal b/c no changes had been made to the original table)
>>>> but said it did not exist. I was, however, able to find the file on hdfs.
>>>> So I just gave up on that. Also, under the normal case, ie using the
>>>> original table online, nothing is writing to the table while the hadoop job
>>>> is running.
>>>>
>>>> 4) My original open file limit was the os default of 256. So I upped
>>>> it to 1024, and performed another attempt. The behavior was the same as
>>>> before.
>>>>
>>>> I'm including a snippet from the tserver debug log. It looks like an
>>>> expired session might be the root of the problem, but I'm not sure what
>>>> would cause that:
>>>> 16 13:47:26,284 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49730 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>> 16 13:47:26,619 [tabletserver.TabletServer] DEBUG: UpSess
>>>> 127.0.0.1:49719 45 in 0.006s, at=[0 0 0.00 1] ft=0.004s(pt=0.001s
>>>> lt=0.002s ct=0.001s)
>>>> 16 13:47:31,317 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49740 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>> 16 13:47:36,350 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49750 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>> 16 13:47:41,377 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49760 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>> 16 13:47:46,278 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49771 !0 4 entries in 0.02 secs, nbTimes = [17 17 17.00 1]
>>>> 16 13:47:46,305 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49771 !0 2 entries in 0.01 secs, nbTimes = [14 14 14.00 1]
>>>> 16 13:47:46,406 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:49782 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>> 16 13:47:47,487 [tabletserver.TabletServer] DEBUG: gc
>>>> ParNew=0.07(+0.01) secs ConcurrentMarkSweep=0.00(+0.00) secs
>>>> freemem=111,234,160(+14,477,728) totalmem=132,055,040
>>>> 16 13:47:51,452 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>> 16 13:47:51,462 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50970 !0 8 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>>>> 16 13:47:51,474 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50977 !0 0 entries in 0.01 secs, nbTimes = [2 2 2.00 1]
>>>> 16 13:47:51,477 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50970 !0 26 entries in 0.01 secs, nbTimes = [11 11 11.00 1]
>>>> 16 13:47:51,494 [tabletserver.LargestFirstMemoryManager] DEBUG: IDLE
>>>> minor compaction chosen
>>>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>>>> COMPACTING !0<;~ total = 120,840 ingestMemory = 120,840
>>>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>>>> chosenMem = 2,416 chosenIT = 300.23 load 3,044
>>>> 16 13:47:51,498 [tabletserver.Tablet] DEBUG: MinC initiate lock 0.00
>>>> secs
>>>> 16 13:47:51,502 [tabletserver.MinorCompactor] DEBUG: Begin minor
>>>> compaction /accumulo/tables/!0/default_tablet/F000051i.rf_tmp !0<;~
>>>> 16 13:47:51,525 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>> 16 13:47:51,532 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>>>> 16 13:47:51,538 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: BEFORE
>>>> compactionThreshold = 0.605 maxObserved = 120,840
>>>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: AFTER
>>>> compactionThreshold = 0.666
>>>> 16 13:47:51,942 [tabletserver.Compactor] DEBUG: Compaction !0<;~ 24
>>>> read | 4 written | 4,800 entries/sec | 0.005 secs
>>>> 16 13:47:51,950 [tabletserver.Tablet] DEBUG: Logs for memory compacted:
>>>> !0<;~ 127.0.0.1:11224/770e1b91-351a-45ac-8992-c0fb602ac51c
>>>> 16 13:47:51,956 [log.TabletServerLogger] DEBUG: wrote MinC finish
>>>> 35: writeTime:1ms
>>>> 16 13:47:51,956 [tabletserver.Tablet] TABLET_HIST: !0<;~ MinC [memory]
>>>> -> /default_tablet/F000051i.rf
>>>> 16 13:47:51,957 [tabletserver.Tablet] DEBUG: MinC finish lock 0.00 secs
>>>> !0<;~
>>>> 16 13:47:52,650 [tabletserver.TabletServer] DEBUG: UpSess
>>>> 127.0.0.1:51480 43 in 0.009s, at=[0 0 0.00 1] ft=0.005s(pt=0.001s
>>>> lt=0.003s ct=0.001s)
>>>> 16 13:47:53,233 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>>>> Total=0.0769043MB (80640), Free=19.923096MB (20890880), Max=20.0MB
>>>> (20971520), Counts: Blocks=33, Access=43, Hit=10, Miss=33, Evictions=0,
>>>> Evicted=0, Ratios: Hit Ratio=23.255814611911774%, Miss
>>>> Ratio=76.74418687820435%, Evicted/Run=NaN, Duplicate Reads=0
>>>> 16 13:47:53,254 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>>>> Total=0.0128479MB (13472), Free=6.987152MB (7326560), Max=7.0MB (7340032),
>>>> Counts: Blocks=20, Access=127, Hit=106, Miss=21, Evictions=0, Evicted=0,
>>>> Ratios: Hit Ratio=83.4645688533783%, Miss Ratio=16.535432636737823%,
>>>> Evicted/Run=NaN, Duplicate Reads=1
>>>> 16 13:47:53,491 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>>>> secs, wait 0.00 secs
>>>> 16 13:47:53,493 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>>>> secs, wait 0.00 secs
>>>> 16 13:47:53,494 [tabletserver.Tablet] DEBUG: Starting MajC !0;~;!0<
>>>> (NORMAL) [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>>>> /table_info/A000051j.rf_tmp
>>>> 16 13:47:53,495 [tabletserver.Tablet] DEBUG: Starting MajC !0;!0<<
>>>> (NORMAL) [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>>>> /root_tablet/A000051k.rf_tmp
>>>> 16 13:47:53,683 [tabletserver.Compactor] DEBUG: Compaction !0;!0<< 39
>>>> read | 21 written | 276 entries/sec | 0.141 secs
>>>> 16 13:47:53,701 [tabletserver.Compactor] DEBUG: Compaction !0;~;!0< 56
>>>> read | 51 written | 323 entries/sec | 0.173 secs
>>>> 16 13:47:53,708 [tabletserver.Tablet] DEBUG: MajC finish lock 0.02 secs
>>>> 16 13:47:53,708 [tabletserver.Tablet] TABLET_HIST: !0;!0<< MajC
>>>> [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>>>> /root_tablet/A000051k.rf
>>>> 16 13:47:53,712 [tabletserver.TabletServer] INFO : Adding 1 logs for
>>>> extent !0<;~ as alias 2
>>>> 16 13:47:53,726 [tabletserver.Tablet] DEBUG: MajC finish lock 0.00 secs
>>>> 16 13:47:53,726 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< MajC
>>>> [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>>>> /table_info/A000051j.rf
>>>> 16 13:47:54,497 [tabletserver.TabletServer] DEBUG: gc
>>>> ParNew=0.09(+0.02) secs ConcurrentMarkSweep=0.00(+0.00) secs
>>>> freemem=97,183,880(-1,627,536) totalmem=132,055,040
>>>> 16 13:47:54,694 [tabletserver.TabletServer] DEBUG: UpSess
>>>> 127.0.0.1:51480 146 in 0.034s, at=[0 0 0.00 1] ft=0.013s(pt=0.001s
>>>> lt=0.008s ct=0.004s)
>>>> 16 13:47:56,527 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:53005 !0 0 entries in 0.02 secs, nbTimes = [15 15 15.00 1]
>>>> 16 13:48:01,503 [tabletserver.TabletServer] DEBUG: gc
>>>> ParNew=0.09(+0.01) secs ConcurrentMarkSweep=0.00(+0.00) secs
>>>> freemem=98,415,928(+12,106,904) totalmem=132,055,040
>>>> 16 13:48:01,576 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:55688 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>>>> 127.0.0.1:65352 2 entries in 0.03 secs (lookup_time:0.03 secs
>>>> tablets:1 ranges:1)
>>>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>>>> 127.0.0.1:65358 4 entries in 0.03 secs (lookup_time:0.03 secs
>>>> tablets:1 ranges:1)
>>>> 16 13:48:06,620 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>>> 127.0.0.1:58247 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>>> 16 13:48:44,595 [zookeeper.ZooLock] DEBUG: event null None Disconnected
>>>> 16 13:48:44,927 [zookeeper.ZooLock] DEBUG: event null None Expired
>>>> 16 13:48:44,943 [tabletserver.TabletServer] FATAL: Lost tablet server
>>>> lock (reason = SESSION_EXPIRED), exiting.
>>>>
>>>>
>>>> I'm also including a snippet from the zookeeper log as well. Around
>>>> the same the tserver logs show the loss of the tablet server lock due to
>>>> expired session, the zookeeper logs mentions the expiration of several
>>>> sessions due to timeout.
>>>> 2012-08-16 13:48:07,368 - INFO
>>>> [Thread-370:NIOServerCnxn$StatCommand@1153] - Stat command output
>>>> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /127.0.0.1:58633 (no session
>>>> established for client)
>>>> 2012-08-16 13:48:08,371 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>>>> connection from /127.0.0.1:59158
>>>> 2012-08-16 13:48:08,372 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command
>>>> from /127.0.0.1:59158
>>>> 2012-08-16 13:48:08,378 - INFO
>>>> [Thread-371:NIOServerCnxn$StatCommand@1153] - Stat command output
>>>> 2012-08-16 13:48:08,379 - INFO [Thread-371:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /127.0.0.1:59158 (no session
>>>> established for client)
>>>> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>>>> connection from /127.0.0.1:59635
>>>> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command
>>>> from /127.0.0.1:59635
>>>> 2012-08-16 13:48:09,399 - INFO
>>>> [Thread-372:NIOServerCnxn$StatCommand@1153] - Stat command output
>>>> 2012-08-16 13:48:09,400 - INFO [Thread-372:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /127.0.0.1:59635 (no session
>>>> established for client)
>>>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80005, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80004, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:32,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80001, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:32,001 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80005
>>>> 2012-08-16 13:48:32,001 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80004
>>>> 2012-08-16 13:48:32,001 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80001
>>>> 2012-08-16 13:48:32,003 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /127.0.0.1:65339 which had
>>>> sessionid 0x1393086dfb80005
>>>> 2012-08-16 13:48:34,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80002, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:36,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80007, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:38,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb8004d, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:38,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80006, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:40,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>>> Expiring session 0x1393086dfb80003, timeout of 30000ms exceeded
>>>> 2012-08-16 13:48:44,456 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65332 which had
>>>> sessionid 0x1393086dfb80004
>>>> 2012-08-16 13:48:44,458 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /127.0.0.1:65316 which had
>>>> sessionid 0x1393086dfb80001
>>>> 2012-08-16 13:48:44,461 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80002
>>>> 2012-08-16 13:48:44,482 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80007
>>>> 2012-08-16 13:48:44,484 - WARN [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@639] - Exception causing close of
>>>> session 0x1393086dfb80003 due to java.io.IOException: Connection reset by
>>>> peer
>>>> 2012-08-16 13:48:44,486 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65317 which had
>>>> sessionid 0x1393086dfb80002
>>>> 2012-08-16 13:48:44,491 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb8004d
>>>> 2012-08-16 13:48:44,493 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80006
>>>> 2012-08-16 13:48:44,495 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection
>>>> for client /fe80:0:0:0:0:0:0:1%1:65330 which had sessionid 0x1393086dfb80003
>>>> 2012-08-16 13:48:44,495 - WARN [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable
>>>> to read additional data from client sessionid 0x1393086dfb80007, likely
>>>> client has closed socket
>>>> 2012-08-16 13:48:44,496 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection
>>>> for client /0:0:0:0:0:0:0:1%0:65343 which had sessionid 0x1393086dfb80007
>>>> 2012-08-16 13:48:44,496 - WARN [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable
>>>> to read additional data from client sessionid 0x1393086dfb8004d, likely
>>>> client has closed socket
>>>> 2012-08-16 13:48:44,497 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection
>>>> for client /127.0.0.1:49770 which had sessionid 0x1393086dfb8004d
>>>> 2012-08-16 13:48:44,498 - INFO
>>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>>> termination for sessionid: 0x1393086dfb80003
>>>> 2012-08-16 13:48:44,500 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65341 which had
>>>> sessionid 0x1393086dfb80006
>>>> 2012-08-16 13:48:44,613 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>>>> connection from /0:0:0:0:0:0:0:1%0:59789
>>>> 2012-08-16 13:48:44,615 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew
>>>> session 0x1393086dfb80001 at /0:0:0:0:0:0:0:1%0:59789
>>>> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1573] - Invalid session
>>>> 0x1393086dfb80001 for client /0:0:0:0:0:0:0:1%0:59789, probably expired
>>>> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
>>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection
>>>> for client /0:0:0:0:0:0:0:1%0:59789 which had sessionid 0x1393086dfb80001
>>>>
>>>>
>>>> Sorry for the huge post of log drivel, but if you'd like to see more I
>>>> can post (or via pastebin) the full logs. I made sure to shut down
>>>> everything, wipe out the logs, then start everything back up so the logs
>>>> would be as clean as possible.
>>>>
>>>>
>>>> I looked for a way to increase the session timeout on the
>>>> AccumuloInputFormat, but there doesn't seem to be one. I'm sure that's not
>>>> the right fix anyway, but figured I'd mention it.
>>>>
>>>>
>>>> Do you guys have any other suggestions. I'm sure this is due to some
>>>> configuration error on my part, but I'm running out of idea.
>>>>
>>>>
>>>> Thanks a ton,
>>>> -Arjumand
>>>>
>>>>
>>>>
>>>> On Thu, Aug 16, 2012 at 7:24 AM, William Slacum <
>>>> wilhelm.von.cloud@accumulo.net> wrote:
>>>>
>>>>> What does your TServer debug log say? Also, are you writing back out
>>>>> to Accumulo?
>>>>>
>>>>> To follow up what Jim said, you can check the zookeeper log to see if
>>>>> max connections is being hit. You may also want to check and see what your
>>>>> max xceivers is set to for HDFS and check your Accumulo and HDFS logs to
>>>>> see if it is mentioned.
>>>>>
>>>>>
>>>>> On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I'm fairly new to both Accumulo and Hadoop, so I think my problem may
>>>>>> be due to poor configuration on my part, but I'm running out of ideas.
>>>>>>
>>>>>> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from
>>>>>> cdh3u4) in pseudo-distributed mode.
>>>>>> zookeeper version zookeeper-3.3.5 from cdh3u4
>>>>>> I'm using the 1.4.1 release of accumulo with a configuration copied
>>>>>> from "conf/examples/512MB/standalone"
>>>>>>
>>>>>> I've got a Map task that is using an accumulo table as the input.
>>>>>> I'm fetching all rows, but just a single column family, that has
>>>>>> hundreds or even thousands of different column qualifiers.
>>>>>> The table has a SummingCombiner installed for the given the column
>>>>>> family.
>>>>>>
>>>>>> The task runs fine at first, but after ~9-15K records (I print the
>>>>>> record count to the console every 1K records), it hangs and the following
>>>>>> messages are printed to the console where I'm running the job:
>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read
>>>>>> additional data from server sessionid 0x1392cc35b460d1c, likely server has
>>>>>> closed socket, closing socket connection and attempting reconnect
>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket
>>>>>> connection to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection
>>>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>>>> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
>>>>>> connection
>>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
>>>>>> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client
>>>>>> connection, connectString=localhost sessionTimeout=30000
>>>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
>>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket
>>>>>> connection to server localhost/0:0:0:0:0:0:0:1:2181
>>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection
>>>>>> established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
>>>>>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>>>>>> 0x1392cc35b460d25, negotiated timeout = 30000
>>>>>> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
>>>>>> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
>>>>>> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>>>>>>
>>>>>> Sometimes the messages contain a stacktrace like this below:
>>>>>> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session
>>>>>> 0x1392cc35b460b40 for server localhost/fe80:0:0:0:0:0:0:1%1:2181,
>>>>>> unexpected error, closing socket connection and attempting reconnect
>>>>>> java.io.IOException: Connection reset by peer
>>>>>> at sun.nio.ch.FileDispatcher.read0(Native Method)
>>>>>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>>>>>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
>>>>>> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
>>>>>> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
>>>>>> at
>>>>>> org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
>>>>>> at
>>>>>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket
>>>>>> connection to server localhost/127.0.0.1:2181
>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection
>>>>>> established to localhost/127.0.0.1:2181, initiating session
>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>>>> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
>>>>>> connection
>>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
>>>>>> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client
>>>>>> connection, connectString=localhost sessionTimeout=30000
>>>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
>>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket
>>>>>> connection to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection
>>>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
>>>>>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>>>>>> 0x1392cc35b460b46, negotiated timeout = 30000
>>>>>>
>>>>>>
>>>>>> I've poked through the logs in accumulo, and I've noticed that when
>>>>>> it hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
>>>>>> 16 03:29:46,332 [logger.LogService] DEBUG: event null None
>>>>>> Disconnected
>>>>>> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state
>>>>>> of current session : Expired
>>>>>> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
>>>>>> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
>>>>>> registration at null
>>>>>> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
>>>>>> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>>>>>>
>>>>>>
>>>>>> I've noticed that if I make the map task print out the record count
>>>>>> more frequently (ie every 10 records), it seems to be able get through more
>>>>>> records than when I only print every 1K records. My assumption was that
>>>>>> this had something to do with more time being spent in the map task, and
>>>>>> not fetching data from accumulo. There was at least one occasion where I
>>>>>> printed to the console for every record, and in that situation it managed
>>>>>> to process 47K records, although I have been unable to repeat that behavior.
>>>>>>
>>>>>> I've also noticed that if I stop and start accumulo, the map-reduce
>>>>>> job will pickup where it left off, but seems to fail quicker.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Could someone make some suggestions as to what my problem might be?
>>>>>> It would be greatly appreciated. If you need any additional information
>>>>>> from me, just let me know. I'd paste my config files, driver setup, and
>>>>>> example data into this post, but I think it's probably long enough already.
>>>>>>
>>>>>>
>>>>>> Thanks in advance,
>>>>>> -Arjumand
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Arjumand Bonhomme <ju...@gmail.com>.
Thanks for the input, no worries about the offline scanner bit. Although if
I can ever get past my current issue, I'd love to learn why the offline
scanner failed as well.
So I took a look at my various other settings, and watched the paging while
everything was running, and it doesn't appear (at least not to me) to be
related to swapping.
I'm using the 512MB accumulo configuration, and I'm running the hadoop task
with a 256MB heap. I'm running hadoop with the standard pseudo-distributed
config, except for bumping the dfs.datanode.max.xcievers property to 4096.
I'm running zookeeper with the OOB config, except for the adjustment
to maxclientcxns
in zoo.cfg increased to be 100
I did a reboot of my machine, then began another series of tests. This
time I was watching vm_stat while everything was running.
I noticed the same behavior I've been witnessing all along. I'm including
the stacktrace that was emitted to the tserver log when it hung as it
usually does.
6 20:58:12,311 [zookeeper.ZooLock] DEBUG: event null None Disconnected
16 20:58:13,375 [zookeeper.ZooCache] WARN : Zookeeper error, will retry
org.apache.zookeeper.KeeperException$SessionExpiredException:
KeeperErrorCode = Session expired for
/accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7/tables/1/conf/table.compaction.minor.idle
at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
at
org.apache.accumulo.server.conf.TableConfiguration.get(TableConfiguration.java:120)
at
org.apache.accumulo.server.conf.TableConfiguration.get(TableConfiguration.java:108)
at
org.apache.accumulo.core.conf.AccumuloConfiguration.getTimeInMillis(AccumuloConfiguration.java:70)
at
org.apache.accumulo.server.tabletserver.LargestFirstMemoryManager.getMemoryManagementActions(LargestFirstMemoryManager.java:95)
at
org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework.manageMemory(TabletServerResourceManager.java:312)
at
org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework.access$200(TabletServerResourceManager.java:228)
at
org.apache.accumulo.server.tabletserver.TabletServerResourceManager$MemoryManagementFramework$2.run(TabletServerResourceManager.java:252)
at
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
at java.lang.Thread.run(Thread.java:680)
16 20:58:13,375 [zookeeper.ZooCache] WARN : Zookeeper error, will retry
org.apache.zookeeper.KeeperException$SessionExpiredException:
KeeperErrorCode = Session expired for
/accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7/config/table.scan.max.memory
at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
at
org.apache.accumulo.server.conf.ZooConfiguration.get(ZooConfiguration.java:109)
at
org.apache.accumulo.server.conf.ZooConfiguration._get(ZooConfiguration.java:76)
at
org.apache.accumulo.server.conf.ZooConfiguration.get(ZooConfiguration.java:103)
at
org.apache.accumulo.core.conf.AccumuloConfiguration.getMemoryInBytes(AccumuloConfiguration.java:47)
at
org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:960)
at
org.apache.accumulo.server.tabletserver.TabletServerResourceManager.executeReadAhead(TabletServerResourceManager.java:699)
at
org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.continueMultiScan(TabletServer.java:1316)
at
org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.startMultiScan(TabletServer.java:1284)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.accumulo.cloudtrace.instrument.thrift.TraceWrap$1.invoke(TraceWrap.java:59)
at $Proxy1.startMultiScan(Unknown Source)
at
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.process(TabletClientService.java:2164)
at
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor.process(TabletClientService.java:2037)
at
org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:154)
at
org.apache.thrift.server.TNonblockingServer$FrameBuffer.invoke(TNonblockingServer.java:631)
at
org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:202)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at
org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
at java.lang.Thread.run(Thread.java:680)
16 20:58:13,379 [zookeeper.ZooLock] DEBUG: event null None Expired
16 20:58:13,393 [tabletserver.TabletServer] FATAL: Lost tablet server lock
(reason = SESSION_EXPIRED), exiting.
Below is the matching stacktrace emitted by the hadoop job.
12/08/16 20:57:14 INFO zookeeper.ZooKeeper: Initiating client connection,
connectString=localhost sessionTimeout=30000
watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@47124746
12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/fe80:0:0:0:0:0:0:1%1:2181
12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
12/08/16 20:57:14 INFO zookeeper.ClientCnxn: Session establishment complete
on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
0x13931fecee3012e, negotiated timeout = 30000
12/08/16 20:57:14 INFO mapred.JobClient: Running job: job_local_0001
12/08/16 20:57:14 INFO mapred.Task: Using ResourceCalculatorPlugin : null
12/08/16 20:57:14 INFO mapred.MapTask: io.sort.mb = 100
12/08/16 20:57:15 INFO mapred.MapTask: data buffer = 79691776/99614720
12/08/16 20:57:15 INFO mapred.MapTask: record buffer = 262144/327680
12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
12/08/16 20:57:15 INFO compress.CodecPool: Got brand-new decompressor
12/08/16 20:57:15 INFO mapred.JobClient: map 0% reduce 0%
001000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@feel
002000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@perhap
12/08/16 20:57:20 INFO mapred.LocalJobRunner:
003000 2012-06-11T09-05-19/abc/00f9a47cc64c2ee929f1b9e81ee31e71.txt@univers
12/08/16 20:57:23 INFO mapred.LocalJobRunner:
004000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@doubt
005000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@morwai
12/08/16 20:57:26 INFO mapred.LocalJobRunner:
006000 2012-06-11T09-05-19/abc/027e57027b4117a427c4313280bc8448.txt@tgame
007000 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@colleg
12/08/16 20:57:29 INFO mapred.LocalJobRunner:
008000 2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@led
12/08/16 20:57:32 INFO mapred.LocalJobRunner:
009000
2012-06-11T09-05-19/abc/04602aad24f50293c701c319561f5c74.txt@stephanopoulo
010000 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@brother
12/08/16 20:57:35 INFO mapred.LocalJobRunner:
011000 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@inabl
12/08/16 20:57:38 INFO mapred.LocalJobRunner:
12/08/16 20:57:41 INFO mapred.LocalJobRunner:
12/08/16 20:58:12 INFO zookeeper.ClientCnxn: Client session timed out, have
not heard from server in 37008ms for sessionid 0x13931fecee3012e, closing
socket connection and attempting reconnect
012000 2012-06-11T09-05-19/abc/05a8d74773ac2379f1e960fb036fcc24.txt@saturdai
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/0:0:0:0:0:0:0:1:2181
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/0:0:0:0:0:0:0:1:2181, initiating session
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Unable to reconnect to
ZooKeeper service, session 0x13931fecee3012e has expired, closing socket
connection
12/08/16 20:58:13 WARN zookeeper.ZooCache: Zookeeper error, will retry
org.apache.zookeeper.KeeperException$SessionExpiredException:
KeeperErrorCode = Session expired for
/accumulo/56cdf8d0-4881-4ec1-8bf2-728a2b8d0da7
at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
at org.apache.accumulo.core.zookeeper.ZooCache$2.run(ZooCache.java:208)
at org.apache.accumulo.core.zookeeper.ZooCache.retry(ZooCache.java:130)
at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:233)
at org.apache.accumulo.core.zookeeper.ZooCache.get(ZooCache.java:188)
at
org.apache.accumulo.core.client.ZooKeeperInstance.getInstanceID(ZooKeeperInstance.java:147)
at
org.apache.accumulo.core.client.impl.TabletLocator.getInstance(TabletLocator.java:96)
at
org.apache.accumulo.core.client.impl.ThriftScanner.scan(ThriftScanner.java:245)
at
org.apache.accumulo.core.client.impl.ScannerIterator$Reader.run(ScannerIterator.java:94)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: EventThread shut down
12/08/16 20:58:13 INFO zookeeper.ZooKeeper: Initiating client connection,
connectString=localhost sessionTimeout=30000
watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@7f434cb2
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Opening socket connection to
server localhost/0:0:0:0:0:0:0:1:2181
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Socket connection established
to localhost/0:0:0:0:0:0:0:1:2181, initiating session
12/08/16 20:58:13 INFO zookeeper.ClientCnxn: Session establishment complete
on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x13931fecee30135,
negotiated timeout = 30000
013000 2012-06-11T09-05-19/abc/06a7b8b2de18727faa635b841b0dd043.txt@anthoni
12/08/16 20:58:17 INFO mapred.LocalJobRunner:
And finally here is the output from "vm_stat 1". Doesn't look like
anything was really getting swapped out to disk. While there was a flurry
of paging (reading pages in) as soon as I started up the job, that paging
ceased very quickly after that. Then very shortly it hung again as usual.
When looking at the output, it may help to know that I started the hadoop
job just after the 3rd banner/header was printed out, and you can see the
initial flurry of paging and then it stops after roughly 12 seconds.
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
free active spec inactive wire faults copy 0fill reactive
pageins pageout
595157 944925 81264 89580 385586 319170K 8990003 159901K 3094025
9227006 1546121
595491 944110 81292 89605 386400 1909 0 1417 0
4 0
595204 944911 81292 89579 385625 708 0 551 0
0 0
595429 944652 81293 89579 385879 1941 0 1314 0
0 0
595379 945101 81293 89579 385407 616 0 521 0
0 0
595114 944636 81294 89579 385879 1824 0 1329 0
0 0
595664 945080 81295 89578 385406 5365 6 4032 0
1 0
595221 944078 81295 89578 386410 2645 0 1840 0
0 0
595338 945075 81295 89578 385406 767 2 505 0
0 0
595061 944463 81295 89578 386059 2113 0 1433 0
1 0
595194 944936 81295 89578 385587 674 0 565 0
0 0
595267 944458 81296 89578 386059 1731 0 1293 0
0 0
595418 944925 81297 89578 385587 780 0 581 0
0 0
595124 944200 81296 89579 386419 2111 84 1397 0
2 0
595037 944686 81295 89579 385948 657 2 548 0
2 0
595054 944213 81295 89579 386420 1785 0 1350 0
1 0
595289 944687 81295 89579 385948 758 0 565 0
1 0
595052 944221 81296 89579 386420 1987 0 1356 0
0 0
595017 944698 81296 89579 385948 768 0 558 0
0 0
595272 944217 81296 89579 386420 1957 0 1334 0
0 0
594954 944686 81296 89579 385948 704 0 535 0
0 0
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
free active spec inactive wire faults copy 0fill reactive
pageins pageout
594997 944166 81296 89579 386420 319204K 8990097 159926K 3094025
9227018 1546121
594977 944641 81298 89579 385948 784 0 569 0
0 0
595282 944160 81298 89579 386420 1874 0 1368 0
1 0
595252 944633 81298 89579 385948 735 0 561 0
1 0
595057 944186 81298 89579 386420 1972 0 1391 0
0 0
595039 944481 81298 89579 386129 929 0 564 0
1 0
595512 943232 81346 89579 387188 3109 31 2542 0
1 0
595395 944491 81346 89579 385948 742 0 626 0
0 0
595134 944016 81346 89579 386420 1844 1 1335 0
0 0
595329 944501 81346 89579 385948 694 0 546 0
0 0
595329 944016 81346 89579 386431 1801 0 1330 0
0 0
595471 944458 81347 89579 385949 797 0 669 0
0 0
595433 943918 81347 89579 386431 2380 0 1806 0
0 0
595118 944433 81347 89579 385948 678 0 567 0
0 0
595142 943989 81347 89571 386420 1863 0 1378 0
1 0
595097 944462 81347 89571 385948 654 0 540 0
1 0
595126 944060 81347 89571 386420 1874 0 1430 0
0 0
595068 944674 81348 89571 385948 787 0 678 0
0 0
595110 944174 81348 89571 386420 1863 0 1345 0
0 0
595362 944627 81348 89571 385948 768 2 575 0
0 0
595115 944131 81348 89572 386420 1755 0 1323 0
0 0
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
free active spec inactive wire faults copy 0fill reactive
pageins pageout
595142 944657 81348 89571 385948 319233K 8990131 159947K 3094025
9227025 1546121
591569 946751 81348 89571 387281 9240 786 4725 0
8 0
579748 958406 81358 90168 386840 20057 287 13388 0
492 0
563598 959835 88682 97236 387319 20388 931 4220 0
0 0
535840 986697 88692 98643 386906 59619 1497 32467 0
164 0
534240 987263 88696 99134 387394 42744 0 6762 0
98 0
529479 992037 88723 100123 386187 39552 3 9006 0
10 0
529065 991283 88760 100107 387430 32014 153 7500 0
41 0
528147 992276 88784 100376 386966 37719 2 6050 0
15 0
527155 993536 88818 100380 386672 34999 0 6928 0
1 0
526748 992973 88851 100380 387747 34379 1 5240 0
0 0
526835 994071 88902 100404 386674 34698 2 7063 0
8 0
524993 994621 89207 100582 387027 28374 460 6018 0
182 0
524182 995184 89286 100582 387544 42552 226 7313 0
0 0
523704 995987 89328 100629 387076 42731 1 6357 0
0 0
523154 995939 89367 100629 387554 41100 0 7338 0
0 0
522867 996724 89405 100629 387307 39246 0 6089 0
0 0
522160 996665 89451 100639 387563 37614 1 7463 0
0 0
522414 997920 89501 100639 386324 40044 0 6995 0
0 0
521524 997171 89539 100639 387569 39447 0 7048 0
1 0
520258 998993 89575 100645 387107 37476 0 6789 0
0 0
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
free active spec inactive wire faults copy 0fill reactive
pageins pageout
519291 999119 89614 100645 387771 319989K 8994481 160119K 3094025
9228045 1546121
518546 1000K 89653 100647 387672 39985 81 6722 0
0 0
518354 1000K 89701 100647 387196 33629 0 7757 0
0 0
516218 1002K 89737 100647 387192 39403 0 7368 0
1 0
513388 1004K 89764 100648 388210 36737 0 14479 0
0 0
507991 1011K 89784 100648 386465 32460 1 13133 0
1 0
506346 1012K 89816 100648 387917 39257 2 7246 0
1 0
506298 1012K 89816 100648 387356 626 0 313 0
0 0
506070 1013K 89816 100648 386259 217 1 102 0
0 0
506101 1013K 89816 100648 386259 386 0 99 0
0 0
505974 1012K 89769 100618 387548 1417 21 1250 0
9 0
506078 1013K 89769 100618 386259 297 0 191 0
0 0
506349 1013K 89769 100618 386259 200 0 100 0
0 0
506105 1013K 89769 100618 386259 211 0 104 0
0 0
506351 1013K 89769 100618 386259 187 0 89 0
0 0
506114 1013K 89769 100618 386599 269 0 185 0
0 0
506228 1013K 89769 100618 386258 228 0 129 0
0 0
506231 1013K 89769 100618 386258 147 0 83 0
0 0
506486 1013K 89769 100618 386258 306 0 119 0
0 0
506215 1013K 89769 100619 386258 174 0 62 0
0 0
505927 1014K 89769 100619 386258 593 0 524 0
0 0
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
free active spec inactive wire faults copy 0fill reactive
pageins pageout
506437 1013K 89769 100619 386700 320215K 8994587 160180K 3094025
9228057 1546121
506670 1013K 89769 100619 386225 128 0 45 0
0 0
506347 1013K 89769 100619 386225 268 0 58 0
0 0
506033 1013K 89769 100619 386225 127 0 89 0
0 0
506221 1013K 89769 100619 386225 86 0 41 0
0 0
506157 1013K 89769 100619 386225 81 0 38 0
0 0
506096 1013K 89769 100619 386225 345 0 186 0
0 0
506044 1013K 89769 100619 386236 291 0 224 0
0 0
505980 1013K 89769 100619 386225 81 0 39 0
0 0
505916 1013K 89769 100619 386225 99 0 50 0
0 0
505839 1013K 89769 100619 386225 79 0 36 0
0 0
506028 1013K 89769 100619 386225 102 0 61 0
0 0
505760 1014K 89769 100619 386225 286 0 229 0
0 0
506151 1013K 89769 100619 386406 140 0 88 0
0 0
506097 1013K 89769 100619 386406 101 2 47 0
0 0
506028 1014K 89769 100619 386225 175 0 62 0
0 0
506230 1014K 89769 100619 386225 227 0 39 0
0 0
505939 1014K 89769 100619 386225 550 0 512 0
0 0
505682 1014K 89769 100619 386225 90 0 50 0
0 0
506772 1011K 89782 100619 388439 6973 15 1797 0
1 0
550258 968746 89827 99598 388175 40677 7 8407 0
1 0
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
free active spec inactive wire faults copy 0fill reactive
pageins pageout
585656 935138 89879 98682 387121 320304K 8994611 160203K 3094025
9228060 1546121
585477 935589 89892 98682 386906 10654 1 2648 0
0 0
586236 935269 89898 98683 386610 2120 2 1473 0
1 0
586650 935141 89903 98683 386138 833 0 638 0
2 0
586647 933883 89903 98683 387378 3028 174 1553 0
0 0
587883 932971 89909 98683 387427 882 0 638 0
0 0
588259 932579 89915 98683 386994 1988 0 1383 0
0 0
589697 931139 89923 98683 387427 1174 4 709 0
0 0
589306 931423 89925 98684 387052 2432 0 1743 0
0 0
589128 931606 89926 98688 387043 2309 0 1632 0
5 0
590286 930456 89904 98689 387413 3506 7 2453 0
16 0
590411 931982 89905 98689 385674 1801 0 1384 0
0 0
590385 931329 89905 98689 386327 2954 1 2187 0
0 0
590551 931731 89910 98664 385920 2060 0 1543 0
0 0
589471 931873 89911 98664 386856 5511 252 3120 0
0 0
589397 931941 89911 98659 386769 1351 0 1090 0
0 0
So while I'm not 100% certain that this isn't related to swapping and
garbage collection, it seems like something else is probably the cause.
Can you guys give me some more pointers/guidance on what I can check to try
to get past this issue?
Would seeing any of the configuration or hadoop driver code help you get a
better idea of what I might be dealing with?
If there's any more due diligence I can/should be doing, just let me know.
I'm sure it's more than likely a configuration issue on my end, I'm really
pulling at straws at this point.
Thanks again for all the help,
-Arjumand
On Thu, Aug 16, 2012 at 3:54 PM, John Vines <vi...@apache.org> wrote:
> I'm sorry, I missed the use of the offline scanner being used.
>
> Issues with locks being lost like you described typically occur from
> swapping issues. You said you used the 512MB footprint Accumulo
> configuration, but you should also make sure that your memory settings from
> the various hadoop settings, being sure to take into account the number of
> map and reduce jobs occurring, do not exceed your physical memory (plus any
> other processes you may be running on your system). Swapping + garbage
> collection have proven to be quite effective at causing lost locks.
>
> John
===
On Thu, Aug 16, 2012 at 3:48 PM, Arjumand Bonhomme <ju...@gmail.com> wrote:
> While this isn't my original concern/problem, so it's not terribly
> important, but I'm not sure I understand and I'd like to learn as much as
> possible.
>
> Why wouldn't it work with the cloned table offline?
> I followed the example laid out in
> org.apache.accumulo.examples.simple.mapreduce.UniqueColumns
> Using the "AccumuloInputFormat.setScanOffline(job.getConfiguration(),
> true);" setup.
>
> Can you give me some detail as to why it definitely would not have worked
> offline? Is this method no longer supported.
>
> Thanks!
> -Arjumand
>
>
> On Thu, Aug 16, 2012 at 3:24 PM, John Vines <vi...@apache.org> wrote:
>
>> You're work ont he clone table failed because you took it offline. The
>> table needs to be online in order to do a job against it.
>>
>> John
>>
>>
>> On Thu, Aug 16, 2012 at 2:36 PM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>>
>>> Jim, William, Adam: Thanks for your help with this, I'm running out of
>>> ideas to google search for answers.
>>>
>>> I'm going to try to answer your questions:
>>>
>>> 1) I had already adjusted the maxclientcxns in zoo.cfg to be 100. I
>>> didn't see anything in log indicating that it was shutting down connections
>>> due to reaching a connection limit. However, throughout the zookeeper
>>> logs, even before the hadoop job was run. I did see lots of lines like
>>> these. Up til this point, I've assumed it's innocuous and unrelated to my
>>> issue.
>>> INFO [Thread-371:NIOServerCnxn@1435] - Closed socket connection for
>>> client /127.0.0.1:59158 (no session established for client)
>>>
>>> 2) I had also already adjusted the dfs.datanode.max.xcievers property to
>>> 4096 in hdfs-site.xml. An investigation of the log shows that this limit
>>> is not being reached. It had been being reached at some point before I
>>> increased the value from the default. I had increased the value while
>>> troubleshooting, but prior to posting to this list; it didn't appear to
>>> have a noticeable affect on the behavior of the hadoop job.
>>>
>>> 3) I'm writing out to a sequence file, so accumulo is only being used
>>> for input. As a side note, at one point during my troubleshooting, I
>>> compacted, cloned, and then took the cloned table offline and tried to use
>>> that instead. That failed immediately, without processing any records.
>>> From the stacktrace, it appeared as though the iterator was trying to use
>>> one of the files for the original table (from what I understand about
>>> cloning, this is normal b/c no changes had been made to the original table)
>>> but said it did not exist. I was, however, able to find the file on hdfs.
>>> So I just gave up on that. Also, under the normal case, ie using the
>>> original table online, nothing is writing to the table while the hadoop job
>>> is running.
>>>
>>> 4) My original open file limit was the os default of 256. So I upped it
>>> to 1024, and performed another attempt. The behavior was the same as
>>> before.
>>>
>>> I'm including a snippet from the tserver debug log. It looks like an
>>> expired session might be the root of the problem, but I'm not sure what
>>> would cause that:
>>> 16 13:47:26,284 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49730 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>> 16 13:47:26,619 [tabletserver.TabletServer] DEBUG: UpSess
>>> 127.0.0.1:49719 45 in 0.006s, at=[0 0 0.00 1] ft=0.004s(pt=0.001s
>>> lt=0.002s ct=0.001s)
>>> 16 13:47:31,317 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49740 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>> 16 13:47:36,350 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49750 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>> 16 13:47:41,377 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49760 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>> 16 13:47:46,278 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49771 !0 4 entries in 0.02 secs, nbTimes = [17 17 17.00 1]
>>> 16 13:47:46,305 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49771 !0 2 entries in 0.01 secs, nbTimes = [14 14 14.00 1]
>>> 16 13:47:46,406 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:49782 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>> 16 13:47:47,487 [tabletserver.TabletServer] DEBUG: gc ParNew=0.07(+0.01)
>>> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=111,234,160(+14,477,728)
>>> totalmem=132,055,040
>>> 16 13:47:51,452 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>> 16 13:47:51,462 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50970 !0 8 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>>> 16 13:47:51,474 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50977 !0 0 entries in 0.01 secs, nbTimes = [2 2 2.00 1]
>>> 16 13:47:51,477 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50970 !0 26 entries in 0.01 secs, nbTimes = [11 11 11.00 1]
>>> 16 13:47:51,494 [tabletserver.LargestFirstMemoryManager] DEBUG: IDLE
>>> minor compaction chosen
>>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>>> COMPACTING !0<;~ total = 120,840 ingestMemory = 120,840
>>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>>> chosenMem = 2,416 chosenIT = 300.23 load 3,044
>>> 16 13:47:51,498 [tabletserver.Tablet] DEBUG: MinC initiate lock 0.00 secs
>>> 16 13:47:51,502 [tabletserver.MinorCompactor] DEBUG: Begin minor
>>> compaction /accumulo/tables/!0/default_tablet/F000051i.rf_tmp !0<;~
>>> 16 13:47:51,525 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>> 16 13:47:51,532 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>>> 16 13:47:51,538 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: BEFORE
>>> compactionThreshold = 0.605 maxObserved = 120,840
>>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: AFTER
>>> compactionThreshold = 0.666
>>> 16 13:47:51,942 [tabletserver.Compactor] DEBUG: Compaction !0<;~ 24 read
>>> | 4 written | 4,800 entries/sec | 0.005 secs
>>> 16 13:47:51,950 [tabletserver.Tablet] DEBUG: Logs for memory compacted:
>>> !0<;~ 127.0.0.1:11224/770e1b91-351a-45ac-8992-c0fb602ac51c
>>> 16 13:47:51,956 [log.TabletServerLogger] DEBUG: wrote MinC finish 35:
>>> writeTime:1ms
>>> 16 13:47:51,956 [tabletserver.Tablet] TABLET_HIST: !0<;~ MinC [memory]
>>> -> /default_tablet/F000051i.rf
>>> 16 13:47:51,957 [tabletserver.Tablet] DEBUG: MinC finish lock 0.00 secs
>>> !0<;~
>>> 16 13:47:52,650 [tabletserver.TabletServer] DEBUG: UpSess
>>> 127.0.0.1:51480 43 in 0.009s, at=[0 0 0.00 1] ft=0.005s(pt=0.001s
>>> lt=0.003s ct=0.001s)
>>> 16 13:47:53,233 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>>> Total=0.0769043MB (80640), Free=19.923096MB (20890880), Max=20.0MB
>>> (20971520), Counts: Blocks=33, Access=43, Hit=10, Miss=33, Evictions=0,
>>> Evicted=0, Ratios: Hit Ratio=23.255814611911774%, Miss
>>> Ratio=76.74418687820435%, Evicted/Run=NaN, Duplicate Reads=0
>>> 16 13:47:53,254 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>>> Total=0.0128479MB (13472), Free=6.987152MB (7326560), Max=7.0MB (7340032),
>>> Counts: Blocks=20, Access=127, Hit=106, Miss=21, Evictions=0, Evicted=0,
>>> Ratios: Hit Ratio=83.4645688533783%, Miss Ratio=16.535432636737823%,
>>> Evicted/Run=NaN, Duplicate Reads=1
>>> 16 13:47:53,491 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>>> secs, wait 0.00 secs
>>> 16 13:47:53,493 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>>> secs, wait 0.00 secs
>>> 16 13:47:53,494 [tabletserver.Tablet] DEBUG: Starting MajC !0;~;!0<
>>> (NORMAL) [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>>> /table_info/A000051j.rf_tmp
>>> 16 13:47:53,495 [tabletserver.Tablet] DEBUG: Starting MajC !0;!0<<
>>> (NORMAL) [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>>> /root_tablet/A000051k.rf_tmp
>>> 16 13:47:53,683 [tabletserver.Compactor] DEBUG: Compaction !0;!0<< 39
>>> read | 21 written | 276 entries/sec | 0.141 secs
>>> 16 13:47:53,701 [tabletserver.Compactor] DEBUG: Compaction !0;~;!0< 56
>>> read | 51 written | 323 entries/sec | 0.173 secs
>>> 16 13:47:53,708 [tabletserver.Tablet] DEBUG: MajC finish lock 0.02 secs
>>> 16 13:47:53,708 [tabletserver.Tablet] TABLET_HIST: !0;!0<< MajC
>>> [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>>> /root_tablet/A000051k.rf
>>> 16 13:47:53,712 [tabletserver.TabletServer] INFO : Adding 1 logs for
>>> extent !0<;~ as alias 2
>>> 16 13:47:53,726 [tabletserver.Tablet] DEBUG: MajC finish lock 0.00 secs
>>> 16 13:47:53,726 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< MajC
>>> [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>>> /table_info/A000051j.rf
>>> 16 13:47:54,497 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.02)
>>> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=97,183,880(-1,627,536)
>>> totalmem=132,055,040
>>> 16 13:47:54,694 [tabletserver.TabletServer] DEBUG: UpSess
>>> 127.0.0.1:51480 146 in 0.034s, at=[0 0 0.00 1] ft=0.013s(pt=0.001s
>>> lt=0.008s ct=0.004s)
>>> 16 13:47:56,527 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:53005 !0 0 entries in 0.02 secs, nbTimes = [15 15 15.00 1]
>>> 16 13:48:01,503 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.01)
>>> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=98,415,928(+12,106,904)
>>> totalmem=132,055,040
>>> 16 13:48:01,576 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:55688 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>>> 127.0.0.1:65352 2 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
>>> ranges:1)
>>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>>> 127.0.0.1:65358 4 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
>>> ranges:1)
>>> 16 13:48:06,620 [tabletserver.TabletServer] DEBUG: ScanSess tid
>>> 127.0.0.1:58247 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>>> 16 13:48:44,595 [zookeeper.ZooLock] DEBUG: event null None Disconnected
>>> 16 13:48:44,927 [zookeeper.ZooLock] DEBUG: event null None Expired
>>> 16 13:48:44,943 [tabletserver.TabletServer] FATAL: Lost tablet server
>>> lock (reason = SESSION_EXPIRED), exiting.
>>>
>>>
>>> I'm also including a snippet from the zookeeper log as well. Around the
>>> same the tserver logs show the loss of the tablet server lock due to
>>> expired session, the zookeeper logs mentions the expiration of several
>>> sessions due to timeout.
>>> 2012-08-16 13:48:07,368 - INFO
>>> [Thread-370:NIOServerCnxn$StatCommand@1153] - Stat command output
>>> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn@1435] -
>>> Closed socket connection for client /127.0.0.1:58633 (no session
>>> established for client)
>>> 2012-08-16 13:48:08,371 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>>> connection from /127.0.0.1:59158
>>> 2012-08-16 13:48:08,372 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from
>>> /127.0.0.1:59158
>>> 2012-08-16 13:48:08,378 - INFO
>>> [Thread-371:NIOServerCnxn$StatCommand@1153] - Stat command output
>>> 2012-08-16 13:48:08,379 - INFO [Thread-371:NIOServerCnxn@1435] -
>>> Closed socket connection for client /127.0.0.1:59158 (no session
>>> established for client)
>>> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>>> connection from /127.0.0.1:59635
>>> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from
>>> /127.0.0.1:59635
>>> 2012-08-16 13:48:09,399 - INFO
>>> [Thread-372:NIOServerCnxn$StatCommand@1153] - Stat command output
>>> 2012-08-16 13:48:09,400 - INFO [Thread-372:NIOServerCnxn@1435] -
>>> Closed socket connection for client /127.0.0.1:59635 (no session
>>> established for client)
>>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80005, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80004, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:32,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80001, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:32,001 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80005
>>> 2012-08-16 13:48:32,001 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80004
>>> 2012-08-16 13:48:32,001 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80001
>>> 2012-08-16 13:48:32,003 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>> Closed socket connection for client /127.0.0.1:65339 which had
>>> sessionid 0x1393086dfb80005
>>> 2012-08-16 13:48:34,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80002, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:36,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80007, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:38,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb8004d, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:38,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80006, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:40,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>>> Expiring session 0x1393086dfb80003, timeout of 30000ms exceeded
>>> 2012-08-16 13:48:44,456 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65332 which had
>>> sessionid 0x1393086dfb80004
>>> 2012-08-16 13:48:44,458 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>> Closed socket connection for client /127.0.0.1:65316 which had
>>> sessionid 0x1393086dfb80001
>>> 2012-08-16 13:48:44,461 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80002
>>> 2012-08-16 13:48:44,482 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80007
>>> 2012-08-16 13:48:44,484 - WARN [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@639] - Exception causing close of
>>> session 0x1393086dfb80003 due to java.io.IOException: Connection reset by
>>> peer
>>> 2012-08-16 13:48:44,486 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65317 which had
>>> sessionid 0x1393086dfb80002
>>> 2012-08-16 13:48:44,491 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb8004d
>>> 2012-08-16 13:48:44,493 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80006
>>> 2012-08-16 13:48:44,495 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>>> client /fe80:0:0:0:0:0:0:1%1:65330 which had sessionid 0x1393086dfb80003
>>> 2012-08-16 13:48:44,495 - WARN [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable
>>> to read additional data from client sessionid 0x1393086dfb80007, likely
>>> client has closed socket
>>> 2012-08-16 13:48:44,496 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>>> client /0:0:0:0:0:0:0:1%0:65343 which had sessionid 0x1393086dfb80007
>>> 2012-08-16 13:48:44,496 - WARN [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable
>>> to read additional data from client sessionid 0x1393086dfb8004d, likely
>>> client has closed socket
>>> 2012-08-16 13:48:44,497 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>>> client /127.0.0.1:49770 which had sessionid 0x1393086dfb8004d
>>> 2012-08-16 13:48:44,498 - INFO
>>> [ProcessThread:-1:PrepRequestProcessor@399] - Processed session
>>> termination for sessionid: 0x1393086dfb80003
>>> 2012-08-16 13:48:44,500 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65341 which had
>>> sessionid 0x1393086dfb80006
>>> 2012-08-16 13:48:44,613 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>>> connection from /0:0:0:0:0:0:0:1%0:59789
>>> 2012-08-16 13:48:44,615 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew
>>> session 0x1393086dfb80001 at /0:0:0:0:0:0:0:1%0:59789
>>> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1573] - Invalid session
>>> 0x1393086dfb80001 for client /0:0:0:0:0:0:0:1%0:59789, probably expired
>>> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
>>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>>> client /0:0:0:0:0:0:0:1%0:59789 which had sessionid 0x1393086dfb80001
>>>
>>>
>>> Sorry for the huge post of log drivel, but if you'd like to see more I
>>> can post (or via pastebin) the full logs. I made sure to shut down
>>> everything, wipe out the logs, then start everything back up so the logs
>>> would be as clean as possible.
>>>
>>>
>>> I looked for a way to increase the session timeout on the
>>> AccumuloInputFormat, but there doesn't seem to be one. I'm sure that's not
>>> the right fix anyway, but figured I'd mention it.
>>>
>>>
>>> Do you guys have any other suggestions. I'm sure this is due to some
>>> configuration error on my part, but I'm running out of idea.
>>>
>>>
>>> Thanks a ton,
>>> -Arjumand
>>>
>>>
>>>
>>> On Thu, Aug 16, 2012 at 7:24 AM, William Slacum <
>>> wilhelm.von.cloud@accumulo.net> wrote:
>>>
>>>> What does your TServer debug log say? Also, are you writing back out to
>>>> Accumulo?
>>>>
>>>> To follow up what Jim said, you can check the zookeeper log to see if
>>>> max connections is being hit. You may also want to check and see what your
>>>> max xceivers is set to for HDFS and check your Accumulo and HDFS logs to
>>>> see if it is mentioned.
>>>>
>>>>
>>>> On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I'm fairly new to both Accumulo and Hadoop, so I think my problem may
>>>>> be due to poor configuration on my part, but I'm running out of ideas.
>>>>>
>>>>> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from
>>>>> cdh3u4) in pseudo-distributed mode.
>>>>> zookeeper version zookeeper-3.3.5 from cdh3u4
>>>>> I'm using the 1.4.1 release of accumulo with a configuration copied
>>>>> from "conf/examples/512MB/standalone"
>>>>>
>>>>> I've got a Map task that is using an accumulo table as the input.
>>>>> I'm fetching all rows, but just a single column family, that has
>>>>> hundreds or even thousands of different column qualifiers.
>>>>> The table has a SummingCombiner installed for the given the column
>>>>> family.
>>>>>
>>>>> The task runs fine at first, but after ~9-15K records (I print the
>>>>> record count to the console every 1K records), it hangs and the following
>>>>> messages are printed to the console where I'm running the job:
>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional
>>>>> data from server sessionid 0x1392cc35b460d1c, likely server has closed
>>>>> socket, closing socket connection and attempting reconnect
>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection
>>>>> to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection
>>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>>> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
>>>>> connection
>>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
>>>>> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client
>>>>> connection, connectString=localhost sessionTimeout=30000
>>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection
>>>>> to server localhost/0:0:0:0:0:0:0:1:2181
>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection
>>>>> established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
>>>>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>>>>> 0x1392cc35b460d25, negotiated timeout = 30000
>>>>> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
>>>>> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
>>>>> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>>>>>
>>>>> Sometimes the messages contain a stacktrace like this below:
>>>>> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40
>>>>> for server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
>>>>> socket connection and attempting reconnect
>>>>> java.io.IOException: Connection reset by peer
>>>>> at sun.nio.ch.FileDispatcher.read0(Native Method)
>>>>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>>>>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
>>>>> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
>>>>> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
>>>>> at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
>>>>> at
>>>>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection
>>>>> to server localhost/127.0.0.1:2181
>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection
>>>>> established to localhost/127.0.0.1:2181, initiating session
>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>>> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
>>>>> connection
>>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
>>>>> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client
>>>>> connection, connectString=localhost sessionTimeout=30000
>>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection
>>>>> to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection
>>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
>>>>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>>>>> 0x1392cc35b460b46, negotiated timeout = 30000
>>>>>
>>>>>
>>>>> I've poked through the logs in accumulo, and I've noticed that when it
>>>>> hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
>>>>> 16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
>>>>> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state
>>>>> of current session : Expired
>>>>> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
>>>>> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
>>>>> registration at null
>>>>> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
>>>>> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>>>>>
>>>>>
>>>>> I've noticed that if I make the map task print out the record count
>>>>> more frequently (ie every 10 records), it seems to be able get through more
>>>>> records than when I only print every 1K records. My assumption was that
>>>>> this had something to do with more time being spent in the map task, and
>>>>> not fetching data from accumulo. There was at least one occasion where I
>>>>> printed to the console for every record, and in that situation it managed
>>>>> to process 47K records, although I have been unable to repeat that behavior.
>>>>>
>>>>> I've also noticed that if I stop and start accumulo, the map-reduce
>>>>> job will pickup where it left off, but seems to fail quicker.
>>>>>
>>>>>
>>>>>
>>>>> Could someone make some suggestions as to what my problem might be? It
>>>>> would be greatly appreciated. If you need any additional information from
>>>>> me, just let me know. I'd paste my config files, driver setup, and example
>>>>> data into this post, but I think it's probably long enough already.
>>>>>
>>>>>
>>>>> Thanks in advance,
>>>>> -Arjumand
>>>>>
>>>>>
>>>>
>>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Arjumand Bonhomme <ju...@gmail.com>.
While this isn't my original concern/problem, so it's not terribly
important, but I'm not sure I understand and I'd like to learn as much as
possible.
Why wouldn't it work with the cloned table offline?
I followed the example laid out in
org.apache.accumulo.examples.simple.mapreduce.UniqueColumns
Using the "AccumuloInputFormat.setScanOffline(job.getConfiguration(),
true);" setup.
Can you give me some detail as to why it definitely would not have worked
offline? Is this method no longer supported.
Thanks!
-Arjumand
On Thu, Aug 16, 2012 at 3:24 PM, John Vines <vi...@apache.org> wrote:
> You're work ont he clone table failed because you took it offline. The
> table needs to be online in order to do a job against it.
>
> John
>
>
> On Thu, Aug 16, 2012 at 2:36 PM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>
>> Jim, William, Adam: Thanks for your help with this, I'm running out of
>> ideas to google search for answers.
>>
>> I'm going to try to answer your questions:
>>
>> 1) I had already adjusted the maxclientcxns in zoo.cfg to be 100. I
>> didn't see anything in log indicating that it was shutting down connections
>> due to reaching a connection limit. However, throughout the zookeeper
>> logs, even before the hadoop job was run. I did see lots of lines like
>> these. Up til this point, I've assumed it's innocuous and unrelated to my
>> issue.
>> INFO [Thread-371:NIOServerCnxn@1435] - Closed socket connection for
>> client /127.0.0.1:59158 (no session established for client)
>>
>> 2) I had also already adjusted the dfs.datanode.max.xcievers property to
>> 4096 in hdfs-site.xml. An investigation of the log shows that this limit
>> is not being reached. It had been being reached at some point before I
>> increased the value from the default. I had increased the value while
>> troubleshooting, but prior to posting to this list; it didn't appear to
>> have a noticeable affect on the behavior of the hadoop job.
>>
>> 3) I'm writing out to a sequence file, so accumulo is only being used for
>> input. As a side note, at one point during my troubleshooting, I
>> compacted, cloned, and then took the cloned table offline and tried to use
>> that instead. That failed immediately, without processing any records.
>> From the stacktrace, it appeared as though the iterator was trying to use
>> one of the files for the original table (from what I understand about
>> cloning, this is normal b/c no changes had been made to the original table)
>> but said it did not exist. I was, however, able to find the file on hdfs.
>> So I just gave up on that. Also, under the normal case, ie using the
>> original table online, nothing is writing to the table while the hadoop job
>> is running.
>>
>> 4) My original open file limit was the os default of 256. So I upped it
>> to 1024, and performed another attempt. The behavior was the same as
>> before.
>>
>> I'm including a snippet from the tserver debug log. It looks like an
>> expired session might be the root of the problem, but I'm not sure what
>> would cause that:
>> 16 13:47:26,284 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49730 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>> 16 13:47:26,619 [tabletserver.TabletServer] DEBUG: UpSess 127.0.0.1:4971945 in 0.006s, at=[0 0 0.00 1] ft=0.004s(pt=0.001s lt=0.002s ct=0.001s)
>> 16 13:47:31,317 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49740 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>> 16 13:47:36,350 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49750 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>> 16 13:47:41,377 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49760 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>> 16 13:47:46,278 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49771 !0 4 entries in 0.02 secs, nbTimes = [17 17 17.00 1]
>> 16 13:47:46,305 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49771 !0 2 entries in 0.01 secs, nbTimes = [14 14 14.00 1]
>> 16 13:47:46,406 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:49782 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>> 16 13:47:47,487 [tabletserver.TabletServer] DEBUG: gc ParNew=0.07(+0.01)
>> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=111,234,160(+14,477,728)
>> totalmem=132,055,040
>> 16 13:47:51,452 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>> 16 13:47:51,462 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50970 !0 8 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>> 16 13:47:51,474 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50977 !0 0 entries in 0.01 secs, nbTimes = [2 2 2.00 1]
>> 16 13:47:51,477 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50970 !0 26 entries in 0.01 secs, nbTimes = [11 11 11.00 1]
>> 16 13:47:51,494 [tabletserver.LargestFirstMemoryManager] DEBUG: IDLE
>> minor compaction chosen
>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG:
>> COMPACTING !0<;~ total = 120,840 ingestMemory = 120,840
>> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG: chosenMem
>> = 2,416 chosenIT = 300.23 load 3,044
>> 16 13:47:51,498 [tabletserver.Tablet] DEBUG: MinC initiate lock 0.00 secs
>> 16 13:47:51,502 [tabletserver.MinorCompactor] DEBUG: Begin minor
>> compaction /accumulo/tables/!0/default_tablet/F000051i.rf_tmp !0<;~
>> 16 13:47:51,525 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>> 16 13:47:51,532 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
>> 16 13:47:51,538 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: BEFORE
>> compactionThreshold = 0.605 maxObserved = 120,840
>> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: AFTER
>> compactionThreshold = 0.666
>> 16 13:47:51,942 [tabletserver.Compactor] DEBUG: Compaction !0<;~ 24 read
>> | 4 written | 4,800 entries/sec | 0.005 secs
>> 16 13:47:51,950 [tabletserver.Tablet] DEBUG: Logs for memory compacted:
>> !0<;~ 127.0.0.1:11224/770e1b91-351a-45ac-8992-c0fb602ac51c
>> 16 13:47:51,956 [log.TabletServerLogger] DEBUG: wrote MinC finish 35:
>> writeTime:1ms
>> 16 13:47:51,956 [tabletserver.Tablet] TABLET_HIST: !0<;~ MinC [memory] ->
>> /default_tablet/F000051i.rf
>> 16 13:47:51,957 [tabletserver.Tablet] DEBUG: MinC finish lock 0.00 secs
>> !0<;~
>> 16 13:47:52,650 [tabletserver.TabletServer] DEBUG: UpSess 127.0.0.1:5148043 in 0.009s, at=[0 0 0.00 1] ft=0.005s(pt=0.001s lt=0.003s ct=0.001s)
>> 16 13:47:53,233 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>> Total=0.0769043MB (80640), Free=19.923096MB (20890880), Max=20.0MB
>> (20971520), Counts: Blocks=33, Access=43, Hit=10, Miss=33, Evictions=0,
>> Evicted=0, Ratios: Hit Ratio=23.255814611911774%, Miss
>> Ratio=76.74418687820435%, Evicted/Run=NaN, Duplicate Reads=0
>> 16 13:47:53,254 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
>> Total=0.0128479MB (13472), Free=6.987152MB (7326560), Max=7.0MB (7340032),
>> Counts: Blocks=20, Access=127, Hit=106, Miss=21, Evictions=0, Evicted=0,
>> Ratios: Hit Ratio=83.4645688533783%, Miss Ratio=16.535432636737823%,
>> Evicted/Run=NaN, Duplicate Reads=1
>> 16 13:47:53,491 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>> secs, wait 0.00 secs
>> 16 13:47:53,493 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00
>> secs, wait 0.00 secs
>> 16 13:47:53,494 [tabletserver.Tablet] DEBUG: Starting MajC !0;~;!0<
>> (NORMAL) [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>> /table_info/A000051j.rf_tmp
>> 16 13:47:53,495 [tabletserver.Tablet] DEBUG: Starting MajC !0;!0<<
>> (NORMAL) [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>> /root_tablet/A000051k.rf_tmp
>> 16 13:47:53,683 [tabletserver.Compactor] DEBUG: Compaction !0;!0<< 39
>> read | 21 written | 276 entries/sec | 0.141 secs
>> 16 13:47:53,701 [tabletserver.Compactor] DEBUG: Compaction !0;~;!0< 56
>> read | 51 written | 323 entries/sec | 0.173 secs
>> 16 13:47:53,708 [tabletserver.Tablet] DEBUG: MajC finish lock 0.02 secs
>> 16 13:47:53,708 [tabletserver.Tablet] TABLET_HIST: !0;!0<< MajC
>> [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
>> /root_tablet/A000051k.rf
>> 16 13:47:53,712 [tabletserver.TabletServer] INFO : Adding 1 logs for
>> extent !0<;~ as alias 2
>> 16 13:47:53,726 [tabletserver.Tablet] DEBUG: MajC finish lock 0.00 secs
>> 16 13:47:53,726 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< MajC
>> [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
>> /table_info/A000051j.rf
>> 16 13:47:54,497 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.02)
>> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=97,183,880(-1,627,536)
>> totalmem=132,055,040
>> 16 13:47:54,694 [tabletserver.TabletServer] DEBUG: UpSess 127.0.0.1:51480146 in 0.034s, at=[0 0 0.00 1] ft=0.013s(pt=0.001s lt=0.008s ct=0.004s)
>> 16 13:47:56,527 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:53005 !0 0 entries in 0.02 secs, nbTimes = [15 15 15.00 1]
>> 16 13:48:01,503 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.01)
>> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=98,415,928(+12,106,904)
>> totalmem=132,055,040
>> 16 13:48:01,576 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:55688 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>> 127.0.0.1:65352 2 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
>> ranges:1)
>> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
>> 127.0.0.1:65358 4 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
>> ranges:1)
>> 16 13:48:06,620 [tabletserver.TabletServer] DEBUG: ScanSess tid
>> 127.0.0.1:58247 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
>> 16 13:48:44,595 [zookeeper.ZooLock] DEBUG: event null None Disconnected
>> 16 13:48:44,927 [zookeeper.ZooLock] DEBUG: event null None Expired
>> 16 13:48:44,943 [tabletserver.TabletServer] FATAL: Lost tablet server
>> lock (reason = SESSION_EXPIRED), exiting.
>>
>>
>> I'm also including a snippet from the zookeeper log as well. Around the
>> same the tserver logs show the loss of the tablet server lock due to
>> expired session, the zookeeper logs mentions the expiration of several
>> sessions due to timeout.
>> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn$StatCommand@1153]
>> - Stat command output
>> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn@1435] - Closed
>> socket connection for client /127.0.0.1:58633 (no session established
>> for client)
>> 2012-08-16 13:48:08,371 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>> connection from /127.0.0.1:59158
>> 2012-08-16 13:48:08,372 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from /
>> 127.0.0.1:59158
>> 2012-08-16 13:48:08,378 - INFO [Thread-371:NIOServerCnxn$StatCommand@1153]
>> - Stat command output
>> 2012-08-16 13:48:08,379 - INFO [Thread-371:NIOServerCnxn@1435] - Closed
>> socket connection for client /127.0.0.1:59158 (no session established
>> for client)
>> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>> connection from /127.0.0.1:59635
>> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from /
>> 127.0.0.1:59635
>> 2012-08-16 13:48:09,399 - INFO [Thread-372:NIOServerCnxn$StatCommand@1153]
>> - Stat command output
>> 2012-08-16 13:48:09,400 - INFO [Thread-372:NIOServerCnxn@1435] - Closed
>> socket connection for client /127.0.0.1:59635 (no session established
>> for client)
>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80005, timeout of 30000ms exceeded
>> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80004, timeout of 30000ms exceeded
>> 2012-08-16 13:48:32,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80001, timeout of 30000ms exceeded
>> 2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80005
>> 2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80004
>> 2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80001
>> 2012-08-16 13:48:32,003 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>> Closed socket connection for client /127.0.0.1:65339 which had sessionid
>> 0x1393086dfb80005
>> 2012-08-16 13:48:34,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80002, timeout of 30000ms exceeded
>> 2012-08-16 13:48:36,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80007, timeout of 30000ms exceeded
>> 2012-08-16 13:48:38,000 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb8004d, timeout of 30000ms exceeded
>> 2012-08-16 13:48:38,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80006, timeout of 30000ms exceeded
>> 2012-08-16 13:48:40,001 - INFO [SessionTracker:ZooKeeperServer@316] -
>> Expiring session 0x1393086dfb80003, timeout of 30000ms exceeded
>> 2012-08-16 13:48:44,456 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65332 which had
>> sessionid 0x1393086dfb80004
>> 2012-08-16 13:48:44,458 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>> Closed socket connection for client /127.0.0.1:65316 which had sessionid
>> 0x1393086dfb80001
>> 2012-08-16 13:48:44,461 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80002
>> 2012-08-16 13:48:44,482 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80007
>> 2012-08-16 13:48:44,484 - WARN [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@639] - Exception causing close of
>> session 0x1393086dfb80003 due to java.io.IOException: Connection reset by
>> peer
>> 2012-08-16 13:48:44,486 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65317 which had
>> sessionid 0x1393086dfb80002
>> 2012-08-16 13:48:44,491 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb8004d
>> 2012-08-16 13:48:44,493 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80006
>> 2012-08-16 13:48:44,495 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>> client /fe80:0:0:0:0:0:0:1%1:65330 which had sessionid 0x1393086dfb80003
>> 2012-08-16 13:48:44,495 - WARN [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable
>> to read additional data from client sessionid 0x1393086dfb80007, likely
>> client has closed socket
>> 2012-08-16 13:48:44,496 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>> client /0:0:0:0:0:0:0:1%0:65343 which had sessionid 0x1393086dfb80007
>> 2012-08-16 13:48:44,496 - WARN [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable
>> to read additional data from client sessionid 0x1393086dfb8004d, likely
>> client has closed socket
>> 2012-08-16 13:48:44,497 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>> client /127.0.0.1:49770 which had sessionid 0x1393086dfb8004d
>> 2012-08-16 13:48:44,498 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
>> - Processed session termination for sessionid: 0x1393086dfb80003
>> 2012-08-16 13:48:44,500 - INFO [SyncThread:0:NIOServerCnxn@1435] -
>> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65341 which had
>> sessionid 0x1393086dfb80006
>> 2012-08-16 13:48:44,613 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
>> connection from /0:0:0:0:0:0:0:1%0:59789
>> 2012-08-16 13:48:44,615 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew
>> session 0x1393086dfb80001 at /0:0:0:0:0:0:0:1%0:59789
>> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1573] - Invalid session
>> 0x1393086dfb80001 for client /0:0:0:0:0:0:0:1%0:59789, probably expired
>> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
>> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
>> client /0:0:0:0:0:0:0:1%0:59789 which had sessionid 0x1393086dfb80001
>>
>>
>> Sorry for the huge post of log drivel, but if you'd like to see more I
>> can post (or via pastebin) the full logs. I made sure to shut down
>> everything, wipe out the logs, then start everything back up so the logs
>> would be as clean as possible.
>>
>>
>> I looked for a way to increase the session timeout on the
>> AccumuloInputFormat, but there doesn't seem to be one. I'm sure that's not
>> the right fix anyway, but figured I'd mention it.
>>
>>
>> Do you guys have any other suggestions. I'm sure this is due to some
>> configuration error on my part, but I'm running out of idea.
>>
>>
>> Thanks a ton,
>> -Arjumand
>>
>>
>>
>> On Thu, Aug 16, 2012 at 7:24 AM, William Slacum <
>> wilhelm.von.cloud@accumulo.net> wrote:
>>
>>> What does your TServer debug log say? Also, are you writing back out to
>>> Accumulo?
>>>
>>> To follow up what Jim said, you can check the zookeeper log to see if
>>> max connections is being hit. You may also want to check and see what your
>>> max xceivers is set to for HDFS and check your Accumulo and HDFS logs to
>>> see if it is mentioned.
>>>
>>>
>>> On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>>>
>>>> Hello,
>>>>
>>>> I'm fairly new to both Accumulo and Hadoop, so I think my problem may
>>>> be due to poor configuration on my part, but I'm running out of ideas.
>>>>
>>>> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from
>>>> cdh3u4) in pseudo-distributed mode.
>>>> zookeeper version zookeeper-3.3.5 from cdh3u4
>>>> I'm using the 1.4.1 release of accumulo with a configuration copied
>>>> from "conf/examples/512MB/standalone"
>>>>
>>>> I've got a Map task that is using an accumulo table as the input.
>>>> I'm fetching all rows, but just a single column family, that has
>>>> hundreds or even thousands of different column qualifiers.
>>>> The table has a SummingCombiner installed for the given the column
>>>> family.
>>>>
>>>> The task runs fine at first, but after ~9-15K records (I print the
>>>> record count to the console every 1K records), it hangs and the following
>>>> messages are printed to the console where I'm running the job:
>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional
>>>> data from server sessionid 0x1392cc35b460d1c, likely server has closed
>>>> socket, closing socket connection and attempting reconnect
>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection
>>>> to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection
>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
>>>> connection
>>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
>>>> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client
>>>> connection, connectString=localhost sessionTimeout=30000
>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection
>>>> to server localhost/0:0:0:0:0:0:0:1:2181
>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection
>>>> established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
>>>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>>>> 0x1392cc35b460d25, negotiated timeout = 30000
>>>> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
>>>> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
>>>> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>>>>
>>>> Sometimes the messages contain a stacktrace like this below:
>>>> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40
>>>> for server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
>>>> socket connection and attempting reconnect
>>>> java.io.IOException: Connection reset by peer
>>>> at sun.nio.ch.FileDispatcher.read0(Native Method)
>>>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>>>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
>>>> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
>>>> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
>>>> at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
>>>> at
>>>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection
>>>> to server localhost/127.0.0.1:2181
>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection
>>>> established to localhost/127.0.0.1:2181, initiating session
>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>>> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
>>>> connection
>>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
>>>> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client
>>>> connection, connectString=localhost sessionTimeout=30000
>>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection
>>>> to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection
>>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
>>>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>>>> 0x1392cc35b460b46, negotiated timeout = 30000
>>>>
>>>>
>>>> I've poked through the logs in accumulo, and I've noticed that when it
>>>> hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
>>>> 16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
>>>> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
>>>> current session : Expired
>>>> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
>>>> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
>>>> registration at null
>>>> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
>>>> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>>>>
>>>>
>>>> I've noticed that if I make the map task print out the record count
>>>> more frequently (ie every 10 records), it seems to be able get through more
>>>> records than when I only print every 1K records. My assumption was that
>>>> this had something to do with more time being spent in the map task, and
>>>> not fetching data from accumulo. There was at least one occasion where I
>>>> printed to the console for every record, and in that situation it managed
>>>> to process 47K records, although I have been unable to repeat that behavior.
>>>>
>>>> I've also noticed that if I stop and start accumulo, the map-reduce job
>>>> will pickup where it left off, but seems to fail quicker.
>>>>
>>>>
>>>>
>>>> Could someone make some suggestions as to what my problem might be? It
>>>> would be greatly appreciated. If you need any additional information from
>>>> me, just let me know. I'd paste my config files, driver setup, and example
>>>> data into this post, but I think it's probably long enough already.
>>>>
>>>>
>>>> Thanks in advance,
>>>> -Arjumand
>>>>
>>>>
>>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by John Vines <vi...@apache.org>.
You're work ont he clone table failed because you took it offline. The
table needs to be online in order to do a job against it.
John
On Thu, Aug 16, 2012 at 2:36 PM, Arjumand Bonhomme <ju...@gmail.com> wrote:
> Jim, William, Adam: Thanks for your help with this, I'm running out of
> ideas to google search for answers.
>
> I'm going to try to answer your questions:
>
> 1) I had already adjusted the maxclientcxns in zoo.cfg to be 100. I
> didn't see anything in log indicating that it was shutting down connections
> due to reaching a connection limit. However, throughout the zookeeper
> logs, even before the hadoop job was run. I did see lots of lines like
> these. Up til this point, I've assumed it's innocuous and unrelated to my
> issue.
> INFO [Thread-371:NIOServerCnxn@1435] - Closed socket connection for
> client /127.0.0.1:59158 (no session established for client)
>
> 2) I had also already adjusted the dfs.datanode.max.xcievers property to
> 4096 in hdfs-site.xml. An investigation of the log shows that this limit
> is not being reached. It had been being reached at some point before I
> increased the value from the default. I had increased the value while
> troubleshooting, but prior to posting to this list; it didn't appear to
> have a noticeable affect on the behavior of the hadoop job.
>
> 3) I'm writing out to a sequence file, so accumulo is only being used for
> input. As a side note, at one point during my troubleshooting, I
> compacted, cloned, and then took the cloned table offline and tried to use
> that instead. That failed immediately, without processing any records.
> From the stacktrace, it appeared as though the iterator was trying to use
> one of the files for the original table (from what I understand about
> cloning, this is normal b/c no changes had been made to the original table)
> but said it did not exist. I was, however, able to find the file on hdfs.
> So I just gave up on that. Also, under the normal case, ie using the
> original table online, nothing is writing to the table while the hadoop job
> is running.
>
> 4) My original open file limit was the os default of 256. So I upped it
> to 1024, and performed another attempt. The behavior was the same as
> before.
>
> I'm including a snippet from the tserver debug log. It looks like an
> expired session might be the root of the problem, but I'm not sure what
> would cause that:
> 16 13:47:26,284 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49730 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
> 16 13:47:26,619 [tabletserver.TabletServer] DEBUG: UpSess 127.0.0.1:4971945 in 0.006s, at=[0 0 0.00 1] ft=0.004s(pt=0.001s lt=0.002s ct=0.001s)
> 16 13:47:31,317 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49740 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
> 16 13:47:36,350 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49750 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
> 16 13:47:41,377 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49760 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
> 16 13:47:46,278 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49771 !0 4 entries in 0.02 secs, nbTimes = [17 17 17.00 1]
> 16 13:47:46,305 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49771 !0 2 entries in 0.01 secs, nbTimes = [14 14 14.00 1]
> 16 13:47:46,406 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:49782 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
> 16 13:47:47,487 [tabletserver.TabletServer] DEBUG: gc ParNew=0.07(+0.01)
> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=111,234,160(+14,477,728)
> totalmem=132,055,040
> 16 13:47:51,452 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
> 16 13:47:51,462 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50970 !0 8 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
> 16 13:47:51,474 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50977 !0 0 entries in 0.01 secs, nbTimes = [2 2 2.00 1]
> 16 13:47:51,477 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50970 !0 26 entries in 0.01 secs, nbTimes = [11 11 11.00 1]
> 16 13:47:51,494 [tabletserver.LargestFirstMemoryManager] DEBUG: IDLE minor
> compaction chosen
> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG: COMPACTING
> !0<;~ total = 120,840 ingestMemory = 120,840
> 16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG: chosenMem
> = 2,416 chosenIT = 300.23 load 3,044
> 16 13:47:51,498 [tabletserver.Tablet] DEBUG: MinC initiate lock 0.00 secs
> 16 13:47:51,502 [tabletserver.MinorCompactor] DEBUG: Begin minor
> compaction /accumulo/tables/!0/default_tablet/F000051i.rf_tmp !0<;~
> 16 13:47:51,525 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
> 16 13:47:51,532 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
> 16 13:47:51,538 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: BEFORE
> compactionThreshold = 0.605 maxObserved = 120,840
> 16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: AFTER
> compactionThreshold = 0.666
> 16 13:47:51,942 [tabletserver.Compactor] DEBUG: Compaction !0<;~ 24 read |
> 4 written | 4,800 entries/sec | 0.005 secs
> 16 13:47:51,950 [tabletserver.Tablet] DEBUG: Logs for memory compacted:
> !0<;~ 127.0.0.1:11224/770e1b91-351a-45ac-8992-c0fb602ac51c
> 16 13:47:51,956 [log.TabletServerLogger] DEBUG: wrote MinC finish 35:
> writeTime:1ms
> 16 13:47:51,956 [tabletserver.Tablet] TABLET_HIST: !0<;~ MinC [memory] ->
> /default_tablet/F000051i.rf
> 16 13:47:51,957 [tabletserver.Tablet] DEBUG: MinC finish lock 0.00 secs
> !0<;~
> 16 13:47:52,650 [tabletserver.TabletServer] DEBUG: UpSess 127.0.0.1:5148043 in 0.009s, at=[0 0 0.00 1] ft=0.005s(pt=0.001s lt=0.003s ct=0.001s)
> 16 13:47:53,233 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
> Total=0.0769043MB (80640), Free=19.923096MB (20890880), Max=20.0MB
> (20971520), Counts: Blocks=33, Access=43, Hit=10, Miss=33, Evictions=0,
> Evicted=0, Ratios: Hit Ratio=23.255814611911774%, Miss
> Ratio=76.74418687820435%, Evicted/Run=NaN, Duplicate Reads=0
> 16 13:47:53,254 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
> Total=0.0128479MB (13472), Free=6.987152MB (7326560), Max=7.0MB (7340032),
> Counts: Blocks=20, Access=127, Hit=106, Miss=21, Evictions=0, Evicted=0,
> Ratios: Hit Ratio=83.4645688533783%, Miss Ratio=16.535432636737823%,
> Evicted/Run=NaN, Duplicate Reads=1
> 16 13:47:53,491 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00 secs,
> wait 0.00 secs
> 16 13:47:53,493 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00 secs,
> wait 0.00 secs
> 16 13:47:53,494 [tabletserver.Tablet] DEBUG: Starting MajC !0;~;!0<
> (NORMAL) [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
> /table_info/A000051j.rf_tmp
> 16 13:47:53,495 [tabletserver.Tablet] DEBUG: Starting MajC !0;!0<<
> (NORMAL) [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
> /root_tablet/A000051k.rf_tmp
> 16 13:47:53,683 [tabletserver.Compactor] DEBUG: Compaction !0;!0<< 39 read
> | 21 written | 276 entries/sec | 0.141 secs
> 16 13:47:53,701 [tabletserver.Compactor] DEBUG: Compaction !0;~;!0< 56
> read | 51 written | 323 entries/sec | 0.173 secs
> 16 13:47:53,708 [tabletserver.Tablet] DEBUG: MajC finish lock 0.02 secs
> 16 13:47:53,708 [tabletserver.Tablet] TABLET_HIST: !0;!0<< MajC
> [/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
> /root_tablet/A000051k.rf
> 16 13:47:53,712 [tabletserver.TabletServer] INFO : Adding 1 logs for
> extent !0<;~ as alias 2
> 16 13:47:53,726 [tabletserver.Tablet] DEBUG: MajC finish lock 0.00 secs
> 16 13:47:53,726 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< MajC
> [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
> /table_info/A000051j.rf
> 16 13:47:54,497 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.02)
> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=97,183,880(-1,627,536)
> totalmem=132,055,040
> 16 13:47:54,694 [tabletserver.TabletServer] DEBUG: UpSess 127.0.0.1:51480146 in 0.034s, at=[0 0 0.00 1] ft=0.013s(pt=0.001s lt=0.008s ct=0.004s)
> 16 13:47:56,527 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:53005 !0 0 entries in 0.02 secs, nbTimes = [15 15 15.00 1]
> 16 13:48:01,503 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.01)
> secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=98,415,928(+12,106,904)
> totalmem=132,055,040
> 16 13:48:01,576 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:55688 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
> 127.0.0.1:65352 2 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
> ranges:1)
> 16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
> 127.0.0.1:65358 4 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
> ranges:1)
> 16 13:48:06,620 [tabletserver.TabletServer] DEBUG: ScanSess tid
> 127.0.0.1:58247 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
> 16 13:48:44,595 [zookeeper.ZooLock] DEBUG: event null None Disconnected
> 16 13:48:44,927 [zookeeper.ZooLock] DEBUG: event null None Expired
> 16 13:48:44,943 [tabletserver.TabletServer] FATAL: Lost tablet server lock
> (reason = SESSION_EXPIRED), exiting.
>
>
> I'm also including a snippet from the zookeeper log as well. Around the
> same the tserver logs show the loss of the tablet server lock due to
> expired session, the zookeeper logs mentions the expiration of several
> sessions due to timeout.
> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn$StatCommand@1153]
> - Stat command output
> 2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn@1435] - Closed
> socket connection for client /127.0.0.1:58633 (no session established for
> client)
> 2012-08-16 13:48:08,371 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
> connection from /127.0.0.1:59158
> 2012-08-16 13:48:08,372 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from /
> 127.0.0.1:59158
> 2012-08-16 13:48:08,378 - INFO [Thread-371:NIOServerCnxn$StatCommand@1153]
> - Stat command output
> 2012-08-16 13:48:08,379 - INFO [Thread-371:NIOServerCnxn@1435] - Closed
> socket connection for client /127.0.0.1:59158 (no session established for
> client)
> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
> connection from /127.0.0.1:59635
> 2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from /
> 127.0.0.1:59635
> 2012-08-16 13:48:09,399 - INFO [Thread-372:NIOServerCnxn$StatCommand@1153]
> - Stat command output
> 2012-08-16 13:48:09,400 - INFO [Thread-372:NIOServerCnxn@1435] - Closed
> socket connection for client /127.0.0.1:59635 (no session established for
> client)
> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80005, timeout of 30000ms exceeded
> 2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80004, timeout of 30000ms exceeded
> 2012-08-16 13:48:32,001 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80001, timeout of 30000ms exceeded
> 2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80005
> 2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80004
> 2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80001
> 2012-08-16 13:48:32,003 - INFO [SyncThread:0:NIOServerCnxn@1435] -
> Closed socket connection for client /127.0.0.1:65339 which had sessionid
> 0x1393086dfb80005
> 2012-08-16 13:48:34,001 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80002, timeout of 30000ms exceeded
> 2012-08-16 13:48:36,001 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80007, timeout of 30000ms exceeded
> 2012-08-16 13:48:38,000 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb8004d, timeout of 30000ms exceeded
> 2012-08-16 13:48:38,001 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80006, timeout of 30000ms exceeded
> 2012-08-16 13:48:40,001 - INFO [SessionTracker:ZooKeeperServer@316] -
> Expiring session 0x1393086dfb80003, timeout of 30000ms exceeded
> 2012-08-16 13:48:44,456 - INFO [SyncThread:0:NIOServerCnxn@1435] -
> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65332 which had
> sessionid 0x1393086dfb80004
> 2012-08-16 13:48:44,458 - INFO [SyncThread:0:NIOServerCnxn@1435] -
> Closed socket connection for client /127.0.0.1:65316 which had sessionid
> 0x1393086dfb80001
> 2012-08-16 13:48:44,461 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80002
> 2012-08-16 13:48:44,482 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80007
> 2012-08-16 13:48:44,484 - WARN [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@639] - Exception causing close of
> session 0x1393086dfb80003 due to java.io.IOException: Connection reset by
> peer
> 2012-08-16 13:48:44,486 - INFO [SyncThread:0:NIOServerCnxn@1435] -
> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65317 which had
> sessionid 0x1393086dfb80002
> 2012-08-16 13:48:44,491 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb8004d
> 2012-08-16 13:48:44,493 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80006
> 2012-08-16 13:48:44,495 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
> client /fe80:0:0:0:0:0:0:1%1:65330 which had sessionid 0x1393086dfb80003
> 2012-08-16 13:48:44,495 - WARN [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable to
> read additional data from client sessionid 0x1393086dfb80007, likely client
> has closed socket
> 2012-08-16 13:48:44,496 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
> client /0:0:0:0:0:0:0:1%0:65343 which had sessionid 0x1393086dfb80007
> 2012-08-16 13:48:44,496 - WARN [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable to
> read additional data from client sessionid 0x1393086dfb8004d, likely client
> has closed socket
> 2012-08-16 13:48:44,497 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
> client /127.0.0.1:49770 which had sessionid 0x1393086dfb8004d
> 2012-08-16 13:48:44,498 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
> - Processed session termination for sessionid: 0x1393086dfb80003
> 2012-08-16 13:48:44,500 - INFO [SyncThread:0:NIOServerCnxn@1435] -
> Closed socket connection for client /fe80:0:0:0:0:0:0:1%1:65341 which had
> sessionid 0x1393086dfb80006
> 2012-08-16 13:48:44,613 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
> connection from /0:0:0:0:0:0:0:1%0:59789
> 2012-08-16 13:48:44,615 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew
> session 0x1393086dfb80001 at /0:0:0:0:0:0:0:1%0:59789
> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1573] - Invalid session
> 0x1393086dfb80001 for client /0:0:0:0:0:0:0:1%0:59789, probably expired
> 2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
> client /0:0:0:0:0:0:0:1%0:59789 which had sessionid 0x1393086dfb80001
>
>
> Sorry for the huge post of log drivel, but if you'd like to see more I can
> post (or via pastebin) the full logs. I made sure to shut down everything,
> wipe out the logs, then start everything back up so the logs would be as
> clean as possible.
>
>
> I looked for a way to increase the session timeout on the
> AccumuloInputFormat, but there doesn't seem to be one. I'm sure that's not
> the right fix anyway, but figured I'd mention it.
>
>
> Do you guys have any other suggestions. I'm sure this is due to some
> configuration error on my part, but I'm running out of idea.
>
>
> Thanks a ton,
> -Arjumand
>
>
>
> On Thu, Aug 16, 2012 at 7:24 AM, William Slacum <
> wilhelm.von.cloud@accumulo.net> wrote:
>
>> What does your TServer debug log say? Also, are you writing back out to
>> Accumulo?
>>
>> To follow up what Jim said, you can check the zookeeper log to see if max
>> connections is being hit. You may also want to check and see what your max
>> xceivers is set to for HDFS and check your Accumulo and HDFS logs to see if
>> it is mentioned.
>>
>>
>> On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>>
>>> Hello,
>>>
>>> I'm fairly new to both Accumulo and Hadoop, so I think my problem may be
>>> due to poor configuration on my part, but I'm running out of ideas.
>>>
>>> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from
>>> cdh3u4) in pseudo-distributed mode.
>>> zookeeper version zookeeper-3.3.5 from cdh3u4
>>> I'm using the 1.4.1 release of accumulo with a configuration copied from
>>> "conf/examples/512MB/standalone"
>>>
>>> I've got a Map task that is using an accumulo table as the input.
>>> I'm fetching all rows, but just a single column family, that has
>>> hundreds or even thousands of different column qualifiers.
>>> The table has a SummingCombiner installed for the given the column
>>> family.
>>>
>>> The task runs fine at first, but after ~9-15K records (I print the
>>> record count to the console every 1K records), it hangs and the following
>>> messages are printed to the console where I'm running the job:
>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional
>>> data from server sessionid 0x1392cc35b460d1c, likely server has closed
>>> socket, closing socket connection and attempting reconnect
>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection
>>> to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection
>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
>>> connection
>>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
>>> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client
>>> connection, connectString=localhost sessionTimeout=30000
>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection
>>> to server localhost/0:0:0:0:0:0:0:1:2181
>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection
>>> established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
>>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>>> 0x1392cc35b460d25, negotiated timeout = 30000
>>> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
>>> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
>>> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>>>
>>> Sometimes the messages contain a stacktrace like this below:
>>> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40
>>> for server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
>>> socket connection and attempting reconnect
>>> java.io.IOException: Connection reset by peer
>>> at sun.nio.ch.FileDispatcher.read0(Native Method)
>>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
>>> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
>>> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
>>> at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
>>> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection
>>> to server localhost/127.0.0.1:2181
>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection
>>> established to localhost/127.0.0.1:2181, initiating session
>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
>>> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
>>> connection
>>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
>>> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client
>>> connection, connectString=localhost sessionTimeout=30000
>>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection
>>> to server localhost/fe80:0:0:0:0:0:0:1%1:2181
>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection
>>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
>>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>>> 0x1392cc35b460b46, negotiated timeout = 30000
>>>
>>>
>>> I've poked through the logs in accumulo, and I've noticed that when it
>>> hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
>>> 16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
>>> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
>>> current session : Expired
>>> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
>>> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
>>> registration at null
>>> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
>>> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>>>
>>>
>>> I've noticed that if I make the map task print out the record count more
>>> frequently (ie every 10 records), it seems to be able get through more
>>> records than when I only print every 1K records. My assumption was that
>>> this had something to do with more time being spent in the map task, and
>>> not fetching data from accumulo. There was at least one occasion where I
>>> printed to the console for every record, and in that situation it managed
>>> to process 47K records, although I have been unable to repeat that behavior.
>>>
>>> I've also noticed that if I stop and start accumulo, the map-reduce job
>>> will pickup where it left off, but seems to fail quicker.
>>>
>>>
>>>
>>> Could someone make some suggestions as to what my problem might be? It
>>> would be greatly appreciated. If you need any additional information from
>>> me, just let me know. I'd paste my config files, driver setup, and example
>>> data into this post, but I think it's probably long enough already.
>>>
>>>
>>> Thanks in advance,
>>> -Arjumand
>>>
>>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by Arjumand Bonhomme <ju...@gmail.com>.
Jim, William, Adam: Thanks for your help with this, I'm running out of
ideas to google search for answers.
I'm going to try to answer your questions:
1) I had already adjusted the maxclientcxns in zoo.cfg to be 100. I didn't
see anything in log indicating that it was shutting down connections due to
reaching a connection limit. However, throughout the zookeeper logs, even
before the hadoop job was run. I did see lots of lines like these. Up til
this point, I've assumed it's innocuous and unrelated to my issue.
INFO [Thread-371:NIOServerCnxn@1435] - Closed socket connection for client
/127.0.0.1:59158 (no session established for client)
2) I had also already adjusted the dfs.datanode.max.xcievers property to
4096 in hdfs-site.xml. An investigation of the log shows that this limit
is not being reached. It had been being reached at some point before I
increased the value from the default. I had increased the value while
troubleshooting, but prior to posting to this list; it didn't appear to
have a noticeable affect on the behavior of the hadoop job.
3) I'm writing out to a sequence file, so accumulo is only being used for
input. As a side note, at one point during my troubleshooting, I
compacted, cloned, and then took the cloned table offline and tried to use
that instead. That failed immediately, without processing any records.
From the stacktrace, it appeared as though the iterator was trying to use
one of the files for the original table (from what I understand about
cloning, this is normal b/c no changes had been made to the original table)
but said it did not exist. I was, however, able to find the file on hdfs.
So I just gave up on that. Also, under the normal case, ie using the
original table online, nothing is writing to the table while the hadoop job
is running.
4) My original open file limit was the os default of 256. So I upped it to
1024, and performed another attempt. The behavior was the same as before.
I'm including a snippet from the tserver debug log. It looks like an
expired session might be the root of the problem, but I'm not sure what
would cause that:
16 13:47:26,284 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49730 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
16 13:47:26,619 [tabletserver.TabletServer] DEBUG: UpSess
127.0.0.1:4971945 in 0.006s, at=[0 0 0.00 1] ft=0.004s(pt=0.001s
lt=0.002s ct=0.001s)
16 13:47:31,317 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49740 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
16 13:47:36,350 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49750 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
16 13:47:41,377 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49760 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
16 13:47:46,278 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49771 !0 4 entries in 0.02 secs, nbTimes = [17 17 17.00 1]
16 13:47:46,305 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49771 !0 2 entries in 0.01 secs, nbTimes = [14 14 14.00 1]
16 13:47:46,406 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:49782 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
16 13:47:47,487 [tabletserver.TabletServer] DEBUG: gc ParNew=0.07(+0.01)
secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=111,234,160(+14,477,728)
totalmem=132,055,040
16 13:47:51,452 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
16 13:47:51,462 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50970 !0 8 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
16 13:47:51,474 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50977 !0 0 entries in 0.01 secs, nbTimes = [2 2 2.00 1]
16 13:47:51,477 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50970 !0 26 entries in 0.01 secs, nbTimes = [11 11 11.00 1]
16 13:47:51,494 [tabletserver.LargestFirstMemoryManager] DEBUG: IDLE minor
compaction chosen
16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG: COMPACTING
!0<;~ total = 120,840 ingestMemory = 120,840
16 13:47:51,495 [tabletserver.LargestFirstMemoryManager] DEBUG: chosenMem =
2,416 chosenIT = 300.23 load 3,044
16 13:47:51,498 [tabletserver.Tablet] DEBUG: MinC initiate lock 0.00 secs
16 13:47:51,502 [tabletserver.MinorCompactor] DEBUG: Begin minor compaction
/accumulo/tables/!0/default_tablet/F000051i.rf_tmp !0<;~
16 13:47:51,525 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
16 13:47:51,532 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50970 !0 1 entries in 0.00 secs, nbTimes = [3 3 3.00 1]
16 13:47:51,538 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:50970 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: BEFORE
compactionThreshold = 0.605 maxObserved = 120,840
16 13:47:51,750 [tabletserver.LargestFirstMemoryManager] DEBUG: AFTER
compactionThreshold = 0.666
16 13:47:51,942 [tabletserver.Compactor] DEBUG: Compaction !0<;~ 24 read |
4 written | 4,800 entries/sec | 0.005 secs
16 13:47:51,950 [tabletserver.Tablet] DEBUG: Logs for memory compacted:
!0<;~ 127.0.0.1:11224/770e1b91-351a-45ac-8992-c0fb602ac51c
16 13:47:51,956 [log.TabletServerLogger] DEBUG: wrote MinC finish 35:
writeTime:1ms
16 13:47:51,956 [tabletserver.Tablet] TABLET_HIST: !0<;~ MinC [memory] ->
/default_tablet/F000051i.rf
16 13:47:51,957 [tabletserver.Tablet] DEBUG: MinC finish lock 0.00 secs
!0<;~
16 13:47:52,650 [tabletserver.TabletServer] DEBUG: UpSess
127.0.0.1:5148043 in 0.009s, at=[0 0 0.00 1] ft=0.005s(pt=0.001s
lt=0.003s ct=0.001s)
16 13:47:53,233 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
Total=0.0769043MB (80640), Free=19.923096MB (20890880), Max=20.0MB
(20971520), Counts: Blocks=33, Access=43, Hit=10, Miss=33, Evictions=0,
Evicted=0, Ratios: Hit Ratio=23.255814611911774%, Miss
Ratio=76.74418687820435%, Evicted/Run=NaN, Duplicate Reads=0
16 13:47:53,254 [cache.LruBlockCache] DEBUG: Cache Stats: Sizes:
Total=0.0128479MB (13472), Free=6.987152MB (7326560), Max=7.0MB (7340032),
Counts: Blocks=20, Access=127, Hit=106, Miss=21, Evictions=0, Evicted=0,
Ratios: Hit Ratio=83.4645688533783%, Miss Ratio=16.535432636737823%,
Evicted/Run=NaN, Duplicate Reads=1
16 13:47:53,491 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00 secs,
wait 0.00 secs
16 13:47:53,493 [tabletserver.Tablet] DEBUG: MajC initiate lock 0.00 secs,
wait 0.00 secs
16 13:47:53,494 [tabletserver.Tablet] DEBUG: Starting MajC !0;~;!0<
(NORMAL) [/table_info/A000051d.rf, /table_info/F000051h.rf] -->
/table_info/A000051j.rf_tmp
16 13:47:53,495 [tabletserver.Tablet] DEBUG: Starting MajC !0;!0<< (NORMAL)
[/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
/root_tablet/A000051k.rf_tmp
16 13:47:53,683 [tabletserver.Compactor] DEBUG: Compaction !0;!0<< 39 read
| 21 written | 276 entries/sec | 0.141 secs
16 13:47:53,701 [tabletserver.Compactor] DEBUG: Compaction !0;~;!0< 56 read
| 51 written | 323 entries/sec | 0.173 secs
16 13:47:53,708 [tabletserver.Tablet] DEBUG: MajC finish lock 0.02 secs
16 13:47:53,708 [tabletserver.Tablet] TABLET_HIST: !0;!0<< MajC
[/root_tablet/A000051e.rf, /root_tablet/F000051g.rf] -->
/root_tablet/A000051k.rf
16 13:47:53,712 [tabletserver.TabletServer] INFO : Adding 1 logs for extent
!0<;~ as alias 2
16 13:47:53,726 [tabletserver.Tablet] DEBUG: MajC finish lock 0.00 secs
16 13:47:53,726 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< MajC
[/table_info/A000051d.rf, /table_info/F000051h.rf] -->
/table_info/A000051j.rf
16 13:47:54,497 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.02)
secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=97,183,880(-1,627,536)
totalmem=132,055,040
16 13:47:54,694 [tabletserver.TabletServer] DEBUG: UpSess
127.0.0.1:51480146 in 0.034s, at=[0 0 0.00 1] ft=0.013s(pt=0.001s
lt=0.008s ct=0.004s)
16 13:47:56,527 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:53005 !0 0 entries in 0.02 secs, nbTimes = [15 15 15.00 1]
16 13:48:01,503 [tabletserver.TabletServer] DEBUG: gc ParNew=0.09(+0.01)
secs ConcurrentMarkSweep=0.00(+0.00) secs freemem=98,415,928(+12,106,904)
totalmem=132,055,040
16 13:48:01,576 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:55688 !0 0 entries in 0.00 secs, nbTimes = [2 2 2.00 1]
16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
127.0.0.1:65352 2 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
ranges:1)
16 13:48:01,663 [tabletserver.TabletServer] DEBUG: MultiScanSess
127.0.0.1:65358 4 entries in 0.03 secs (lookup_time:0.03 secs tablets:1
ranges:1)
16 13:48:06,620 [tabletserver.TabletServer] DEBUG: ScanSess tid
127.0.0.1:58247 !0 0 entries in 0.00 secs, nbTimes = [1 1 1.00 1]
16 13:48:44,595 [zookeeper.ZooLock] DEBUG: event null None Disconnected
16 13:48:44,927 [zookeeper.ZooLock] DEBUG: event null None Expired
16 13:48:44,943 [tabletserver.TabletServer] FATAL: Lost tablet server lock
(reason = SESSION_EXPIRED), exiting.
I'm also including a snippet from the zookeeper log as well. Around the
same the tserver logs show the loss of the tablet server lock due to
expired session, the zookeeper logs mentions the expiration of several
sessions due to timeout.
2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn$StatCommand@1153]
- Stat command output
2012-08-16 13:48:07,368 - INFO [Thread-370:NIOServerCnxn@1435] - Closed
socket connection for client /127.0.0.1:58633 (no session established for
client)
2012-08-16 13:48:08,371 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
connection from /127.0.0.1:59158
2012-08-16 13:48:08,372 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from /
127.0.0.1:59158
2012-08-16 13:48:08,378 - INFO [Thread-371:NIOServerCnxn$StatCommand@1153]
- Stat command output
2012-08-16 13:48:08,379 - INFO [Thread-371:NIOServerCnxn@1435] - Closed
socket connection for client /127.0.0.1:59158 (no session established for
client)
2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
connection from /127.0.0.1:59635
2012-08-16 13:48:09,395 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1237] - Processing stat command from /
127.0.0.1:59635
2012-08-16 13:48:09,399 - INFO [Thread-372:NIOServerCnxn$StatCommand@1153]
- Stat command output
2012-08-16 13:48:09,400 - INFO [Thread-372:NIOServerCnxn@1435] - Closed
socket connection for client /127.0.0.1:59635 (no session established for
client)
2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80005, timeout of 30000ms exceeded
2012-08-16 13:48:32,000 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80004, timeout of 30000ms exceeded
2012-08-16 13:48:32,001 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80001, timeout of 30000ms exceeded
2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80005
2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80004
2012-08-16 13:48:32,001 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80001
2012-08-16 13:48:32,003 - INFO [SyncThread:0:NIOServerCnxn@1435] - Closed
socket connection for client /127.0.0.1:65339 which had sessionid
0x1393086dfb80005
2012-08-16 13:48:34,001 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80002, timeout of 30000ms exceeded
2012-08-16 13:48:36,001 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80007, timeout of 30000ms exceeded
2012-08-16 13:48:38,000 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb8004d, timeout of 30000ms exceeded
2012-08-16 13:48:38,001 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80006, timeout of 30000ms exceeded
2012-08-16 13:48:40,001 - INFO [SessionTracker:ZooKeeperServer@316] -
Expiring session 0x1393086dfb80003, timeout of 30000ms exceeded
2012-08-16 13:48:44,456 - INFO [SyncThread:0:NIOServerCnxn@1435] - Closed
socket connection for client /fe80:0:0:0:0:0:0:1%1:65332 which had
sessionid 0x1393086dfb80004
2012-08-16 13:48:44,458 - INFO [SyncThread:0:NIOServerCnxn@1435] - Closed
socket connection for client /127.0.0.1:65316 which had sessionid
0x1393086dfb80001
2012-08-16 13:48:44,461 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80002
2012-08-16 13:48:44,482 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80007
2012-08-16 13:48:44,484 - WARN [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@639] - Exception causing close of
session 0x1393086dfb80003 due to java.io.IOException: Connection reset by
peer
2012-08-16 13:48:44,486 - INFO [SyncThread:0:NIOServerCnxn@1435] - Closed
socket connection for client /fe80:0:0:0:0:0:0:1%1:65317 which had
sessionid 0x1393086dfb80002
2012-08-16 13:48:44,491 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb8004d
2012-08-16 13:48:44,493 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80006
2012-08-16 13:48:44,495 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
client /fe80:0:0:0:0:0:0:1%1:65330 which had sessionid 0x1393086dfb80003
2012-08-16 13:48:44,495 - WARN [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable to
read additional data from client sessionid 0x1393086dfb80007, likely client
has closed socket
2012-08-16 13:48:44,496 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
client /0:0:0:0:0:0:0:1%0:65343 which had sessionid 0x1393086dfb80007
2012-08-16 13:48:44,496 - WARN [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] - EndOfStreamException: Unable to
read additional data from client sessionid 0x1393086dfb8004d, likely client
has closed socket
2012-08-16 13:48:44,497 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
client /127.0.0.1:49770 which had sessionid 0x1393086dfb8004d
2012-08-16 13:48:44,498 - INFO [ProcessThread:-1:PrepRequestProcessor@399]
- Processed session termination for sessionid: 0x1393086dfb80003
2012-08-16 13:48:44,500 - INFO [SyncThread:0:NIOServerCnxn@1435] - Closed
socket connection for client /fe80:0:0:0:0:0:0:1%1:65341 which had
sessionid 0x1393086dfb80006
2012-08-16 13:48:44,613 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] - Accepted socket
connection from /0:0:0:0:0:0:0:1%0:59789
2012-08-16 13:48:44,615 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@770] - Client attempting to renew
session 0x1393086dfb80001 at /0:0:0:0:0:0:0:1%0:59789
2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1573] - Invalid session
0x1393086dfb80001 for client /0:0:0:0:0:0:0:1%0:59789, probably expired
2012-08-16 13:48:44,616 - INFO [NIOServerCxn.Factory:
0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed socket connection for
client /0:0:0:0:0:0:0:1%0:59789 which had sessionid 0x1393086dfb80001
Sorry for the huge post of log drivel, but if you'd like to see more I can
post (or via pastebin) the full logs. I made sure to shut down everything,
wipe out the logs, then start everything back up so the logs would be as
clean as possible.
I looked for a way to increase the session timeout on the
AccumuloInputFormat, but there doesn't seem to be one. I'm sure that's not
the right fix anyway, but figured I'd mention it.
Do you guys have any other suggestions. I'm sure this is due to some
configuration error on my part, but I'm running out of idea.
Thanks a ton,
-Arjumand
On Thu, Aug 16, 2012 at 7:24 AM, William Slacum <
wilhelm.von.cloud@accumulo.net> wrote:
> What does your TServer debug log say? Also, are you writing back out to
> Accumulo?
>
> To follow up what Jim said, you can check the zookeeper log to see if max
> connections is being hit. You may also want to check and see what your max
> xceivers is set to for HDFS and check your Accumulo and HDFS logs to see if
> it is mentioned.
>
>
> On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com>wrote:
>
>> Hello,
>>
>> I'm fairly new to both Accumulo and Hadoop, so I think my problem may be
>> due to poor configuration on my part, but I'm running out of ideas.
>>
>> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from cdh3u4)
>> in pseudo-distributed mode.
>> zookeeper version zookeeper-3.3.5 from cdh3u4
>> I'm using the 1.4.1 release of accumulo with a configuration copied from
>> "conf/examples/512MB/standalone"
>>
>> I've got a Map task that is using an accumulo table as the input.
>> I'm fetching all rows, but just a single column family, that has hundreds
>> or even thousands of different column qualifiers.
>> The table has a SummingCombiner installed for the given the column family.
>>
>> The task runs fine at first, but after ~9-15K records (I print the record
>> count to the console every 1K records), it hangs and the following messages
>> are printed to the console where I'm running the job:
>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional
>> data from server sessionid 0x1392cc35b460d1c, likely server has closed
>> socket, closing socket connection and attempting reconnect
>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/fe80:0:0:0:0:0:0:1%1:2181
>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection
>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
>> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
>> connection
>> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
>> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client connection,
>> connectString=localhost sessionTimeout=30000
>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/0:0:0:0:0:0:0:1:2181
>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection
>> established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
>> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
>> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
>> 0x1392cc35b460d25, negotiated timeout = 30000
>> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
>> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
>> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>>
>> Sometimes the messages contain a stacktrace like this below:
>> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40
>> for server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
>> socket connection and attempting reconnect
>> java.io.IOException: Connection reset by peer
>> at sun.nio.ch.FileDispatcher.read0(Native Method)
>> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
>> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
>> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
>> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
>> at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
>> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/127.0.0.1:2181
>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection
>> established to localhost/127.0.0.1:2181, initiating session
>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
>> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
>> connection
>> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
>> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client connection,
>> connectString=localhost sessionTimeout=30000
>> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server localhost/fe80:0:0:0:0:0:0:1%1:2181
>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection
>> established to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
>> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>> 0x1392cc35b460b46, negotiated timeout = 30000
>>
>>
>> I've poked through the logs in accumulo, and I've noticed that when it
>> hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
>> 16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
>> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
>> current session : Expired
>> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
>> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
>> registration at null
>> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
>> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>>
>>
>> I've noticed that if I make the map task print out the record count more
>> frequently (ie every 10 records), it seems to be able get through more
>> records than when I only print every 1K records. My assumption was that
>> this had something to do with more time being spent in the map task, and
>> not fetching data from accumulo. There was at least one occasion where I
>> printed to the console for every record, and in that situation it managed
>> to process 47K records, although I have been unable to repeat that behavior.
>>
>> I've also noticed that if I stop and start accumulo, the map-reduce job
>> will pickup where it left off, but seems to fail quicker.
>>
>>
>>
>> Could someone make some suggestions as to what my problem might be? It
>> would be greatly appreciated. If you need any additional information from
>> me, just let me know. I'd paste my config files, driver setup, and example
>> data into this post, but I think it's probably long enough already.
>>
>>
>> Thanks in advance,
>> -Arjumand
>>
>>
>
Re: Using Accumulo as input to a MapReduce job frequently hangs due
to lost Zookeeper connection
Posted by William Slacum <wi...@accumulo.net>.
What does your TServer debug log say? Also, are you writing back out to
Accumulo?
To follow up what Jim said, you can check the zookeeper log to see if max
connections is being hit. You may also want to check and see what your max
xceivers is set to for HDFS and check your Accumulo and HDFS logs to see if
it is mentioned.
On Thu, Aug 16, 2012 at 3:59 AM, Arjumand Bonhomme <ju...@gmail.com> wrote:
> Hello,
>
> I'm fairly new to both Accumulo and Hadoop, so I think my problem may be
> due to poor configuration on my part, but I'm running out of ideas.
>
> I'm running this on a mac laptop, with hadoop (hadoop-0.20.2 from cdh3u4)
> in pseudo-distributed mode.
> zookeeper version zookeeper-3.3.5 from cdh3u4
> I'm using the 1.4.1 release of accumulo with a configuration copied from
> "conf/examples/512MB/standalone"
>
> I've got a Map task that is using an accumulo table as the input.
> I'm fetching all rows, but just a single column family, that has hundreds
> or even thousands of different column qualifiers.
> The table has a SummingCombiner installed for the given the column family.
>
> The task runs fine at first, but after ~9-15K records (I print the record
> count to the console every 1K records), it hangs and the following messages
> are printed to the console where I'm running the job:
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to read additional
> data from server sessionid 0x1392cc35b460d1c, likely server has closed
> socket, closing socket connection and attempting reconnect
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/fe80:0:0:0:0:0:0:1%1:2181
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: Unable to reconnect to
> ZooKeeper service, session 0x1392cc35b460d1c has expired, closing socket
> connection
> 12/08/16 02:57:08 INFO zookeeper.ClientCnxn: EventThread shut down
> 12/08/16 02:57:10 INFO zookeeper.ZooKeeper: Initiating client connection,
> connectString=localhost sessionTimeout=30000
> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@32f5c51c
> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/0:0:0:0:0:0:0:1:2181
> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/0:0:0:0:0:0:0:1:2181, initiating session
> 12/08/16 02:57:10 INFO zookeeper.ClientCnxn: Session establishment
> complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =
> 0x1392cc35b460d25, negotiated timeout = 30000
> 12/08/16 02:57:11 INFO mapred.LocalJobRunner:
> 12/08/16 02:57:14 INFO mapred.LocalJobRunner:
> 12/08/16 02:57:17 INFO mapred.LocalJobRunner:
>
> Sometimes the messages contain a stacktrace like this below:
> 12/08/16 01:57:40 WARN zookeeper.ClientCnxn: Session 0x1392cc35b460b40 for
> server localhost/fe80:0:0:0:0:0:0:1%1:2181, unexpected error, closing
> socket connection and attempting reconnect
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcher.read0(Native Method)
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
> at sun.nio.ch.IOUtil.read(IOUtil.java:166)
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
> at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:856)
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1154)
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/127.0.0.1:2181
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/127.0.0.1:2181, initiating session
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: Unable to reconnect to
> ZooKeeper service, session 0x1392cc35b460b40 has expired, closing socket
> connection
> 12/08/16 01:57:40 INFO zookeeper.ClientCnxn: EventThread shut down
> 12/08/16 01:57:41 INFO zookeeper.ZooKeeper: Initiating client connection,
> connectString=localhost sessionTimeout=30000
> watcher=org.apache.accumulo.core.zookeeper.ZooSession$AccumuloWatcher@684a26e8
> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Opening socket connection to
> server localhost/fe80:0:0:0:0:0:0:1%1:2181
> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Socket connection established
> to localhost/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 12/08/16 01:57:41 INFO zookeeper.ClientCnxn: Session establishment
> complete on server localhost/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
> 0x1392cc35b460b46, negotiated timeout = 30000
>
>
> I've poked through the logs in accumulo, and I've noticed that when it
> hangs, the following is written to the "logger_HOSTNAME.debug.log" file:
> 16 03:29:46,332 [logger.LogService] DEBUG: event null None Disconnected
> 16 03:29:47,248 [zookeeper.ZooSession] DEBUG: Session expired, state of
> current session : Expired
> 16 03:29:47,248 [logger.LogService] DEBUG: event null None Expired
> 16 03:29:47,249 [logger.LogService] WARN : Logger lost zookeeper
> registration at null
> 16 03:29:47,452 [logger.LogService] INFO : Logger shutting down
> 16 03:29:47,453 [logger.LogWriter] INFO : Shutting down
>
>
> I've noticed that if I make the map task print out the record count more
> frequently (ie every 10 records), it seems to be able get through more
> records than when I only print every 1K records. My assumption was that
> this had something to do with more time being spent in the map task, and
> not fetching data from accumulo. There was at least one occasion where I
> printed to the console for every record, and in that situation it managed
> to process 47K records, although I have been unable to repeat that behavior.
>
> I've also noticed that if I stop and start accumulo, the map-reduce job
> will pickup where it left off, but seems to fail quicker.
>
>
>
> Could someone make some suggestions as to what my problem might be? It
> would be greatly appreciated. If you need any additional information from
> me, just let me know. I'd paste my config files, driver setup, and example
> data into this post, but I think it's probably long enough already.
>
>
> Thanks in advance,
> -Arjumand
>
>