And don't forget to look at unlimit settings as well

Sent from my iPhone

On Apr 20, 2013, at 5:07 PM, Marcos Luis Ortiz Valmaseda 
<[email protected]> wrote:

> Like, Aaron say, this problem is related the Linux memory manager.
> You can tune it using the vm.overcommit_memory=1.
> Before to do any change, read all resources first:
> http://www.thegeekstuff.com/2012/02/linux-memory-swap-cache-shared-vm/
> http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html
> http://lwn.net/Articles/317814/
> http://www.tldp.org/LDP/tlk/mm/memory.html
> 
> To learn more about how to tune kernel variables for Hadoop applications. 
> Read these links too:
> First, the amazing Hadoop Operations“s book from Eric:
> http://my.safaribooksonline.com/book/databases/hadoop/9781449327279/4dot-planning-a-hadoop-cluster/id2685120
> 
> Hadoop Performance Tuning Guide from AMD:
> http://developer.amd.com.php53-23.ord1-1.websitetestlink.com/wordpress/media/2012/10/Hadoop_Tuning_Guide-Version5.pdf
> 
> IntelĀ® Distribution for Apache Hadoop*  Software: Optimization and Tuning 
> Guide:
> http://hadoop.intel.com/pdfs/IntelDistributionTuningGuide.pdf
> 
> Best wishes.
> 
> 
> 
> 2013/4/20 Aaron Eng <[email protected]>
>> The problem is probably not related to the JVM memory so much as the Linux 
>> memory manager.  The exception is in 
>> java.lang.UNIXProcess.<init>(UNIXProcess.java:148) which would imply this is 
>> happening when trying to create a new process.  The initial malloc for the 
>> new process space is being denied by the memory manager.  There could be 
>> many reasons why this happens, though the most likely is your overcommit 
>> settings and swap space.  I'd suggest reading through these details:
>> 
>> https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
>> 
>> On Sat, Apr 20, 2013 at 4:00 PM, Kishore Yellamraju 
>> <[email protected]> wrote:
>>> All,
>>> 
>>> I have posted this question to CDH ML ,  but i guess i can post it here 
>>> because its a general hadoop question.
>>> 
>>> When the NN or JT gets the rack info, i guess it stores the info in memory. 
>>> can i ask you where in the JVM memory it will store the results ( perm gen 
>>> ?) ? .  I am getting "cannot allocate memory on NN and JT " and they have 
>>> more than enough memory. when i looked at JVM usage stats i can see it 
>>> doesnt have enough perm free space.so if its storing the values in perm gen 
>>>  then there is a chance of this memory issues.
>>> 
>>> 
>>> Thanks in advance !!!
>>> 
>>> 
>>> exception that i see in logs :
>>> 
>>> java.io.IOException: Cannot run program "/etc/hadoop/conf/topo.sh" (in 
>>> directory "/usr/lib/hadoop-0.20-mapreduce"): java.io.IOException: error=12, 
>>> Cannot allocate memory
>>>         at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
>>>         at org.apache.hadoop.util.Shell.runCommand(Shell.java:206)
>>>         at org.apache.hadoop.util.Shell.run(Shell.java:188)
>>>         at 
>>> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:381)
>>>         at 
>>> org.apache.hadoop.net.ScriptBasedMapping$RawScriptBasedMapping.runResolveCommand(ScriptBasedMapping.java:242)
>>>         at 
>>> org.apache.hadoop.net.ScriptBasedMapping$RawScriptBasedMapping.resolve(ScriptBasedMapping.java:180)
>>>         at 
>>> org.apache.hadoop.net.CachedDNSToSwitchMapping.resolve(CachedDNSToSwitchMapping.java:119)
>>>         at 
>>> org.apache.hadoop.mapred.JobTracker.resolveAndAddToTopology(JobTracker.java:2750)
>>>         at 
>>> org.apache.hadoop.mapred.JobInProgress.createCache(JobInProgress.java:593)
>>>         at 
>>> org.apache.hadoop.mapred.JobInProgress.initTasks(JobInProgress.java:765)
>>>         at org.apache.hadoop.mapred.JobTracker.initJob(JobTracker.java:3775)
>>>         at 
>>> org.apache.hadoop.mapred.EagerTaskInitializationListener$InitJob.run(EagerTaskInitializationListener.java:90)
>>>         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:619)
>>> Caused by: java.io.IOException: java.io.IOException: error=12, Cannot 
>>> allocate memory
>>>         at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
>>>         at java.lang.ProcessImpl.start(ProcessImpl.java:65)
>>>         at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
>>>         ... 14 more
>>> 2013-04-20 02:07:28,298 ERROR org.apache.hadoop.mapred.JobTracker: Job 
>>> initialization failed:
>>> java.lang.NullPointerException
>>> 
>>> 
>>> -Thanks
>>>  kishore kumar yellamraju |Ground control operations|[email protected] 
>>> | 408.203.0424
>>> 
>>> 
> 
> 
> 
> -- 
> Marcos Ortiz Valmaseda,
> Data-Driven Product Manager at PDVSA
> Blog: http://dataddict.wordpress.com/
> LinkedIn: http://www.linkedin.com/in/marcosluis2186
> Twitter: @marcosluis2186

Reply via email to