Prabhu, You fully addressed my question and I'll follow your instructions. Many thanks and have a nice day. Guido
On Thu, Aug 15, 2019 at 8:19 PM Prabhu Josephraj <pjos...@cloudera.com> wrote: > 1. Easy way to reproduce container to exceed configured physical memory > limit is by configuring the Heap Size (500MB) of > container above the Container Size (100MB). > > yarn-site.xml: yarn.scheduler.minimum-allocation-mb 100 > mapred-site.xml: yarn.app.mapreduce.am.resource.mb 100 > yarn.app.mapreduce.am.command-opts -Xmx500m > > Note: This is only for testing purpose. Usually the Heap Size has to be > 80% of Container Size. > > 2. There is no job settings which increase the memory usage of a > container. It depends on the application code. > Try adding memory intensive code inside the MapReduce application. > > > https://alvinalexander.com/blog/post/java/java-program-consume-all-memory-ram-on-computer > > https://github.com/apache/hadoop/blob/a55d6bba71c81c1c4e9d8cd11f55c78f10a548b0/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/QuasiMonteCarlo.java > > Running pi job on a long number will also require huge memory. > > yarn jar > /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar pi 1 > 1000000000 > > There are chances that the JVM Crashes with OutOfMemory before Yarn kills > the container for exceeding memory usage. > > > On Thu, Aug 15, 2019 at 10:51 PM . . <writeme...@googlemail.com> wrote: > >> >> Prabhu, >> >> I reformulate my question: >> >> I successfully run following job: yarn jar >> /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar pi 3 >> 10 >> >> and noticed that highest node physical memory usage was alway <512MB >> during job duration; else job completed (see details below) >> >> quote.... >> Every 2.0s: yarn node -status hadoop-1.mydomain.local:44718 >> >> 19/08/15 19:10:54 INFO client.RMProxy: Connecting to ResourceManager at >> hadoop-1.mydomain.local/192.168.100.11:8032 >> Node Report : >> Node-Id : hadoop-1.mydomain.local:44718 >> Rack : /default-rack >> Node-State : RUNNING >> Node-Http-Address : hadoop-1.mydomain.local:8042 >> Last-Health-Update : Thu 15/Aug/19 07:10:22:75CEST >> Health-Report : >> Containers : 2 >> Memory-Used : 2048MB >> Memory-Capacity : 5120MB >> CPU-Used : 2 vcores >> CPU-Capacity : 6 vcores >> Node-Labels : >> Resource Utilization by Node : *PMem:471 MB*, VMem:1413 MB, >> VCores:0.80463576 >> Resource Utilization by Containers : PMem:110 MB, VMem:4014 MB, >> VCores:0.97300005 >> ...unquote >> >> My question is : which job setting may I use to force a node physical >> memory usage >512MB and force a job kill due (or thanks) pmem check. >> Hope above better explain my question ;) >> >> thanks/Guido >> >> >> On Thu, Aug 15, 2019 at 5:09 PM Prabhu Josephraj >> <pjos...@cloudera.com.invalid> wrote: >> >>> Jeff, Available node size for YARN is the value of >>> yarn.nodemanager.resource.memory-mb which is set ten times of 512MB. >>> >>> Guido, Did not get the below question, can you explain the same. >>> >>> Are you aware of any job syntax to tune the 'container physical >>> memory usage' to 'force' job kill/log? >>> >>> >>> On Thu, Aug 15, 2019 at 7:20 PM . . <writeme...@googlemail.com.invalid> >>> wrote: >>> >>>> Hi Prabhu, >>>> >>>> thanks for your explanation. It makes sense, but I wonder YARN allows >>>> you to define 'yarn.nodemanager.resource.memory-mb' higher then node >>>> physical memory w/out logging any entry under resourcemanager log. >>>> >>>> Are you aware of any job syntax to tune the 'container physical memory >>>> usage' to 'force' job kill/log? >>>> >>>> thanks/Guido >>>> >>>> >>>> >>>> On Thu, Aug 15, 2019 at 1:50 PM Prabhu Josephraj >>>> <pjos...@cloudera.com.invalid> wrote: >>>> >>>>> YARN allocates based on the configuration >>>>> (yarn.nodemanager.resource.memory-mb) user has configured. It has >>>>> allocated >>>>> the AM Container of size 1536MB as it can fit in 5120MB Available Node >>>>> Size. >>>>> >>>>> yarn.nodemanager.pmem-check-enabled will kill the container if the >>>>> physical memory usage of the container process is above >>>>> 1536MB. MR ApplicationMaster for a pi job is light weight and it won't >>>>> require that much memory and so not got killed. >>>>> >>>>> >>>>> >>>>> On Thu, Aug 15, 2019 at 4:02 PM . . <writeme...@googlemail.com.invalid> >>>>> wrote: >>>>> >>>>>> Correct: I set 'yarn.nodemanager.resource.memory-mb' ten times the >>>>>> node physical memory (512MB) and I was able to successfully execute a >>>>>> 'pi >>>>>> 1 10' mapreduce job. >>>>>> >>>>>> Since default 'yarn.app.mapreduce.am.resource.mb' value is 1536MB I >>>>>> expected the job to never start / be allocated and I have no valid >>>>>> explanation. >>>>>> >>>>>> >>>>>> On Wed, Aug 14, 2019 at 10:32 PM . . <writeme...@googlemail.com> >>>>>> wrote: >>>>>> >>>>>>> Correct: I set 'yarn.nodemanager.resource.memory-mb' ten times the >>>>>>> node physical memory (512MB) and I was able to successfully execute a >>>>>>> 'pi >>>>>>> 1 10' mapreduce job. >>>>>>> >>>>>>> Since default 'yarn.app.mapreduce.am.resource.mb' value is 1536MB I >>>>>>> expected the job to never start / be allocated and I have no valid >>>>>>> explanation. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Aug 14, 2019 at 8:31 PM Jeff Hubbs <jhubbsl...@att.net> >>>>>>> wrote: >>>>>>> >>>>>>>> To make sure I understand...you've allocated *ten times* your >>>>>>>> physical RAM for containers? If so, I think that's your issue. >>>>>>>> >>>>>>>> For reference, under Hadoop 3.x I didn't have a cluster that would >>>>>>>> really do anything until its worker nodes had at least 8GiB. >>>>>>>> >>>>>>>> On 8/14/19 12:10 PM, . . wrote: >>>>>>>> >>>>>>>> Hi all, >>>>>>>> >>>>>>>> I installed a basic 3 nodes Hadoop 2.9.1 cluster and playing with >>>>>>>> YARN settings. >>>>>>>> The 3 nodes has following configuration: >>>>>>>> 1 cpu / 1 core?? / 512MB RAM >>>>>>>> >>>>>>>> I wonder I was able to configure yarn-site.xml with following >>>>>>>> settings (higher than node physical limits) and successfully run a >>>>>>>> mapreduce 'pi 1 10' job >>>>>>>> >>>>>>>> quote... >>>>>>>> ?? <property> >>>>>>>> ?? ?? ?? >>>>>>>> <name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value> >>>>>>>> </property> >>>>>>>> >>>>>>>> ?? ?? <property> >>>>>>>> ?? ?? ?? ?? <name>yarn.nodemanager.resource.memory-mb</name> >>>>>>>> ?? ?? ?? ?? <value>5120</value> >>>>>>>> ?? ?? ?? ?? <description>Amount of physical memory, in MB, that can >>>>>>>> be allocated for containers. If set to -1 and >>>>>>>> yarn.nodemanager.resource.detect-hardware-capabilities is true, it is >>>>>>>> automatically calculated. In other cases, the default is >>>>>>>> 8192MB</description> >>>>>>>> ?? ?? </property> >>>>>>>> >>>>>>>> ?? ?? <property> >>>>>>>> ?? ?? ?? ?? <name>yarn.nodemanager.resource.cpu-vcores</name> >>>>>>>> ?? ?? ?? ?? <value>6</value> >>>>>>>> ?? ?? ?? ?? <description>Number of CPU cores that can be allocated >>>>>>>> for containers.</description> >>>>>>>> ?? ?? </property> >>>>>>>> ...unquote >>>>>>>> >>>>>>>> Can anyone provide an explanation please? >>>>>>>> >>>>>>>> Should 'yarn.nodemanager.vmem-check-enabled' and >>>>>>>> 'yarn.nodemanager.pmem-check-enabled' properties (set to 'true' as >>>>>>>> default) >>>>>>>> check that my YARN settings are higher than physical limits? >>>>>>>> >>>>>>>> Which mapreduce 'pi' job settings can I use, to 'force' containers >>>>>>>> to use more than node physical resources? >>>>>>>> >>>>>>>> Many thanks in advance! >>>>>>>> Guido >>>>>>>> >>>>>>>> >>>>>>>>