转载

Apache Flink:回顾2015,展望2016

  英文原文:Flink 2015: A year in review, and a lookout to 2016 

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

  社区发展 

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

Apache Flink:回顾2015,展望2016

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

Apache Flink:回顾2015,展望2016

  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 网站查看相关幻灯片和视频。 

Apache Flink:回顾2015,展望2016

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

Apache Flink:回顾2015,展望2016

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

  为了更深入的了解发生在 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。 

Apache Flink:回顾2015,展望2016

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

Apache Flink:回顾2015,展望2016

  功能时间图 

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

Apache Flink:回顾2015,展望2016
 


  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 邮件列表讨论。 

  译者:郭亚和,从事大数据(spart/storm/hadoop/hbase)相关运维、分析等工作。

正文到此结束
Loading...