返回 登录
0

Apache Flink :回顾2015,展望2016

阅读32078

回顾2015,总体而言Flink在功能方面已经从一个引擎发展成为最完整的开源流处理框架之一。与此同时,Flink社区也从一个相对较小,并且地理上集中的团队,成长为一个真正的全球性的大型社区,并在Apache软件基金会成为最大的大数据社区之一。接下来看看一些有趣的统计数据,其中就包括Flink每周最繁忙的时间是星期一,肯定出乎很多人所料:)

社区发展

首先,我们从Flink的GitHub库中看一些简单的统计。在2015年,Flink社区规模扩大了一倍,人数从大约75名贡献者超过150名。从2015年2月至2015年12月,其github库的复制数量超过了三倍,从160增长至544,而其star数目的增长也接近3倍,从289增至813。

图片描述

尽管Flink创建于德国柏林,然而现在其社区遍布全球,拥有来自北美,欧洲以及亚洲的许多贡献者。在著名线下交友网站meetup.com上做一个简单的关于提及Flink作为重点领域的组织的搜索,搜索结果表明全世界有16个这样的组织:

图片描述

2015 Flink 推进会

毫无疑问,对于Flink而言,2015年的最重要的事件之一就是10月份在柏林举办的Flink 推进会,这是Apache Flink的首次会议。来自谷歌,MongoDB,布依格斯电信,NFLabs,Euranova,RedHat,IBM,华为,Intel,爱立信,Capital One,Zalando,Amadeus,the Otto Group和ResearchGate的250多名的参会者(大约一半总部位于德国以外),参加了超过33的技术会谈。如果你想了解这些技术会议的内容,可以通过Flink Forward网站查看相关幻灯片和视频。

图片描述

有趣的是,在 2016年 EMEA Hadoop峰会已提交的议题和摘要中, 提及Flink的高达17个议题:

图片描述

趣味统计:开发人员(提交者)何时提交代码?

为了更深入的了解发生在Flink社区的事情,让我们在这个项目的 git 日志上做一些分析:-) ,最简单的做法是在 git 库中统计2015年提交的总数目。运行如下代码:

git log --pretty=oneline --after=1/1/2015  | wc -l

2015年Flink git库总共产生2203次提交。为了更深入地探究提交者的行为,我们将使用一个称为gitstats的开源工具进行分析,这将会带来一些有趣的统计结果。你可以通过以下四个简单的步骤来创建并更多了解:

1.从 project homepage..下载gitstats,举个例子:在OS X上使用自带软件,键入:

brew install --HEAD homebrew/head-only/gitstats

2.克隆Apache Flink git库:

git clone git@github.com:apache/flink.git

3.利用gitstats产生统计数据:

gitstats flink/ flink-stats/

4.在你常用的浏览器中(例如:chrome)查看统计页面:

chrome flink-stats/index.html

首先,我们可以观察到从Apache项目孵化开始,Flink的源代码行数一直平稳增长,在2015年,其代码库几乎翻了一番,源代码行数从500,000增至900,000。

图片描述

当Flink的开发者提交代码时,可以发现一个有趣的现象,到目前为止,代码都是集中在周一下午进行提交。

图片描述

功能时间图

下面是一个(非详尽)的时间顺序图,用于显示在2015年,Flink以及Flink生态系统新增了哪些主要功能:

图片描述

2016年发展蓝图

Flink社区已经开始讨论今后Flink的发展蓝图,下面列举一些主要内容:

流式作业运行时伸缩:流式作业需要不间断运行,并且需要对一个不断变化的环境作出反应。运行时伸缩意味着为了支持特定的服务等级协议,从而动态地增加和减少作业的并行度,或者对输入的吞吐量变化作出反应。

针对静态数据集和数据流的SQL查询:用户以Flink 表 API 为基础,可以通过编写SQL语句查询静态数据集,以及针对数据流进行查询从而连续产生新的结果。

有托管内存支持的流运算:目前,流运算像用户自定义状态和窗口都是由JVM堆对象支持。将这些内容移至Flink托管内存会增加溢出到磁盘的能力,垃圾回收效率的能力,从而可以更好地控制内存的使用。

检测时间事件模式库:在流处理中经常要检测一个时间戳的事件流模式。Flink通过事件时间,对此进行了支持,利用库的形式可以实现很多诸如此类的操作。

对Apache Mesos以及动态资源YARN的支持:同时支持Mesos 以及 YARN,包括动态分配和资源释放,从而获得更多资源弹性(包括批处理和流式处理)。

安全性:对TaskManagers 和 JobManager之间的信息交换以及workers之间的数据交换连接,都进行加密。

更加丰富的流式连接、更多的运行时度量以及连续数据流API增强:支持更多的源和汇(例如,Amazon Kinesis,Cassandra,Flume,等等),给用户提供更多的度量指标,并提供持续改进的数据流API。

如果你对这些功能感兴趣,强烈建议去查看下当前的草案,并加入 Flink 邮件列表讨论。

原文:Flink 2015: A year in review, and a lookout to 2016
译者:郭亚和,从事大数据(spart/storm/hadoop/hbase)相关运维、分析等工作。

评论