开发者社区 问答 正文

What no one tells you about writing a streaming app

在SPARK SUMMIT 2017上,Mark Grover, Software Engineer, Cloudera Ted Malaska , Group Technical Architect, Blizzard分享了题为《What no one tells you about writing a streaming app》,就关于写streaming APP的五件事: Monitoring and managing jobs,Prevent data loss, Do I really nee

https://yq.aliyun.com/download/2129?spm=a2c4e.11154804.0.0.59316a793Ft1sn

展开
收起
福利达人 2018-07-29 00:49:03 1095 分享 版权
阿里云 AI 助理回答

在SPARK SUMMIT 2017上,Mark Grover和Ted Malaska的分享《What no one tells you about writing a streaming app》确实提供了关于构建流处理应用的宝贵见解。虽然我无法直接访问或提供特定下载链接的内容,但我可以基于该主题的一般知识和阿里云产品如何帮助应对这些挑战,来概述他们可能讨论的五件事中的关键点:

  1. Monitoring and managing jobs(监控与管理作业):

    • 阿里云EMR(Elastic MapReduce)服务不仅支持Spark Streaming,还集成了日志服务SLS和Prometheus等监控工具,帮助用户实时监控作业状态、性能指标和资源使用情况,便于快速定位问题。
    • 使用阿里云DataWorks可以实现工作流的编排和调度,简化流处理应用的管理和运维。
  2. Prevent data loss(防止数据丢失):

    • Spark Streaming支持At-least-once和Exactly-once语义,通过设置合理的检查点机制(Checkpoints)和使用事务性输出接收器(如Kafka的事务消费者),可以在阿里云的Kafka服务中确保数据不丢失。
    • 结合阿里云的Distributed Relational Database Service (DRDS)或ApsaraDB for MySQL等数据库产品,利用事务特性进一步保障数据一致性。
  3. Do I really need real-time?(我真的需要实时处理吗?):

    • 在决定是否采用实时处理前,评估业务需求和成本效益。阿里云提供了多种计算服务,包括实时处理(如Flink、Spark Streaming)和批处理(MaxCompute),可以根据实际场景选择最合适的方案。
    • 对于某些场景,Lambda架构(结合实时处理和批处理)可能是更经济高效的选择,阿里云的产品生态能够灵活支持这种混合模式。
  4. Scaling and resource management(扩展与资源管理):

    • 利用阿里云EMR的弹性伸缩功能,根据流量波动自动调整集群规模,确保高负载时的处理能力,同时在低峰期降低成本。
    • 集成阿里云的资源调度服务(如YARN),优化资源分配,提高整体集群效率。
  5. Testing and debugging(测试与调试):

    • 阿里云Log Service(SLS)可以帮助收集和分析Spark Streaming应用的日志,便于故障排查。
    • 利用单元测试和集成测试框架,结合本地开发环境或阿里云上的低成本测试集群,进行充分的测试,确保应用的稳定性和可靠性。

综上所述,阿里云提供了全面的工具和服务,从监控管理、数据完整性保护、架构选择、资源优化到测试调试,全方位支持用户构建和运行高性能、高可靠的流处理应用。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: