如何解决如何通过AutoScaling动态地增加对AWS EMR的ulimit?
我有一个Java上的 Spark应用程序,在AWS EMR上运行。我已根据可用的纱线存储量实施了 AutoScaling策略。对于需要更高内存的作业,EMR最多可将群集最多增加 1 + 8个节点。
工作一段时间后,我不断收到以下错误,该错误会持续几个小时,然后再手动终止群集。
java.io.IOException: All datanodes [DatanodeInfoWithStorage[<i.p>:50010,DS-4e7690c7-5946-49c5-b203-b5166c2ff58d,DISK]] are bad. Aborting...
at org.apache.hadoop.hdfs.DataStreamer.handleBadDatanode(DataStreamer.java:1531)
at org.apache.hadoop.hdfs.DataStreamer.setupPipelineForAppendOrRecovery(DataStreamer.java:1465)
at org.apache.hadoop.hdfs.DataStreamer.processDatanodeError(DataStreamer.java:1237)
at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:657)
此错误是在产生的第一个工作节点中出现的。经过一番挖掘,我发现这可能是由于 ulimit 引起的。现在,可以在任何Linux或EC2计算机上手动轻松地增加 ulimit 。但是我无法获得如何动态地生成的每个EMR集群。
此外,我什至不确定100% ulimit 是否引起此特定问题。这也可能是其他事情。更改 ulimit 并检查后,我才能确认。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。