【问题标题】:Amazon EMR and Spark streamingAmazon EMR 和 Spark 流式传输
【发布时间】:2019-03-23 15:53:21
【问题描述】:

Amazon EMR、Apache Spark 2.3、Apache Kafka,每天约 1000 万条记录。

Apache Spark 用于以 5 分钟为单位分批处理事件,每天一次工作节点正在死亡,AWS 会自动重新配置节点。在查看日志消息时,节点中似乎没有空间,但它们在那里有大约 1Tb 的存储空间。

是否有人在存储空间应该绰绰有余的情况下遇到问题?

我认为日志聚合无法将日志正确复制到 s3 存储桶,正如我所见,这应该由 spark 进程自动完成。

我应该提供什么样的信息来帮助解决这个问题?

提前谢谢你!

【问题讨论】:

  • 您好,感谢您提出一个有趣的问题。您是否有更多上下文,即为什么节点正在死亡?您是否查看了资源使用情况 - 以了解是因为应用程序(例如 OOM)还是硬件?您的流媒体是全天一致的,还是在某些时段有更多的工作?我看到的类似类型的故障(EMR 上的 Spark Streaming)是由从未回滚的日志文件引起的。在某些时候,HDFS 没有剩余空间,它开始失败。
  • 嗨@bartosz25。如果您看到日志文件引起的问题,您是否以某种方式解决了它?
  • @bartosz25 关于这个问题的一些说明:gist.github.com/oivoodoo/f4272b73b3c732576b8ab23427357155
  • @oivoodoo 你为什么认为是存储相关的问题?你能分享执行者和驱动程序的错误吗?

标签: amazon-web-services apache-spark spark-streaming amazon-emr spark-structured-streaming


【解决方案1】:

我在 EMR 上的结构化流应用程序中遇到了类似的问题,并且磁盘空间迅速增加到应用程序停止/崩溃的程度。

在我的情况下,修复是禁用 Spark 事件日志:

spark.eventLog.enabledfalse

http://queirozf.com/entries/spark-streaming-commong-pitfalls-and-tips-for-long-running-streaming-applications#aws-emr-only-event-logs-under-hdfs-var-log-spark-apps-when-using-a-history-server

【讨论】:

【解决方案2】:

我相信我使用自定义 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

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 2018-05-27
    • 2015-12-12
    • 1970-01-01
    • 2019-01-20
    • 2020-07-17
    • 2016-08-25
    • 2016-09-21
    相关资源
    最近更新 更多