Amazon EMR 和 Spark streaming

8
Amazon EMR,Apache Spark 2.3和Apache Kafka每天处理大约10万条记录。
Apache Spark用于按5分钟批处理事件,每天一次工作节点停机,AWS会自动重新提供节点。通过审查日志消息,看起来节点中没有空间,但是它们有大约1Tb的存储空间。
在存储空间应该足够的情况下,有人遇到过存储空间问题吗?
我想日志聚合可能无法将日志正确复制到S3存储桶,而这应该由Spark进程自动完成。
我应该提供哪些信息以帮助解决此问题?
提前致谢!

1
嗨,感谢您提出这个有趣的问题。您是否有更多的上下文信息,例如为什么节点会死亡?您是否观察了资源使用情况-以获取有关是应用程序(例如OOM)还是硬件导致的想法?您的流是否在整天内保持一致,或者在某些时期内工作更多?我看到类似类型的故障(EMR上的Spark Streaming)是由于日志文件从未回滚造成的。在某个时候,HDFS没有剩余空间了,它开始失败。 - Bartosz Konieczny
嗨@bartosz25,如果你看到日志文件引起的问题,请问你解决了吗? - oivoodoo
@bartosz25 关于这个问题的一些注释:https://gist.github.com/oivoodoo/f4272b73b3c732576b8ab23427357155 - oivoodoo
@bartosz25 https://gist.github.com/oivoodoo/989fe67dee0712c39e7a3162b4ec8a5d - oivoodoo
@oivoodoo 为什么你认为这是一个存储相关的问题?你能分享一下来自执行器和驱动程序的错误吗? - Cosmin
@Cosmin,我没有Spark的问题,节点没有响应主节点。在Hadoop仪表板上,作业处于失败状态,并出现日志聚合的超时错误。最后状态更改原因:主节点无法与此实例通信。 - oivoodoo
2个回答

2

我通过在/etc/spark/中使用自定义的log4j.properties文件来修复了它。你可以在这里找到示例:https://gist.github.com/oivoodoo/d34b245d02e98592eff6a83cfbc401e3 - oivoodoo

0

我相信我通过使用自定义的log4j.properties解决了问题,在部署到Amazon EMR时,我替换了/etc/spark/log4j.properties,然后使用我的流应用程序运行spark-submit。

现在它正常工作。

https://gist.github.com/oivoodoo/d34b245d02e98592eff6a83cfbc401e3

此外,它还可以对正在使用流应用程序并需要以优雅的方式停止更新的人有所帮助。

https://gist.github.com/oivoodoo/4c1ef67544b2c5023c249f21813392af

https://gist.github.com/oivoodoo/cb7147a314077e37543fdf3020730814


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接