Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

首发!Apache Flink 干货合集打包好了,速来下载

最近的一份市场调查报告显示,Apache Flink 是2018年开源大数据生态中发展“最快”的引擎,和2017年相比增长了125% 。为了让大家更为全面地了解Flink,我们制作了一本电子干货合集:《不仅仅是流计算:Apache Flink实践》,融合了Apache Flink在国内各大顶级互联网公司的大规模实践,希望对大家有所帮助。

在这本合集里,你可以了解到:

Flink如何为整个阿里集团平稳度过双十一立下汗马功劳?

如何为满足滴滴极为复杂的业务需求提供简单直观的API支持?

如何在字节跳动逐步取代原有的JStorm引擎,成为公司内部流式数据处理的唯一标准?

《不仅仅是流计算:Apache Flink实践》目录一览

关注“阿里技术”官方公众号,回复“Flink”,即可免费在线阅读、下载此书。

Apache Flink已经被业界公认是最好的流计算引擎。然而Flink的计算能力不仅仅局限于做流处理。Apache Flink的定位是一套兼具流、批、机器学习等多种计算功能的大数据引擎。在最近的一段时间,Flink在批处理以及机器学习等诸多大数据场景都有长足的突破。此次专刊,旨在对Flink在大数据智能计算方面做一些简要的介绍。后续我们还将发布更多关于Flink在新场景的应用干货。

下面,我们邀请阿里资深技术专家、Apache Flink Committer 王绍翾老师(花名“大沙”),带领大家走进Flink的世界。

在全面介绍Flink的新进展之前,我先来介绍一些大数据人工智能计算的背景。大数据计算的种类非常多,比较典型的,且被大规模使用的主要是3种类型:

  • 批计算

  • 流计算

  • 交互式分析计算

批计算的特点是要计算的数据量比较大,但是往往对延迟不是特别敏感。流计算对延迟的要求非常高,这些作业的查询query往往是固定的。因此流计算作业往往需要提前调度起来,一旦数据到来就可以做快速的处理,节省了调度的开销。

最后一种是交互式分析,这种类型的大数据计算的特点是用户的查询query是不固定的,这些query往往是由用户随机的发出的。虽然查询不固定,在这种场景下,用户对查询的返回时间是有一定的要求的,这个时间介于批处理和流处理之间,越快越好,最好能做到秒级。

人工智能计算的种类很多,但是整体架构大多和上图所描述的类似。一个常见的ML pipeline通常涉及一系列的数据预处理、特征提取和转换、模型训练以及验证。如果验证后的效果符合预期,就可以将模型推到线上服务。如果不符合预期,算法工程师就需要调整算法模型或者参数,然后再做一次模型的训练和验证,直到对结果满意后,再将训练好的模型推上线服务。整个计算过程可以是对一个确定大小的数据按照批计算模式计算,也可以接入实时数据按照流计算模式进行计算。上面这个pipeline是人工智能计算最基础的流程,如果算法工程师对数据以及业务特点非常熟悉,他们就能设计出合理的算法模型和参数。但是往往更常见的情况是,算法工程师需要分析工具帮助他们理解数据。只有在很好地理解了数据特点之后,才能提取出更有用的特征,设计出更好的模型。因此,如下图所示,做好人工智能计算,不可或缺的一部分就是交互式分析。有了交互式分析,算法工程师可以对数据做各种ad-hoc query,从而帮助他们更好地理解数据。

综上所述,可以看出人工智能计算和大数据计算是密不可分的。虽然人工智能计算变得越来越炙手可热,人们越来越多的提及人工智能而不是大数据,但是我们不能忘记,人工智能计算的基础是大数据计算,没有大数据计算提供算力和功能,人工智能计算只能停留在纸上谈兵的阶段。接下来,我把基于大数据计算的人工智能计算简称为“大数据智能计算”。

大数据和AI全景–2018(来源:http://mattturck.com/bigdata2018/)

那么怎么来搭建一套大数据智能计算系统呢?http://mattturck.com收集了所有大数据和AI的软件和平台。上面提到的每一种大数据计算场景都有好几种软件的选择,调研和选型这些软件本身就是一项巨大的工程。即使最后为每一套场景都选型了一种软件,那么后期的开发迭代和运维也难做到高效。因为每一套软件都需要专门的开发和运维团队负责,无论是在人力还是机器资源上都不能横向打通,势必会造成浪费。

因此,阿里巴巴一直在思考是否可能有一套计算引擎解决如上的所有问题。经过仔细的选型,我们选择了Apache Flink,并围绕着Flink在打造一款通用计算引擎。Flink已经被业界公认是最好的流计算引擎。

它所具有的低延迟、高吞吐、保障Exactly-once的计算模式,使得它具有金融级的大数据处理能力。在批处理方面,基于流式的flow来处理批数据有着潜在的优势和扩展性。阿里巴巴利用Flink的天然特性,做了若干批计算方面的优化,使得Flink也成为了一款性能卓越的批计算引擎。在人工智能和交互式分析方面,我们也在逐步地完善Flink的易用性,生态,以及性能。另外,不得不提的是,Flink的流处理架构还天然的适合于正在快速崛起的本质更像流计算的IoT的场景。

Flink的社区和生态一直在壮大。在流计算和批计算等场景慢慢使用Flink成为主流的同时,我们期望设计和推广出更多更完善的批流融合的场景。所有对Lamda架构有诉求的应用应该都可以用Flink完美的解决。早期的Lamda架构的设计也许很快会成为历史。

在易用性和生态方面,我们一方面帮助Flink社区在tableAPI,Python,以及ML等诸多领域发力,持续提升用户做Data science和AI计算的体验。另一方面,我们也在努力完善Flink和其他开源软件的融合,包括Hive,以及Notebook(Zeppelin, Jupyter)等等。这些诸多的努力,都是为了最终实现我们“一套引擎完美解决大数据智能计算”的初衷。Apache Flink自2014年开源至今也才4年,我们期待更多的企业和开发者们和我们一起参与到Apache Flink的社区和生态建设中来,共同把它打造成为全球最一流的开源大数据引擎。

为了让中国的开发者更近距离的接触Apache Flink,阿里巴巴在2018年12月20日到21日,在北京国家会议中心将承办Flink Forward China峰会。这是Flink Forward大会第一次在亚洲举行。届时将有超过1000名开发人员,系统/数据架构师,数据科学家,Apache Flink核心贡献者齐聚一堂,交流他们使用Flink的经验和体验。参会者也将有机会近距离聆听和了解阿里巴巴、滴滴、美团、字节跳动、以及Uber等诸多top互联网公司使用Apache Flink的最佳实践。

阿里技术
阿里技术

分享阿里巴巴的技术创新、实战案例、经验总结,内容同步于微信公众号“阿里技术”。

专栏二维码
产业Apache Flink大数据流计算批计算机器学习
2
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

Jupyter技术

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。

推荐文章
暂无评论
暂无评论~