Apache Flink

开源 | 全球首个批流一体机器学习平台 Alink

妖精的绣舞 提交于 2019-12-06 13:54:14
背景 随着大数据时代的到来和人工智能的崛起,机器学习所能处理的场景更加广泛和多样。构建的模型需要对批量数据进行处理,为了达到实时性的要求还需要直接对流式数据进行实时预测,还要具备将模型应用在企业应用和微服务上能力。为了取得更好的业务效果,算法工程师们需要尝试更多更复杂的模型,需要处理更大的数据集,使用分布式集群已经成为常态;为了及时对市场的变化进行反应,越来越多的业务选用在线学习方式直接处理流式数据、实时更新模型。 我们团队一直从事算法平台的研发工作,感受到了高效能的算法组件和便捷操作平台对开发者的帮助。针对正在兴起的机器学习广泛而多样的应用场景,我们在2017年开始基于Flink研发新一代的机器学习算法平台,使得数据分析和应用开发人员能够轻松搭建端到端的业务流程。项目名称定为Alink,取自相关名称(Alibaba, Algorithm, AI, Flink, Blink)的公共部分。 什么是 Alink ? Alink 是阿里巴巴计算平台事业部PAI团队从 2017 年开始基于实时计算引擎 Flink 研发的新一代机器学习算法平台,提供丰富的算法组件库和便捷的操作框架,开发者可以一键搭建覆盖数据处理、特征工程、模型训练、模型预测的算法模型开发全流程。 借助Flink在批流一体化方面的优势,Alink能够为批流任务提供一致性的操作。在实践过程中

面试官问我,Redis分布式锁如何续期?懵了。

坚强是说给别人听的谎言 提交于 2019-12-06 12:33:31
前言 上一篇[面试官问我,使用Dubbo有没有遇到一些坑?我笑了。]之后,又有一位粉丝和我说在面试过程中被虐了.鉴于这位粉丝是之前肥朝的 老粉丝 ,而且周一又要开启新一轮的面试,为了回馈他长期以来的支持,所以连夜写了本篇,希望能对他接下来的面试有所帮助. 真实案例 Redis分布式锁的正确姿势 据肥朝了解,很多同学在用分布式锁时,都是直接百度搜索找一个Redis分布式锁工具类就直接用了.关键是该工具类中还充斥着很多 System.out.println(); 等语句.其实Redis分布式锁比较正确的姿势是采用 redisson 这个客户端工具.具体介绍可以搜索最大的同性交友网站 github . 如何回答 首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题 So easy .我们来看 坦白说,如果你英文棒棒哒那么看英文文档可能更好理解 By default lock watchdog timeout is 30 seconds and can be changed through Config.lockWatchdogTimeout setting. 但是你如果看的是中文文档 看门狗检查锁的超时时间默认是30秒 这句话肥朝从语文角度分析就是一个歧义句,他有两个意思 1.看门狗默认30秒去检查一次锁的超时时间 2.看门狗会去检查锁的超时时间

聊聊flink Table的Set Operations

冷暖自知 提交于 2019-12-06 06:35:22
序 本文主要研究一下flink Table的Set Operations 实例 Union Table left = tableEnv.fromDataSet(ds1, "a, b, c"); Table right = tableEnv.fromDataSet(ds2, "a, b, c"); Table result = left.union(right); union方法类似sql的union UnionAll Table left = tableEnv.fromDataSet(ds1, "a, b, c"); Table right = tableEnv.fromDataSet(ds2, "a, b, c"); Table result = left.unionAll(right); unionAll方法类似sql的union all Intersect Table left = tableEnv.fromDataSet(ds1, "a, b, c"); Table right = tableEnv.fromDataSet(ds2, "d, e, f"); Table result = left.intersect(right); intersect方法类似sql的intersect IntersectAll Table left = tableEnv

聊聊flink的SourceFunction

拥有回忆 提交于 2019-12-06 06:35:07
序 本文主要研究一下flink的SourceFunction 实例 // set up the execution environment final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStreamSource<String> dataStreamSource = env.addSource(new RandomWordSource()); dataStreamSource.map(new UpperCaseMapFunc()).print(); env.execute("sourceFunctionDemo"); 这里通过addSource方法来添加自定义的SourceFunction SourceFunction flink-streaming-java_2.11-1.6.2-sources.jar!/org/apache/flink/streaming/api/functions/source/SourceFunction.java /** * Base interface for all stream data sources in Flink. The contract of a stream source * is the

聊聊flink的StateTtlConfig

*爱你&永不变心* 提交于 2019-12-06 06:34:53
序 本文主要研究一下flink的StateTtlConfig 实例 import org.apache.flink.api.common.state.StateTtlConfig; import org.apache.flink.api.common.state.ValueStateDescriptor; import org.apache.flink.api.common.time.Time; StateTtlConfig ttlConfig = StateTtlConfig .newBuilder(Time.seconds(1)) .setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite) .setStateVisibility(StateTtlConfig.StateVisibility.NeverReturnExpired) .build(); ValueStateDescriptor<String> stateDescriptor = new ValueStateDescriptor<>("text state", String.class); stateDescriptor.enableTimeToLive(ttlConfig); 这里利用builder创建StateTtlConfig

Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL

柔情痞子 提交于 2019-12-06 06:34:38
上周六在深圳分享了《Flink SQL 1.9.0 技术内幕和最佳实践》,会后许多小伙伴对最后演示环节的 Demo 代码非常感兴趣,迫不及待地想尝试下,所以写了这篇文章分享下这份代码。希望对于 Flink SQL 的初学者能有所帮助。完整分享可以观看 Meetup 视频回顾 : https://developer.aliyun.com/live/1416 演示代码已经开源到了 GitHub 上: https://github.com/wuchong/flink-sql-submit 这份代码主要由两部分组成:1) 能用来提交 SQL 文件的 SqlSubmit 实现。2) 用于演示的 SQL 示例、Kafka 启动停止脚本、 一份测试数据集、Kafka 数据源生成器。 通过本实战,你将学到: 如何使用 Blink Planner 一个简单的 SqlSubmit 是如何实现的 如何用 DDL 创建一个 Kafka 源表和 MySQL 结果表 运行一个从 Kafka 读取数据,计算 PVUV,并写入 MySQL 的作业 设置调优参数,观察对作业的影响 SqlSubmit 的实现 笔者一开始是想用 SQL Client 来贯穿整个演示环节,但可惜 1.9 版本 SQL CLI 还不支持处理 CREATE TABLE 语句。所以笔者就只好自己写了个简单的提交脚本。后来想想,也挺好的

聊聊flink的TableFunction

半腔热情 提交于 2019-12-06 06:34:04
序 本文主要研究一下flink的TableFunction 实例 // The generic type "Tuple2<String, Integer>" determines the schema of the returned table as (String, Integer). public class Split extends TableFunction<Tuple2<String, Integer>> { private String separator = " "; public Split(String separator) { this.separator = separator; } public void eval(String str) { for (String s : str.split(separator)) { // use collect(...) to emit a row collect(new Tuple2<String, Integer>(s, s.length())); } } } BatchTableEnvironment tableEnv = TableEnvironment.getTableEnvironment(env); Table myTable = ... // table schema: [a: String] //

聊聊flink Table的OrderBy及Limit

China☆狼群 提交于 2019-12-06 06:33:51
序 本文主要研究一下flink Table的OrderBy及Limit 实例 Table in = tableEnv.fromDataSet(ds, "a, b, c"); Table result = in.orderBy("a.asc"); Table in = tableEnv.fromDataSet(ds, "a, b, c"); // returns the first 5 records from the sorted result Table result1 = in.orderBy("a.asc").fetch(5); // skips the first 3 records and returns all following records from the sorted result Table result2 = in.orderBy("a.asc").offset(3); // skips the first 10 records and returns the next 5 records from the sorted result Table result3 = in.orderBy("a.asc").offset(10).fetch(5); orderBy方法类似sql的order by;limit则由offset及fetch两个方法构成

Flink 实战:如何解决生产环境中的技术难题?

倾然丶 夕夏残阳落幕 提交于 2019-12-05 23:55:03
大数据作为未来技术的基石已成为国家基础性战略资源,挖掘数据无穷潜力,将算力推至极致是整个社会面临的挑战与难题。 Apache Flink 作为业界公认为最好的流计算引擎,不仅仅局限于做流处理,而是一套兼具流、批、机器学习等多种计算功能的大数据引擎,以其高吞吐低延时的优异实时计算能力、支持海量数据的亚秒级快速响应帮助企业和开发者实现数据算力升级,并成为阿里、腾讯、滴滴、美团、字节跳动、Netflix、Lyft 等国内外知名公司建设实时计算平台的首选。 更好的释放 Flink 的强大算力,需要解决哪些问题?如何进行技术选型?针对业务的特点如何进行相应改进? 实践过程中需要规避哪些坑? 11 月 28-30日,Flink Forward Asia 重磅开启!由来自阿里巴巴及 Ververica 的 19 位 Flink 技术专家们倾力打造的四门培训课程,针对不同阶段、不同学习需求提供技术支持,赋能一线开发者,是小白同学也适合深度学习课程。 培训仅剩的少量名额开放预约中,详情可加微信(ID:candy1764)咨询,从基础概念的准确理解到上手实操的精准熟练,四门线下实战课程,帮你从容应对生产环境中的技术难题。最后一周,不容错过! 参与培训课程你能收获什么? 你将准确了解分布式数据流、事件时间和状态等核心概念以及在 API 中的体现,并学习如何将这些概念组合在一起来解决实际问题。

基于 Flink 的实时数仓生产实践

若如初见. 提交于 2019-12-05 23:53:18
数据仓库的建设是“数据智能”必不可少的一环,也是大规模数据应用中必然面临的挑战。在智能商业中,数据的结果代表了用户反馈、获取数据的及时性尤为重要。快速获取数据反馈能够帮助公司更快地做出决策,更好地进行产品迭代,实时数仓在这一过程中起到了不可替代的作用。 如何更好的建设实时数仓、有哪些优秀的生产实践经验可借鉴? 11月28-30日,Flink Forward Asia 邀请来自 Netflix、美团点评、小米、OPPO、菜鸟等数仓专家,聚焦 Flink 实时数仓在数据链路中扮演的角色与在智能商业中的重要价值,分享实时数仓的应用实践及平台智能化的探索与思考。 美团点评基于 Apache Flink 的实时数仓平台实践 鲁昊 | 美团点评高级技术专家 美团点评的业务众多,涉及几十条业务线;数据量大,处理峰值达到 1.5 亿条每秒,每天数据增长量超过 3 万亿条;大多数业务都是交易场景,链路长、状态多样,业务在数仓建设中面临着很大挑战。随着业务对时效性的要求越来越高,如即时配送、实时营销,越来越多的业务对实时数仓提出了需求和探索。实时计算团队调研汇总了多个业务线在实时数仓方面的建设经验,建设了一站式的实时数仓开发平台,以更好得支持业务发展。 本次分享将主要介绍实时计算的业务应用和规模、多个业务在实时数仓方面的建设情况,以及基于 Flink 的实时计算平台和实时数仓平台。