介绍Apache火花2.3
2018年2月28日 在工程的博客
今天我们很高兴地宣布的可用性Apache火花tripwire在砖作为它的一部分砖运行时4.0。我们想感谢Apache火花社区引发2.3版所有的有价值的贡献。
继续与目标火花更快,更容易,更聪明,火花2.3分的一个重要里程碑结构化流引入低延迟连续处理和停工检修连接;促进PySpark与熊猫udf通过改善性能;和运行在Kubernetes集群通过提供本机支持Apache火花应用程序。
除了新功能延伸到SparkR, Python, MLlib, GraphX,释放关注可用性、稳定性、和细化,解决1400多票。其他特色火花贡献者包括:
- 数据源v2 api (火星- 15689,火星- 20928]
- 矢量化兽人读者(火星- 16060]
- 火花历史服务器v2和离子束进行存储(火星- 18085]
- 机器学习与结构化流管道API模型评分(火星- 13030,火星- 22346,火星- 23037]
- MLlib增强了(火星- 21866,火星- 3181,火星- 21087,火星- 20199]
- 火花SQL改进(火星- 21485,火星- 21975,火星- 20331,火星- 22510,火星- 20236]
在这篇文章中,我们简要总结的一些高级特性和改进,在未来的日子里,我们将为这些特性深入发布博客。主要功能的综合列表所有组件和火花jira解决,阅读Apache火花tripwire发行说明。
在毫秒延迟连续流处理
结构化流在Apache 2.0火花解耦micro-batch处理的高级api是有原因的。首先,它使开发人员的经验与api简单:api不需要占micro-batches。第二,它允许开发者将流视为无限表,他们可以发出查询一个静态表。
然而,为开发者提供不同模式的流处理,我们引入了一个新的毫秒低延迟流媒体方式:连续模式。
在引擎盖下,逐步执行查询计算micro-batches结构化流引擎,由触发间隔,适合大多数真实的流媒体应用程序的延迟。
为连续模式micro-batch执行,而是流读者不断调查来源和处理数据,而不是在指定读取一批数据触发间隔。通过不断轮询消息来源和处理数据,处理新记录立即到达,时间轴下图所示,减少延迟毫秒和令人满意的低延迟需求。
至于操作,目前支持的类似数据集操作,比如预测或选择和SQL函数,除了current_timestamp ()
,当前日期()
和聚合函数。以及支持Apache卡夫卡作为源和汇,连续模式目前支持控制台和记忆下沉。
现在开发者可以选择mode-continuous或micro-batching-depending在他们的延迟需求构建实时流媒体应用程序规模,同时受益于容错性和可靠性保证结构化流引擎提供。
简而言之,连续模式在火花2.3实验和它提供以下:
- 端到端毫秒低延迟
- 提供“至少一次”保证。
- 支持数据集的类似操作
在这个技术博客连续处理模式中,我们说明了如何使用它,它的优点,
开发人员可以编写如何连续流具有毫秒低延迟需求的应用程序。
停工检修连接
在结构化流火花2.0支持之间的连接流DataFrame /数据集和一个静态的,这个版本引入了备受期待的停工检修连接,内部和外部连接众多实时用例。
连接两个流的典型用例是ad-monetization。例如,印象流和一个点击一个广告流共享一个公共密钥(说,去)您希望进行流媒体和相关数据分析,比如,去导致了点击。
虽然概念上的想法是简单,停工检修加入解决一些技术难题。例如,他们:
- 处理延迟数据缓冲末事件流“状态”,直到找到匹配事件从其他流
- 限制了内存缓冲区从种植和消费与水印,它允许跟踪事件时间和相应的结算状态
- 允许用户控制状态和所消耗的资源之间的权衡的最大延迟处理的查询
- 保持一致的SQL join静态连接和流之间的语义连接
在这个技术博客,我们深入研究streams-to-stream连接。
Apache火花和Kubernetes
难怪两个流行的开放源码项目bob下载地址Apache火花和Kubernetes结合它们的功能和效用提供分布式数据处理和编制在规模。在火花2.3中,用户可以启动火花Kubernetes的本地工作负载集群利用新的Kubernetes调度程序的后端。这有助于获得更好的资源利用率和多租户通过使火花工作负载共享Kubernetes与其他类型的工作负载集群。
此外,火花可以运用行政等特性资源配额,可插拔的授权,日志记录。更重要的是,就这么简单创建一个码头工人形象和建立开始使用你现有的RBAC Kubernetes火花工作负载集群。
这技术博客解释了如何使用本机火花Kubernetes以及如何参与这个社区的努力。
熊猫的udf PySpark
大熊猫udf,也称为矢量化udf,是一个主要的推动PySpark性能。建立在之上Apache箭头,他们负担得起你最好的两人世界的能力定义低开销,高性能udf和用Python写完全。
在火花2.3中,有两种类型的熊猫udf:标量和分组的地图。现在都是火花2.3中可用。李进两个σ写了早期的博客通过四个例子,解释它们的用法:+ 1,累积概率,减去的意思是,普通最小二乘线性回归。
运行某些微基准,熊猫udf演示数量级比row-at-time udf更好的性能。
根据李进和其他贡献者,他们计划在聚合引入支持大熊猫udf和窗口功能,可以跟踪及其相关工作火星- 22216。
MLlib改进
火花2.3包括许多MLlib改进算法和功能,性能和可伸缩性和可用性。我们提到三个亮点。
首先,移动MLlib模型和管道生产、安装结构模型和管道现在工作在流媒体工作。一些现有的管道需要修改在流进行预测工作,所以寻找即将到来的博客迁移技巧。
第二,使许多深度学习图像分析用例,火花2.3引入了一个ImageSchema(火花- 21866)代表图像的火花DataFrames +实用程序加载图像常见格式。
最后,对于开发人员来说,火花在Python 2.3引入了改进的api编写自定义算法,包括UnaryTransformer
编写简单的自定义特性变形金刚和公用事业自动化毫升持久化保存和加载算法。看到这个博客获取详细信息。
接下来是什么?
再一次,我们要感谢所有引发社会的贡献!
而这篇文章只有总结的一些特征在本版本中,你可以阅读官方的发布说明看到变化的完整列表。请继续关注我们将出版技术博客解释其中的一些特性。
如果你想尝试Apache 2.3火花砖4.0运行时。注册一个免费试用帐户在这里