我有带Linux Centos 12G内存的VirtualBox。我需要将两个应用程序部署到在非分布式配置中运行的hadoop。这是我的纱线配置:
<configuration>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>0.0.0.0:8032</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>130</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers</description>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>1</value>
<description>Ratio between virtual memory to physical memory when
setting memory limits for containers</description>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>1</value>
</property>
</configuration>
我部署了第一个应用程序,它运行正常:
spark submit—master yarn—部署模式客户端—名称
OryxBatchLayer ALSExample——类com.cloudera.oryx.batch.Main
--files oryx.conf——驱动程序内存500m——驱动程序java选项“-Dconfig.file=oryx.conf”——执行器内存500m——执行器核心1
--conf spark.executor.extraJavaOptions=“-Dconfig.file=oryx.conf”--conf spark.ui.port=4040--conf spark.io.compression.codec=lzf--conf spark.logConf=true--conf
spark.serializer=org.apache.spark.serializer.KryoSerializer--conf
spark.constitution=true——conf spark.ui.showconsoleeprogress=false
--conf spark.dynamicAllocation.enabled=false--num executors=1 oryx-batch-2.8.0-SNAPSHOT.jar
8088的纱线管理器显示我正在使用8个vcores中的2个和8g内存中的2个:
现在我部署第二个应用程序:
spark submit—master yarn—部署模式客户端—名称
OryxSpeedLayer ALSExample——类com.cloudera.oryx.speed.Main——文件
oryx.conf—驱动程序内存500m—驱动程序java选项
“-Dconfig.file=oryx.conf”--执行器内存500m--执行器核心1
--conf spark.executor.extraJavaOptions=“-Dconfig.file=oryx.conf”--conf spark.ui.port=4041--conf spark.io.compression.codec=lzf--conf spark.logConf=true--conf
spark.serializer=org.apache.spark.serializer.KryoSerializer--conf
spark.constitution=true——conf spark.ui.showconsoleeprogress=false
--conf spark.dynamicAllocation.enabled=false--num executors=1 oryx-speed-2.8.0-SNAPSHOT.jar
但这一次我得到了一个警告,而且似乎第二个应用程序被冻结了,至少它没有分配内存:
2018-08-06 04:49:10信息客户:54-
客户端令牌:不适用
诊断:[Mon Aug 06 04:49:09-0400 2018]应用程序已添加到计划程序,尚未激活。队列的AM资源
超出限制。详细信息:AM分区=;AM
资源请求=;的队列资源限制
AM=;队列的用户AM资源限制=
;队列AM资源使用率=;
应用程序主机:不适用
ApplicationMaster RPC端口:-1
队列:默认
开始时间:1533545349902
最终状态:未定义
跟踪URL:
http://master:8088/proxy/application_1533542648791_0002/
用户:osbox
问题的根源是什么?我怎样才能增加
AM的队列资源限制
和
队列的用户AM资源限制
?