Apache Flink

Scala系列8:函数式编程之map,flatten,flatmap的使用详解

人盡茶涼 提交于 2020-09-28 23:23:54
0.Scala函数式编程 我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面这些事开发中常用的函数式编程。注意这些函数都是操作 Scala 集合的,一般会进行两类操作:转换操作(transformation )和行动操作(actions)(有些人喜欢叫他为聚合操作)。第一种操作类型将集合转换为另一个集合,第二种操作类型返回某些类型的值。 遍历( foreach ) 映射( map ) 映射扁平化( flatmap ) 过滤( filter ) 是否存在( exists ) 排序( sorted 、 sortBy 、 sortWith ) 分组( groupBy ) 聚合计算( reduce ) 折叠( fold ) 1.map的使用详解 集合的映射操作是将来在编写Spark/Flink用得最多的操作,是我们必须要掌握的掌握。 map方法接收一个函数,将这个函数应用到每一个元素,返回一个新的列表 【1.1语法结构】 def map[B](f: (A) ⇒ B): TraversableOnce[B] 【1.2语法解释】 尖叫提示: 1.同foreach一样,map传入的参数也是函数,匿名函数 2. map 函数的逻辑是遍历集合中的元素并对每个元素调用函数。你也可以不调用任何函数,保持返回元素本身,但这样 map无法发挥作用,因为你在映射过后得到的是同样的集合。

生产实践 | 基于 Flink 的短视频生产消费监控

梦想的初衷 提交于 2020-09-25 18:43:20
本文详细介绍了实时监控类指标的数据流转链路以及技术方案,大多数的实时监控类指标都可按照本文中的几种方案实现。 短视频生产消费监控 短视频带来了全新的传播场域和节目形态,小屏幕、快节奏成为行业潮流的同时,也催生了新的用户消费习惯,为创作者和商户带来收益。而多元化的短视频也可以为品牌方提供营销机遇。 其中对于垂类生态短视频的生产消费热点的监控分析目前成为了实时数据处理很常见的一个应用场景,比如对某个圈定的垂类生态下的视频生产或者视频消费进行监控,对热点视频生成对应的优化推荐策略,促进热点视频的生产或者消费,构建整个生产消费数据链路的闭环,从而提高创作者收益以及消费者留存。 本文将完整分析垂类生态短视频生产消费数据的整条链路流转方式,并基于 Flink 提供几种对于垂类视频生产消费监控的方案设计。通过本文,你可以了解到: 垂类生态短视频生产消费数据链路闭环 实时监控短视频生产消费的方案设计 不同监控量级场景下的代码实现 flink 学习资料 项目简介 垂类生态短视频生产消费数据链路流转架构图如下,此数据流转图也适用于其他场景: 链路 在上述场景中,用户生产和消费短视频,从而客户端、服务端以及数据库会产生相应的行为操作日志,这些日志会通过日志抽取中间件抽取到消息队列中,我们目前的场景中是使用 Kafka 作为消息队列;然后使用 flink 对垂类生态中的视频进行生产或消费监控

玩转云上数据湖,解析Serverless 技术落地

蹲街弑〆低调 提交于 2020-08-20 07:45:37
本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地。Serverless是DLI将计算能力服务化和产品化关键技术,与传统IAAS和PAAS技术不同,DLI运用Serverless技术向客户提供了一种高效易用易扩展的计算框架,使得客户更能聚焦业务,避免牵扯集群运维的细枝末节。本文将从以下几点解读Serverless技术: 1. serverless计算简介 2. 云计算架构演进—从IaaS到Serverless 3. Serverless计算应用场景与潜力 4. DLI Serverless 计算 serverless计算简介 图 Serverless与传统云计算比较 无服务器计算(Serverless)是一种新型的云计算范式,在业界也被称为FaaS(函数即服务),它有别于传统的IaaS(基础设施即服务)和PaaS(平台即服务)技术,旨在帮助开发者摆脱减少甚至免去底层基础架构管理上的诸多烦扰。Serverless计算服务允许客户在不构建一个复杂的基础设施的情况下开发,运行和管理应用程序。在2014年10月先由 http:// hook.io 提供给业界,接着AWS推出Lambda,2016年Google Cloud Functions,Microsoft Azure Functions对外提供服务

通过Flink+NBI可视化构建实时大数据分析系统

两盒软妹~` 提交于 2020-08-20 07:31:57
Flink: Apache Flink是一个计算框架和分布式处理引擎,用于对***和有界数据流进行有状态计算。其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。 Flink主要特点: 1、高吞吐、低延迟、纯流式架构; 2、支持对乱序事件的处理; 3、有状态、提供exactly-once计算; 4、高度灵活的窗口机制; 5、失败恢复、故障转移、水平扩展; 6、批处理、流处理统一的API NBI大数据可视化: NBI一站式自服务大数据可视化分析平台是一款自助式可视化分析大屏展示平台,可以通过平台零代码或低代码方式构建各类数据展示分析; NBI拥有几十种传统图形和新型大数据图形组件(如桑 基图, treemap、层级聚类图、旭日图、热力矩 阵、日历矩阵、gis等等)能让您轻松构建各类炫 酷的数据大屏。 Flink+NBI实时数据分析系统构建方案: (1)通过kafka分布式消息队列接入各类数据源,比如IOT设备实时数据,服务器日志数据,应用系统日志数据,数据库数据等等; (2)然后通过Flink接入kafka,根据时间窗口,对各类指标做数据计算; (3)计算完毕后接入NBI大数据可视化分析平台,通过平台构建各类分析应用,做实时分析展示; 实时数据分析: NBI大数据 Kafka Flink 流计算 分布式 实时数据 实时分析系统 大数据 系统架构 来源: oschina

为什么我说 ETL 是 SQL 人重启辉煌之光的必经之路

风流意气都作罢 提交于 2020-08-19 19:03:35
点击蓝色“ 有关SQL ”关注我哟 加个“ 星标 ”,天天与10000人一起快乐成长 很多朋友会觉得写 CRUD 很无聊,翻来覆去就那么点花样。接触不到新鲜的技术,感觉自己要被这个时代淘汰了。于是怨天尤人,连基本的 SQL 都写不好了。 这可能是眼界与见识的问题。SQL 在行业内还是相当重要的,当然你说 CRUD 那点东西玩几个月就会了,没有新奇感。从技术角度来看,是这样,我承认。但换成业务角度来说,这又不是一回事了。这要细讲,我可以讲上三天三夜,所以留到以后的文章再说。 在 OLTP 系统中,CRUD 能做的事情,越来越少了。大部分都由前端框架封装好了。搞c#的同学有 Entity Framework, Java 系的同学有 Spring 全家桶。这些框架可以说,基本把 CRUD 同学的职位给抢掉了 2/3, 剩下纯搞 CRUD 的同学就偷着乐吧,也没几天了,想吃啥想喝啥,别委屈了自己。 真正能让 SQL 人凭手艺,还在 CRUD 行当里吃香的,喝辣的,技术上取决于你掌握了多少种数据库,SQL写得多快,要不然就是要享受福报了。 好在上帝关闭一扇窗的同时,他又打开了一道门。这道门便是 数据仓库 。 数据和银行的存款是一样的,越积越多,多得我们得千方百计思考该怎么用它。我们刚开始入行的时候,接触的数据库应用,十有八九都是业务系统,比如订单系统,生产系统和人事系统。这是早就很多

实时化或成必然趋势?新一代 Serverless 实时计算引擎

安稳与你 提交于 2020-08-19 16:29:44
作者:高旸(吾与),阿里巴巴高级产品专家 本文由阿里巴巴高级产品专家高旸(吾与)分享,主要介绍新一代Serverless实时计算引擎的产品特性及核心功能。 一.实时计算 Flink 版 – 产品定位与目标 首先 ,介绍一下实时计算Flink版产品定位与目标。近些年来可以明显的看到大数据技术整体发展趋势是“实时化”。 在线应用,越来越多的业务场景和应用都逐渐演变为在线的应用,比如直播、短视频等都更强调实时化。 在线ML,机器学习也从传统的离线机器学习向在线机器学习演进。 微服务化,微服务现在也非常流行在算法层面做充分的解耦。 实时风控,如金融风控、内容安全的风控以及纯粹安全角度的风控等也在逐步发展为实时化。 实时ETL,实时数据的抽取、过滤、聚合,然后产生结果。 实时数仓,T+1的数据报表已无法满足客户当前需求,需要从整体包括实时链路增量数据的统一维度来做联邦查询,突出统一的报表,随之衍生出来的实时数仓。 从整个技术栈的发展情况可以看到实时化已经成为大数据技术发展的必然趋势,Flink主打的也是实时化场景。 其次 ,Apache Flink已经成为国内实时计算的事实标准。目前,阿里云实时计算 Flink 版已经在国家相关部门进行国标、院标的申请,如实时计算标准、融合计算标准,包括了流计算、批计算、ML、图计算等。可以看到很多国内主要的互联网公司都在使用 Flink 或阿里云实时计算

开源十周年,阿里大数据训练营重磅开启!全线技术专家免费上课,名额有限

﹥>﹥吖頭↗ 提交于 2020-08-19 13:11:41
大数据文摘出品 贾扬清的履历,在全球科技圈可以说都是近乎完美的。 作为AI深度学习领域两大著名框架Caffe和TensorFlow的核心作者,也怪不得业内流传这样一句话,要学习深度学习,绕不开贾扬清。 那么,由 贾扬清 亲自出品、邀请阿里云大数据产品技术leader和开源技术专家来做私教的大数据训练营,你觉得需要多少钱? 答案是:免费! 你没听错!就在本周, 由阿里云智能高级研究员贾扬清出品,邀请来自9个产品及技术团队的多位技术专家 ,倾力打造的训练营,正式开启! 2020年,是阿里开源技术的第十年。 除了对于社区的技术贡献之外,贾扬清表示,阿里也希望能跟开发者一起,分享核心技术,在开源、开放的社区互通有无。 本次 阿里大数据训练营“九营齐开” ,课程内容涉及 数据计算、数据分析、数据仓库、搜索、机器学习、数据智能等多个领域 ,涵盖了阿里云计算平台几乎所有的产品。每次课程都由阿里技术团队的leader和专家亲自上阵讲授,不仅讲清楚原理,还有 Demo 实操与应用实践,以丰富的内容打造史上阵容最强、干货最多、覆盖技术领域最广泛的训练营。 从第一期实时计算Flink开始,到离线和实时一体化的数仓MaxCompute和Hologres,也包括开源大数据的全家桶,EMR、ElasticSearch,Flink,以及灵活的机器学习平台PAI和数据综合治理平台DataWorks

Java字节码角度分析构造方法 ——提升硬实力6

て烟熏妆下的殇ゞ 提交于 2020-08-19 03:03:31
在前面的文章中,有详细地介绍java字节码相关的知识,有兴趣的可以提前了解一下。 1. Java字节码的一段旅行经历——提升硬实力1 2. Java字节码角度分析a++ ——提升硬实力2 3. Java字节码角度分析条件判断指令 ——提升硬实力3 4. Java字节码角度分析循环控制 ——提升硬实力4 5. Java字节码角度分析判断结果 ——提升硬实力5 下面我们将以字节码的视角来分析构造方法 CInit // 从字节码角度来分析:构造方法 public class T09_ByteAnalyseCInit { static int i = 10; static { i = 20; } static { i = 30; } } T09_ByteAnalyseCInit 字节码:使用javap -v T09_ByteAnalyseCInit.class,将java程序对应的字节码如下,并做了执行的注释。 编译器会按从上至下的顺序,收集所有static静态代码块和静态成员赋值的代码,合并为一个特殊的方法<cinit>()V: 0: bipush 10 // 将一个byte型常量值推送至栈顶 2: putstatic #2 // Field i:I // 为指定的类的静态域赋值 5: bipush 20 // 将一个byte型常量值推送至栈顶 7: putstatic #2 //

Java字节码角度分析方法调用 ——提升硬实力7

落爺英雄遲暮 提交于 2020-08-18 21:08:48
在前面的文章中,有详细地介绍java字节码相关的知识,有兴趣的可以提前了解一下。 1. Java字节码的一段旅行经历——提升硬实力1 2. Java字节码角度分析a++ ——提升硬实力2 3. Java字节码角度分析条件判断指令 ——提升硬实力3 4. Java字节码角度分析循环控制 ——提升硬实力4 5. Java字节码角度分析判断结果 ——提升硬实力5 6. Java字节码角度分析构造方法 ——提升硬实力6 下面我们将以字节码的视角来方法调用,java代码如下: // 从字节码角度来分析:方法调用 public class T11_ByteAnalyseMethod { // 构造方法 public T11_ByteAnalyseMethod() {} // 私有成员方法 test1 private void test1() {} // 私有最终方法 test2 private final void test2() {} // 公开成员方法 test3 public void test3() {} // 公开静态方法 test4 public static void test4() {} public static void main(String[] args) { T11_ByteAnalyseMethod d = new T11_ByteAnalyseMethod();

开发者指南:5个2020年软件开发趋势预测

淺唱寂寞╮ 提交于 2020-08-18 14:28:00
企业上云已成不可逆的趋势,全面云计算时代宣告来临,微服务已成软件架构主流,免代码开发将会变得更酷,2020 年还有哪些技术趋势值得观察?一起来看! 1基础设施:条条道路通云端 对于云厂商来说,2019 年是硕果累累的一年。不仅初创公司在使用云计算,那些很注重安全的“保守派”公司(如政府机构、医疗保健机构、银行、保险公司,甚至是美国五角大楼)也在迁移到云端。这种趋势在 2020 年将会继续,大大小小的公司都将(或者至少有计划)迁移到云端。Gartner 公司最近发布了一个数字:如果你是一个还在考虑要不要迁移到云端的决策者,不妨重新审视一下你的策略。如果你是一个独立开发者,并且还没使用过云基础设施,那么完全可以在 2020 年尝试一下。 2软件架构:微服务将成为主流 谷歌趋势表明,微服务架构范式在 2019 年持续增长了一整年。 随着软件行业整体逐步迁移到云端,微服务也将成为占主导地位的架构范式。微服务架构崛起的一个主要原因是它与云原生完美契合,可以实现快速的软件开发。 3大数据流式处理:Flink 是未来 几年前,实现实时的流式处理几乎是不可能的事情。一些微批次处理框架(比如 Spark Streaming)可以提供“几近”实时的流式处理能力。不过,Flink 改变了这一状况,它提供了实时的流式处理能力。 2019 年之前,Flink 未能得到足够的关注,因为它无法撼动 Spark