Hi,
I did some experiments on a single Linux machine. I generated some data using
the 'random writer' and use the 'sort' in the hadoop-examples to sort them. I
still got some out of memory exceptions as follows:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.io.ByteArrayOutputStream.write(Unknown Source)
at java.io.DataOutputStream.write(Unknown Source)
at org.apache.hadoop.io.BytesWritable.write(BytesWritable.java:137)
at
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:340)
at
org.apache.hadoop.mapred.lib.IdentityMapper.map(IdentityMapper.java:39)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:46)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:189)
at
org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:1777)
Any ideas?
Thanks,
Rui
----- Original Message ----
From: Rui Shi <[EMAIL PROTECTED]>
To: [email protected]
Sent: Thursday, December 6, 2007 5:56:42 PM
Subject: Re: Mapper Out of Memory
Hi,
Out-of-memory exceptions can also be caused by having too many files
open at once. What does 'ulimit -n' show?
29491
You presented an excerpt from a jobtracker log, right? What do the
tasktracker logs show?
I saw the some warning in the tasktracker log:
2007-12-06 12:23:41,604 WARN org.apache.hadoop.ipc.Server: IPC Server
handler 0 on 50050, call progress(task_200712031900_0014_m_000058_0,
9.126612E-12, hdfs:///usr/ruish/400.gz:0+9528361, MAP,
[EMAIL PROTECTED]) from: output error
java.nio.channels.ClosedChannelException
at
sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:125)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:294)
at
org.apache.hadoop.ipc.SocketChannelOutputStream.flushBuffer(SocketChannelOutputStream.java:108)
at
org.apache.hadoop.ipc.SocketChannelOutputStream.write(SocketChannelOutputStream.java:89)
at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:585)
And in the datanode logs:
2007-12-06 14:42:20,831 ERROR org.apache.hadoop.dfs.DataNode:
DataXceiver: java.io.IOException: Block blk_-8176614602638949879 is valid, and
cannot be written to.
at org.apache.hadoop.dfs.FSDataset.writeToBlock(FSDataset.java:515)
at
org.apache.hadoop.dfs.DataNode$DataXceiver.writeBlock(DataNode.java:822)
at
org.apache.hadoop.dfs.DataNode$DataXceiver.run(DataNode.java:727)
at java.lang.Thread.run(Thread.java:595)
Also, can you please provide more details about your application?
I.e.,
what is your inputformat, map function, etc.
Very simple stuff, projecting certain fields as key and sorting. The
input is gzipped files in which each line has some fields separated by a
delimiter.
Doug
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs