代码之家  ›  专栏  ›  技术社区  ›  Stepan Yakovenko

使用spark submit部署应用程序:应用程序已添加到计划程序中,尚未激活

  •  0
  • Stepan Yakovenko  · 技术社区  · 6 年前

    我有带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个:

    enter image description here

    现在我部署第二个应用程序:

    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

    enter image description here

    问题的根源是什么?我怎样才能增加 AM的队列资源限制 队列的用户AM资源限制 ?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Stepan Yakovenko    6 年前

    修正是编辑

    并更新。1到1:

    <property>
        <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
        <value>1</value>
        <description>
          Maximum percent of resources in the cluster which can be used to run
          application masters i.e. controls number of concurrent running
          applications.
        </description>
      </property>