惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
罗磊的独立博客
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
量子位
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
B
Blog RSS Feed
腾讯CDC
博客园_首页
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
博客园 - Franky
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
D
Docker
P
Privacy & Cybersecurity Law Blog
S
Securelist
V
V2EX
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
The Hacker News
The Hacker News
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
Help Net Security
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Cloudbric
Cloudbric
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
V2EX - 技术
V2EX - 技术

Jark's Blog

Flink 1.16:Hive SQL 如何平迁到 Flink SQL Flink CDC 如何简化实时数据入湖入仓 基于 Flink SQL 构建流批一体的 ETL 数据集成 Nexmark: 如何设计一个流计算基准测试? Demo:基于 Flink SQL 构建流式应用 Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL Flink SQL 编程实践 如何从小白成长为 Apache Committer? Flink 小贴士 (7): 4个步骤,让 Flink 应用达到生产状态 Flink 小贴士 (6): 使用 Broadcast State 的 4 个注意事项 Flink 小贴士 (5): Savepoint 和 Checkpoint 的 3 个不同点 Flink 小贴士 (4): 如何选择状态后端 Flink 小贴士 (3): 轻松理解 Watermark 一文了解 Apache Flink 核心技术 Flink 零基础实战教程:如何计算实时热门商品 5分钟从零构建第一个 Flink 应用 Flink 小贴士 (2):Flink 如何管理 Kafka 消费位点 Flink小贴士 (1):确定Flink作业所需资源大小时要考虑的6件事 Flink在美团的实践与应用 我在阿里的这两年 Flink 原理与实现:Aysnc I/O Flink 原理与实现:Table & SQL API Flink 原理与实现:Session Window Flink 原理与实现:Window 机制 Flink 原理与实现:数据流上的类型和操作 Flink 原理与实现:如何生成 JobGraph Flink 原理与实现:理解 Flink 中的计算资源 Flink 原理与实现:如何生成 StreamGraph Flink 原理与实现:架构和拓扑概览 Flink 原理与实现:内存管理 Flink 原理与实现:如何处理反压问题 Flink官方文档翻译:安装部署(集群模式) Flink官方文档翻译:安装部署(本地模式) 迟到的2015年终总结 高效Macbook开发之道(工具篇) Clojure学习笔记(三):并发与引用 Clojure学习笔记(二):语法 Clojure学习笔记(一):数据结构 Thrift 实践 Thrift 入门 Metrics 是个什么鬼 之入门教程 使用Redis和SQLAlchemy对Scrapy Item去重并存储 使用Scrapy定制可动态配置的爬虫 编程方式下运行 Scrapy spider 读《程序员必读的职业规划书》 Spark 下操作 HBase(1.0.0 新 API) HBase 集群安装部署 Spark On YARN 集群安装部署 Git 常用技能
聊聊Blink开源和Flink社区近况
WuChong · 2019-01-31 · via Jark's Blog

发表于   |   分类于 Flink   |  

前几天 Blink 开源的消息刷了朋友圈,因为笔者一直关注着社区的发展。所以今天想从我个人的角度来聊聊 Blink 开源,社区 merge Blink 的计划,以及最近发生的一些很有意义的事情。

这次 Blink 开源的主要目的是让社区的开发者们能尽早地尝试一些他们感兴趣的功能与改进。我觉得最核心的贡献包括:

  • Stream SQL 的新功能和性能优化:如维表Join、TopN、支持迟到数据和提早输出的Window、有效解决Agg数据倾斜问题等。
  • 完整且高性能的 Batch SQL:跑通全部 TPC-H/TPC-DS (比当前 Flink Batch SQL 快 10x 以上),能够读取 Hive meta 和 data 。
  • 易用性提升:焕然一新的Web UI,与 Zeppelin 的集成,交互式编程的支持。

Stream SQL 上的功能补齐和性能优化经阿里内部多年千锤百炼打磨而来,毫无疑问是社区用户们最为翘首以盼的功能,笔者认为这部分的开源和回馈能迅速将 Flink SQL 的流式计算能力提升到高度成熟级别。

同时,Blink 对Batch SQL 上的完善和优化弥补了 Flink 长久以来在批处理能力上的不足,这也为未来Flink深度统一批流大业打下了更为坚实的基础。

另外值得一提的是这次Blink开源的新UI,是由 NG-ZORRO 的作者 vthinkxie 亲自操刀,一改以往 Apache 项目 Web UI 略为朴素的特点。新UI的简洁美观程度比起商业化产品可谓有过之而无不及,其易用性更是得到阿里内部的深度检验与高度认可。

回到 Blink 开源本身,要谈论其意义首先要清楚 Blink 与 Flink 的关系。从阿里多篇公开的报导中我们也了解到 “Blink 永远不会成为另外一个项目,如果后续进入 Apache 一定是成为 Flink 的一部分”,这点从 Blink 最后是以 Flink 的分支方式开源进一步得到了印证。另外 Blink 开源的核心改进将来都有希望合并进 Flink,这必将极大加速 Flink 的发展,同时也会为 Flink 打开更广阔的舞台。对于 Flink 用户来说,无疑也是个好消息,用户不仅能享受到更好用的产品,同时也拥有了更多想象的空间。相信未来几年的大数据领域,也会因此而变得格外精彩。

接下来聊一个大家都格外关心的话题,Blink 的特性将如何合并到 Flink 中

合并 Blink 的方案是在社区公开讨论的,目前方案已经基本确定,从社区大神 Stephan 和 Timo 发起的方案讨论邮件中我们可以了解到合并的大致方案。

首先总体方针:尽可能地与目前的 Table API 保持兼容,使用户无感知地升级。

改动最大的两个模块会是:(1) SQL/Table Query Processor,(2) batch scheduling/failover/shuffle 。

对于 Query Processor(下文简称 QP),社区计划逐渐地构建起一个基于Blink的 QP,默认仍使用 Flink 原生的 QP,Blink QP 会以插件的方式存在,用户可以使用时可以配置成用 Blink QP 来执行(这非常像 Beam 的 runner 架构)。直到 Blink QP 完全合并进来了且稳定了,会作为默认的 QP 实现,而 Flink QP 最终会被移除。为了完成这个方案,flink-table 模块需要做一些模块的拆解和重构,为了尽快拆解完模块和重构,社区可能会短期内暂缓一些 Table API/SQL 的功能开发和贡献。更详细的方案可以看下 FLIP-32(见文末链接[3])。目前这块相关的开发工作已经在进行中了。

对于 batch scheduling & failover 来说,目前已经有一个在进行中的调度重构方案了 FLINK-10429。当这个完成后,Blink 的实现可以以插件的方式作为新的 scheduler 和 failover handler 加入。在测试完备后可以作为默认的策略。对于 Shuffle Service,目前也已经有一个在讨论中的方案了:见文末链接[4]

就个人的感受而言,最近 Flink 社区正在发生两件重要的事情。一是上文说的 Blink 开源,另一件就是社区对中文用户的日益重视。

Apache Flink 社区最近为中文用户建立了官方的中文邮件列表,提供了一个官方的渠道给中文用户做问题交流。起因是社区在最近的统计中发现,过去三个月内访问 flink.apache.org 官方网站的用户中有 30% 来自中国。

感兴趣的用户可以通过下面的流程来订阅:

1、发送任意邮件到 user-zh-subscribe@flink.apache.org
2、收到官方确认邮件
3、回复该邮件 confirm 即可订阅

订阅成功后将收到 Flink 官方的中文邮件列表的消息,就可以用中文在上面问问题和帮助别人解答问题了。

这件事对笔者触动比较大,因为 Apache 以往一向推崇使用英文交流,肯为中文用户单独开设中文邮件列表的顶级项目实为罕见,据我所知 Flink 是第一个。相信这个举动也是社区做的一次较大的创新和尝试,同时这也从侧面反映了来自中国的开源力量在世界的舞台上获得了越来越多的关注与尊重。同时也期待着可以有更多 Flink 中文社区志愿者参与到这个项目中来,共建社区生态,为中国的开源事业贡献一份力量。

中文文档支持计划

之前由中文社区的小伙伴们共同翻译的中文文档(托管在 https://flink-china.org/ ),现在计划将贡献给 Apache Flink,并已在邮件列表中发起讨论。讨论的内容包括如何在 Flink 主干分支中同时维护中英文文档,如何做中英文文档同步和翻译,中文文档的地址和链接等等。更详细的支持计划可以看下 链接[6]

文档是一个开源项目重要的组成部分,也是参与开源贡献、融入开源社区的一种方式。感兴趣的同学可以关注下这个邮件的动态,参与到后续的翻译贡献中去。

全面拥抱中文用户

从社区里发生的和正在发生的一些事情中可以看出,Apache Flink 社区正在拥抱中文用户,能将中文用户以如此高的优先级来支持的社区真不多。这对于国内用户来说无疑是一个积极的信号,同时这一系列举动也很可能会影响接下来几年国内大数据生态圈的变化。

参考资料

  1. [ANNOUNCE] Contributing Alibaba’s Blink
  2. [DISCUSS] A strategy for merging the Blink enhancements
  3. [DISCUSS] FLIP-32: Restructure flink-table for future contributions
  4. [DISCUSS] Proposal of external shuffle service
  5. [DISCUSS] Start a user-zh@flink.apache.org mailing list for the Chinese-speaking community?
  6. [DISCUSS] Contributing Chinese website and docs to Apache Flink

hoxis wechat