hadoop contianer内存大小配置 和一些其他配置

一般都是像这样 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 [你想运行的例子]

就会出现如下:

-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|resourcemanager:port>    specify a ResourceManager
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-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.    -D
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

2.    -files
-files hdfs://host:fs_port/user/testfile1.txt,hdfs://host:fs_port/user/testfile2.txt

3.-archives
-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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ahuuua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值