清除或删除 YARN (MR2) 应用程序队列

Clear or delete YARN (MR2) application queue

我正在使用 Cloudera Hadoop (CDH 5.16.2) 进行测试。我 运行 两天前的以下 map-reduce 应用程序:

yarn jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
wordcount \
-Dmapreduce.job.reduces=8 \
/user/bigdata/randomtext \
/user/bigdata/wordcount

每当我启动集群并检查调度程序时,它都会显示有已提交的应用程序。我已经尝试了以下命令来杀死它们,命令输出显示它已经杀死了所有应用程序,但后来所有应用程序又开始出现了。

for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print  }'); do yarn application -kill $x; done

这里是fair-scheduler.xml的内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<allocations>
    <queue name="root">
        <schedulingPolicy>drf</schedulingPolicy>
        <queue name="default">
            <schedulingPolicy>drf</schedulingPolicy>
        </queue>
    </queue>
    <queuePlacementPolicy>
        <rule name="specified" create="false"/>
        <rule name="default" create="true"/>
    </queuePlacementPolicy>
</allocations>

只是想了解发生了什么以及我该如何杀死它们,因为它只是一个测试集群。

就我而言,我终于弄清楚我的集群实际上受到了攻击。这是因为未正确配置 Azure 网络安全组 (NSG)。这也导致了高带宽费用(数据传出),尽管我在请求 Azure 团队后得到了豁免。在我限制了入站和出站流量之后,一切都得到了解决。我杀死了队列中的应用程序,然后它们再也没有出现。

网上查了一下,好像基于Hadoop YARN的远程代码执行(RCE)其实很常见。所以请确保您的 NSG 配置正确。

参考: