Apache Spark中的全新流式引擎
极客时间编辑部
讲述:丁婵大小:1.46M时长:03:12
Apache Spark 曾在 2016 年启动了基于 Spark SQL 的全新流计算引擎项目 Structured Streaming,该引擎可以让用户像编写批处理程序一样简单地编写高性能的流处理程序。
经过一年多的改进和完善,目前该引擎已经在 Databricks 内部和客户中广泛使用。近日,InfoQ 采访了该引擎的核心开发人员朱诗雄来具体了解这个项目。
据介绍,Spark Streaming 是 Spark 早期基于 RDD 开发的流式系统,而 Structured Streaming 则是在 Spark 2.0 版加入的经过重新设计的全新流式引擎。一个流的数据源从逻辑上来说就是一个不断增长的动态表格,随着时间的推移,新数据被持续不断地添加到表格的末尾。用户可以对这个动态数据源进行实时查询。
因此,该引擎并不是对 Spark Streaming 的简单改进,而是吸取了开发 Spark SQL 和 Spark Streaming 的经验教训,以及 Spark 社区和 Databricks 众多客户的反馈,重新开发的全新流式引擎,致力于为批处理和流处理提供统一的高性能 API。
该引擎的诞生,意味着 Spark 不仅具有卓越的批处理能力,同时具备了优秀的流处理能力,用户可以用 Spark 来构建统一批处理和流处理的大数据平台,这样的一个数据平台对人工智能有着很大的帮助。
谷歌之前提到过,在一个机器学习系统中的机器学习代码只占一小部分,有很大一部分是用来进行数据收集、清理、验证、特征提取、分析等各种操作,而后面这些工作都是 Spark 所擅长的。
据介绍,Structured Streaming 的主要优势体现在下面几点:
简洁的模型。该引擎的模型很简洁,易于理解,用户可以直接把一个流想象成是无限增长的表格。
一致的 API。由于和 Spark SQL 共用大部分 API,对 Spark SQL 熟悉的用户很容易上手,代码也十分简洁。同时批处理和流处理程序还可以共用代码,不需要开发两套不同的代码,显著提高了开发效率。
卓越的性能。该引擎在与 Spark SQL 共用 API 的同时,也直接使用了 SparkSQL 的 Catalyst 优化器和 Tungsten,数据处理性能十分出色。
多语言支持。该引擎直接支持目前 Spark SQL 支持的语言,包括 Scala、Java、Python、R 和 SQL 等。
不过,朱诗雄也指出,由于该引擎还相当年轻,因此也存在一些待解决的问题,比如由于开发资源有限,一些不常用的功能还没有完成,如 Update 输出模式等。
对于未来,朱诗雄表示,希望能看到有更多的机器学习和图处理算法支持该引擎。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论