当前位置:   article > 正文

hadoop contianer内存大小配置 和一些其他配置_hadoop yarn 修改 container 队列大小

hadoop yarn 修改 container 队列大小

一般都是像这样 yarn jar hadoop-examples.jar pi 6 2000 写一些跑完就没事了,可是我发现这样每个粒例子的container都是1GB1vcore的,相对于我所使用的“pi 6 2000”太多了,那么如何在测试的时候设置我container的大小呢?

在webui中

我的memory total是8GB,发现放满八个container后,主机的物理内存还只用了一点点,如下图物理内存还剩很多:

可知虽然memory total=8GB全被用了,每个container1GB,contianer跑这个pi实例根本用不了这么多,说明contianer大小设大了。

实际上安好hadoop默认的配置就是一个contianer占1GB1vcore。下面我们改一下。

 

假设要配置成每个container 512m

方法一:

appmaster和task的container的配置是跟着mapred-site.xml 配置文件走的,也就是修改这个配置文件即可

yarn.app.mapreduce.am.resource.mb           value=512                  这个是设置appmaster的container所用内存

mapreduce.map.memory.mb                         value=512                  这个是设置作为map的container所用内存

mapreduce.reduce.memory.mb                     value=512                  这个是设置作为reduce的container所用内存

此外在yarn-site.xml 还有配置在限制

1.yarn.scheduler.maximum-allocation-mb        value=1024               

这个是container所能占用的最大内存,一定要比你在mapred-site.xml 中设置的要大,否则会出现如下情况:

cause:java.io.IOException: org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid resource request, requested memory < 0, or requested memory > max configured, requestedMemory=350, maxMemory=256

这是说我appmaster请求的内存是350m,而我最大container内存是256,不够。

错误如下:

2.yarn.app.mapreduce.am.command-opts

appmaster这个我设置的过大了改成了256m,这个好像设置为appmaster container的0.85倍就可以了,我设置的appmastercontainer大小是320.

在mapred-site.xml设置

yarn.app.mapreduce.am.command-opts

value: -Djava.net.preferIPv4Stack=true -Xmx268435456

268435456/1024/1024=256m

修改了配置后即可成功运行,但是要注意,要确定自己设定的container足够运行实例中的AppMaster和tasks。

我的配置,我是在CDH中设置的

 

 

方法二:

如果像上面那样改,那么运行其他任务的时候不还得改回来吗。然而hadoop自带实例是可以直接指定你想要的配置的。

如果有一次的话可以这样

hadoop jar hadoop-examples.jar pi -Dyarn.app.mapreduce.am.resource.mb=320 -Dmapreduce.map.memory.mb=256 -Dmapreduce.reduce.memory.mb=256 5 1000

就有了方法一的效果了。

 

$>hadoop jar hadoop-examples.jar [你想运行的例子]

就会出现如下:

  1. -conf <configuration file> specify an application configuration file
  2. -D <property=value> use value for given property
  3. -fs <local|namenode:port> specify a namenode
  4. -jt <local|resourcemanager:port> specify a ResourceManager
  5. -files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
  6. -libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
  7. -archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.

genericOptions包括如下:

-conf  指定一个配置文件,你可以把你想要的配置写进去,他优先按这个文件执行

-D      给某个属性设定一个值,例如这样:yarn.app.mapreduce.am.resource.mb=320

-fs      指定local还是namenode

-jt       指定local还是resourcemanager

-files  是指定多个文件用逗号分隔拷贝到集群中

-libjars  指定要包含在类路径中的JAR文件,逗号分隔

-archives  指定要在计算机上不归档的存档,逗号分隔

bin/hadoop command [genericOptions] [commandOptions]

 

使用方法举例:

bin/hadoop command [genericOptions] [commandOptions]

  1. 1. -D
  2. hadoop jar hadoop-examples.jar pi -Dyarn.app.mapreduce.am.resource.mb=320 -Dmapreduce.map.memory.mb=256 -Dmapreduce.reduce.memory.mb=256 5 1000
  3. 2. -files
  4. -files hdfs://host:fs_port/user/testfile1.txt,hdfs://host:fs_port/user/testfile2.txt
  5. 3.-archives
  6. -archives hdfs://host:fs_port/user/testfile.jar

其他有关基准程序测试的例子在这里:https://blog.csdn.net/Ahuuua/article/details/90669606

还可以参考这个使用:http://hadoop.apache.org/docs/stable/hadoop-streaming/HadoopStreaming.html

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号