代码之家  ›  专栏  ›  技术社区  ›  sealfeeder

HADOOP Thread-应用程序已添加到调度程序中,尚未激活。由于群集资源为空,正在跳过AM分配

  •  5
  • sealfeeder  · 技术社区  · 7 年前

    我正在为一个项目评估纱线。我试图让这个简单的分布式shell示例正常工作。我已经将申请提交到提交阶段,但它从未开始。这是此行报告的信息:

    ApplicationReport report = yarnClient.getApplicationReport(appId);
    

    Application is added to the scheduler and is not yet activated. Skipping AM assignment as cluster resource is empty. Details : AM Partition = DEFAULT_PARTITION; AM Resource Request = memory:1024, vCores:1; Queue Resource Limit for AM = memory:0, vCores:0; User AM Resource Limit of the queue = memory:0, vCores:0; Queue AM Resource Usage = memory:128, vCores:1;

    其他开发人员的解决方案似乎必须增加 yarn.scheduler.capacity.maximum-am-resource-percent 在纱线现场。xml文件的默认值为 .1. . 我试过 .2. .5. 但这似乎没有帮助。

    3 回复  |  直到 7 年前
        1
  •  8
  •   zar3bski    5 年前

    看起来您没有以正确的方式配置分配给纱线的RAM。这可能是…..中的pin码。。。。。如果您试图根据自己的安装从教程中推断/改编。我会的 强烈推荐 您使用的工具,如 this one :

    wget http://public-repo-1.hortonworks.com/HDP/tools/2.6.0.3/hdp_manual_install_rpm_helper_files-2.6.0.3.8.tar.gz
    tar zxvf hdp_manual_install_rpm_helper_files-2.6.0.3.8.tar.gz
    rm hdp_manual_install_rpm_helper_files-2.6.0.3.8.tar.gz
    mv hdp_manual_install_rpm_helper_files-2.6.0.3.8/ hdp_conf_files
    python hdp_conf_files/scripts/yarn-utils.py -c 4 -m 8 -d 1 false
    
    • -c 每个节点的核心数
    • -m 每个节点的内存量(千兆)
    • -d 每个节点的磁盘数
    • -bool 如果安装了HBase,则为“True”;否则为“False”

    这应该会给你一些类似的信息:

    Using cores=4 memory=8GB disks=1 hbase=True
    Profile: cores=4 memory=5120MB reserved=3GB usableMem=5GB disks=1
    Num Container=3
    Container Ram=1536MB
    Used Ram=4GB
    Unused Ram=3GB
    yarn.scheduler.minimum-allocation-mb=1536
    yarn.scheduler.maximum-allocation-mb=4608
    yarn.nodemanager.resource.memory-mb=4608
    mapreduce.map.memory.mb=1536
    mapreduce.map.java.opts=-Xmx1228m
    mapreduce.reduce.memory.mb=3072
    mapreduce.reduce.java.opts=-Xmx2457m
    yarn.app.mapreduce.am.resource.mb=3072
    yarn.app.mapreduce.am.command-opts=-Xmx2457m
    mapreduce.task.io.sort.mb=614
    

    编辑您的 yarn-site.xml mapred-site.xml 照着

     nano ~/hadoop/etc/hadoop/yarn-site.xml
     nano ~/hadoop/etc/hadoop/mapred-site.xml
    

    此外,您应该在您的 纱线现场。xml

    <property>
          <name>yarn.acl.enable</name>
          <value>0</value>
    </property>
    
    <property>
           <name>yarn.resourcemanager.hostname</name>
           <value>name_of_your_master_node</value>
    </property>
    
    <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
    </property>
    

    在你的 已映射的站点。xml :

    <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
    </property>
    

    然后,使用将conf文件上载到每个节点 scp (如果您将ssh密钥上载到每个ssh密钥)

    for node in node1 node2 node3; do scp ~/hadoop/etc/hadoop/* $node:/home/hadoop/hadoop/etc/hadoop/; done
    

    然后,重新开始纱线

    stop-yarn.sh
    start-yarn.sh
    

    并检查是否可以看到节点:

    hadoop@master-node:~$ yarn node -list
    18/06/01 12:51:33 INFO client.RMProxy: Connecting to ResourceManager at master-node/192.168.0.37:8032
    Total Nodes:3
         Node-Id         Node-State Node-Http-Address   Number-of-Running-Containers
     node3:34683            RUNNING        node3:8042                              0
     node2:36467            RUNNING        node2:8042                              0
     node1:38317            RUNNING        node1:8042                              0
    

    这可能会解决问题(祝你好运)( additional info )

        2
  •  0
  •   Sunil N    5 年前

    将以下属性添加到纱线站点。xml并重新启动dfs和Thread

    <property>
       <name>yarn.scheduler.capacity.root.support.user-limit-factor</name>  
       <value>2</value>
    </property>
    <property>
       <name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
       <value>0.0</value>
    </property>
    <property>
       <name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
       <value>100.0</value>
    </property>
    
        3
  •  0
  •   Erkan Şirin    4 年前

    我也犯了同样的错误,并努力解决。我意识到资源管理器没有资源来分配MapReduce应用程序的应用程序主机(AM)。
    我在浏览器上导航 http://localhost:8088/cluster/nodes/unhealthy 并检查了不健康的节点(在我的案例中只有一个)->健康报告。我看到了一些日志目录已满的警告。我清理了这些目录,然后我的节点变得健康,应用程序状态切换到 正在运行 从…起 认可的 . 实际上,默认情况下,如果节点磁盘的填充量超过%90,则纱线的行为是这样的。在某种程度上,您必须清理空间并使可用空间低于%90。 我的确切健康报告是:

    1/1 local-dirs usable space is below configured utilization percentage/no more usable space [ /tmp/hadoop-train/nm-local-dir : used space above threshold of 90.0% ] ; 
    1/1 log-dirs usable space is below configured utilization percentage/no more usable space [ /opt/manual/hadoop/logs/userlogs : used space above threshold of 90.0% ]