《Keynote:Introducing Stateful Functions 2.0: Stream Processing meets Serverless Applications》
目前暂不支持。
Stateful Function 的 State 管理和通常 streaming 作业的 State 管理是一样的,并没有作特殊处理。actor system 或者说应用这块,它和 stream processing 有一个很大的区别在于流处理是一个 DAG (有向无环图)的结构。但是 actor system 是可能有环的。Stateful Function 实际上是增加了一个 feedback loop 支持,但它并没有去改动 runtime 内核,可以理解为是利用 streaming 自带的 state 管理来做的。
《Keynote:Stream analytics made real with Pravega and Apache Flink》
《Keynote:Apache Flink – Completing Cloudera’s End to End Streaming Platform》
,Senior Solutions Architect at Cloudera
Flink PMCJoe Witt – VP of Engineering at Cloudera
《Keynote:The Evolution of Data Infrastructure at Splunk》
《Flink SQL 之 2020:舍我其谁》
本次 demo 覆盖的 feature 更全,包括 4 种 join,流批一致性,CEP 等等。
《微博基于 Flink 的机器学习实践》
于茜,微博机器学习研发中心高级算法工程师。多年来致力于使用 Flink 构建实时数据处理和在线机器学习框架,有丰富的社交媒体应用推荐系统的开发经验。
曹富强,微博机器学习研发中心系统工程师。现负责微博机器学习平台数据计算模块。主要涉及实时计算 Flink,Storm,Spark Streaming,离线计算 Hive,Spark 等。目前专注于 Flink 在微博机器学习场景的应用。
于翔,微博机器学习研发中心算法架构工程师。
稳定性 :我们通过 Flink metrics,对整个作业的全流程做监控,包括但不限于rpc服务的耗时,成功率等指标。通过 At Least Once 机制来保证每条数据都处理一次。通过对 source (kafka) 端上的监控来监控整体作业的延迟。
另外根据业务场景引入了高可用的保障机制(对账系统),来保证数据处理的稳定性,目前重点业务可以达到99.999%的成功率。
模型上线预测时,在在线系统中,我们从特征服务中获取特征字段,拼接出原始特征数据,然后经过一个特征处理的模块,将原始样本转化为模型需要的输入数据(可以是libsvm格式或者是适合 DNN 的其他数据格式),然后传到模型服务模块,特征处理的输出的数据格式以及特征处理的代码,训练与预测时保持一致的,唯一的区别在于训练的数据相对在线预测的数据会多出 label 相关的字段。
《Flink’s application at Didi》
薛康 – 现任滴滴技术专家,实时计算负责人
确实,只保存静态信息,比较个性化的运行时信息作为参数,通过 set key=value 的形式作为 job 的一部分一起提交。
《Alink:提升基于 Flink 的机器学习平台易用性》
FlinkML 为 Flink 自带的机器学习算法库,分为旧的版本和新的版本。在做 Alink 前,我们首先认真调研了当时的 FlinkML(即旧版本 FlinkML)的情况,其仅支持 10 余种算法,支持的数据结构也不够通用,在算法性能方面做的优化也比较少,而且其代码也很久没有更新。所以,我们放弃了基于旧版 FlinkML 进行改进、升级的想法,决定基于 Flink 重新设计研发机器学习算法库,随后发展为现在的 Alink。
在 Alink 发展的过程中,我们一直与 Flink 社区紧密关联,在每年的 Flink Forward 大会上汇报我们的进展,共同探讨技术问题,获取反馈和建议。随着 Alink 功能的不断增强和完善,社区中欢迎 Alink 进行开源的呼声日益高涨,我们可开始和 Flink 社区更紧密联系,推动开源 Alink 的代码进入 FlinkML。
与此同时,社区中更多的人意识到旧版 FlinkML 的问题,决定整个废弃掉旧版 FlinkML,建设新版 FlinkML。我们积极参加新版 FlinkML API 的设计,分享 Alink API 设计的经验;Alink 的 Params 等概念被社区采纳;之后开始为新版 FlinkML 贡献算法实现代码,已提交了 40 余个 PR,包括算法基础框架、基础工具类及若干算法实现。
Alink 包含了非常多的机器学习算法,在向 FlinkML 贡献的过程中,需要社区 commiter 的讨论设计与审查代码,这个过程有助于代码的精益求精,但由于社区 commiter 的资源有限,代码完全贡献到 FlinkML 的过程会持续很长时间。这时,我们不得不考虑是否有其他方式,可以让用户先用起来,Alink 单独开源是个很好的解决方式,它与向 FlinkML 继续贡献算法实现,可以同时进行。用户的使用反馈也有助于我们更好的改进算法实现。此想法获得了社区的支持,获得了公司内领导和同事的支持,在 Flink Forword Asia 2019 大会上,宣布了 Alink 开源。
《Google: 机器学习工作流的分布式处理》
Ahmet Altay & Reza Rokni & Robert Crowe
《Flink + AI Flow:让 AI 易如反掌》
《终于等到你:PyFlink + Zeppelin》
孙金城(金竹) – Apache Member,Apache Flink PMC,阿里巴巴高级技术专家
章剑锋(简锋) – Apache Member,Apache Zeppelin PMC,阿里巴巴高级技术专家
批流计算的 ETL 和数据分析,适合用 flink sql,pyflink 和 table api。
这块正在做,依赖于 flink 对 k8s 的支持,预计 zeppelin 0.9 + flink 1.11 可以完美支持 k8s。
《Uber :使用 Flink CEP 进行地理情形检测的实践》
Teng (Niel) Hu
《AWS: 如何在全托管 Apache Flink 服务中提供应用高可用》
Ryan Nienhuis & Tirtha Chatterjee
《Production-Ready Flink and Hive Integration – what story you can tell now?》
Bowen Li
不是的,1.10 只是通过 hive catalog 来保存 kafka 表的元数据,但写入实际数据的时候还是只支持批式的写入。流式写入 hive 表要 1.11 才支持。
《Data Warehouse, Data Lakes, What’s Next?》
Xiaowei Jiang
可以支持。其实如果用了 hologres,直接存明细就好了,大部分场景不需要做预聚合,需要的时候直接查询。
1. hologres 是数据 ingestion 实时生效,而目前开源方案是 mini-batch,类似于flink和 spark streaming 的区别。
2. Hologres 本身是提供服务能力,可以直接给线上应用提供服务,更高的SLA。
3. hologres 能提供高 qps 的查询能了,可以直接作为 flink 的维表。
《Netflix 的 Flink 自动扩缩容》
Abhay Amin
《Apache Flink 误用之痛》
Konstantin Knauf
这个要看具体的场景,需要更细致的场景说明一下?一般的优化方法如下:
-
尽量用增量聚合替代全量聚合[1]。不仅减小 state 的大小,而且能在数据抵达窗口时就开始计算。
-
注意下 Type 是否都能被 Flink 识别,否则序列化反序列化会用默认的 Kryo,导致序列化反序列化加大 cpu 开销[2]。可以配上`env.getConfig().disableGenericTypes();` 来禁用 Kryo,验证下是否类型都被Flink识别了。
[1] https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/windows.html#processwindowfunction-with-incremental-aggregation
[2] https://ci.apache.org/projects/flink/flink-docs-stable/dev/types_serialization.html#data-types-serialization
《A deep dive into Flink SQL》
minibatch 优化目前只在 SQL 层的聚合算子中实现了,DataStream 中用不了。
目前 codegen 发生在编译期,因此只执行一次,所以对于流作业和批作业都还好。不过对于 OLAP 场景确实对于 codegen 以及 代码编译都会非常敏感,也是以后的一个优化方向,目前还没有评测过 codegen 的耗时。
目前流计算模式的所有优化都是确定性的优化,没有考虑 statistics。不过批的优化已经考虑了。在拿不到 stats 的时候,我们会有默认的统计值,比如 rowcount=10^8。
《Lyft: 基于Flink的准实时海量数据分析平台》
Ying Xu & Kailash Hassan Dayanand