flink状态管理-keyed
Flink主要有两种基础类型的状态:keyedstate和operatorstate。1KeyedStateKeyedState总是和keys相关,并且只能用于KeyedStream上的函数和操作。你可以将KeyedState视为是已经被分片或分区的OperatorState,每个key都有且仅有一
flink动态表的概念详解
传统的数据库SQL和实时SQL处理的差别还是很大的,这里简单列出一些区别:尽管存在这些差异,但使用关系查询和SQL处理流并非不可能。高级关系数据库系统提供称为物化视图的功能。物化视图定义为SQL查询,就像常规虚拟视图一样。与虚拟视图相比,物化视图缓存查询的结果,使得在访问视图时不需要执行查询。缓存的
重要|Flink SQL与kafka整合的那些事儿
flink与kafka整合是很常见的一种实时处理场景,尤其是kafka0.11版本以后生产者支持了事务,使得flink与kafka整合能实现完整的端到端的仅一次处理,虽然这样会有checkpoint周期的数据延迟,但是这个仅一次处理也是很诱人的。可见的端到端的使用案例估计就是前段时间oppo的案例分
面试|Flink实现PageRank算法
PageRank估计是很多面试场合上镜率比较高的吧,面试Spark的时候会被问到,最近flink热,估计也会被问到吧,浪尖就在这里帮大家解决这个疑难杂症。算法常见的原题是:pagerank的算法会维护两个数据集:一个由(pageID,linkList)的元素组成,包含每个页面的相邻页面的列表;另一个
为啥spark 的broadcast要用单例模式
很多用SparkStreaming的朋友应该使用过broadcast,大多数情况下广播变量都是以单例模式声明的有没有粉丝想过为什么?浪尖在这里帮大家分析一下,有以下几个原因:广播变量大多数情况下是不会变更的,使用单例模式可以减少sparkstreaming每次job生成执行,重复生成广播变量带来的开
Spark Core读取ES的分区问题分析
写这篇文章的原因是前两天星球球友去面试,面试管问了一下,Spark分析ES的数据,生成的RDD分区数跟什么有关系呢?稍微猜测一下就能想到跟分片数有关,但是具体是什么关系呢?可想的具体关系可能是以下两种:1).就像KafkaRDD的分区与kafkatopic分区数的关系一样,一对一。2).ES支持游标
重要|Spark driver端得到executor返回值的方法
spark使用的时候,总有些需求比较另类吧,比如有球友问过这样一个需求:浪尖,我想要在driver端获取executor执行task返回的结果,比如task是个规则引擎,我想知道每条规则命中了几条数据,请问这个怎么做呢?这个是不是很骚气,也很常见,按理说你输出之后,在mysql里跑条sql就行了,但
spark令人疑惑的内存配置
今天,星球里有个妹子问了一个问题,主要是spark官网说了这么段话:在gc的统计信息中,如果老年代接近满了,减少用于缓存的内存(通过减小spark.memory.Fraction)。缓存较少的对象比降低运行速度对我们来说更有好处。另外,可以考虑减少年轻代。可以通过减小-Xmn参数设置的值,假如使用的
必背|spark 内存,GC及数据结构调优
本文主要译自spark官网。一,基本概述调优内存的使用主要有三个方面的考虑:对象的内存占用量(你可能希望整个数据集都适合内存),访问这些数据的开销,垃圾回收的负载。默认情况下,java的对象是可以快速访问的,但是相比于内部的原始数据消耗估计2-5倍的空间。主要归于下面三个原因:1),每个不同的Jav
spark高层通用调优
一,并行度如果并行度设置的不足,那么就会导致集群浪费。Spark自动会根据文件的大小,是否可分割等因素来设置map的数目(后面会详细讲解输入格式,同时详细讲解各种输入的map数的决定)。对于分布式reduce操作,例如groupbykey和reducebykey,默认它使用的是分区数最大的父RDD的
说几个flink好做spark却不好做的场景
经常有粉丝问我该选flink和sparkstreaming?业务选型对新手来说是件非常困难的事情,对于经验丰富又经常思考的人来说就很简单。选型的时候个人准备知识:1.深入了解框架。2.深入了解框架的周边生态。3.深入了解你自己的业务场景。就拿flink和sparkstreaming来说吧,要是理解其
技术人生,前途几何?
致迷茫的你:每个人都应该成为一个优秀的销售员。现在社会,其实就是一个市场每个人都是一个销售员,除了去销售产品,我们还可以销售:1.卖时间。大部分人都是用打工的方式去卖时间换钱。2.卖知识。很多领域大卡做的事情,解决领域新人迷茫的问题。3.卖背景。这个往往是大厂出品吧,或者资历雄厚,以吸引后浪出资购买
如何分析spark streaming性能瓶颈及一致性问题
很多粉丝在公众号留言,都是在问如何分析定位sparkstreaming性能瓶颈。貌似以前,浪尖发过一篇文章,讲的是从sparkstreaming的webui的角度去分析。这其实,是根据现象去分析定位问题的很方便的手段,大家可以去翻翻,星球的球友也可以去精华帖子里看看。今天,主要是从数据流的角度去分析
解惑| spark实现业务前一定要掌握的点
一直都有粉丝留言,问各种奇怪的问题,今天就列举一个浪尖反复解答过的问题:编写的spark代码到底是执行在driver端还是executor端?1.driver&executor浪尖这里只提本文关注的两个角色,driver和executor。首先,driver是用户提交应用程序的入口main函
Flink计算PV,UV的案例及问题分析
PV(访问量):即PageView,即页面浏览量或点击量,用户每次刷新即被计算一次。UV(独立访客):即UniqueVisitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。一个UV可以用很多PV,一个PV也只能对应一个IP没有这些数据的支持,意味着你不
Flink计算PV,UV的案例及问题分析
PV(访问量):即PageView,即页面浏览量或点击量,用户每次刷新即被计算一次。UV(独立访客):即UniqueVisitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。一个UV可以用很多PV,一个PV也只能对应一个IP没有这些数据的支持,意味着你不
Flink通过异步IO实现redis维表join
使用flink做实时数仓的公司越来越多了,浪尖这边也是很早就开发了一个flink全sql平台来实现实时数仓的功能。说到实时数仓,两个表的概念大家一定会知道的:事实表和维表。在实时数仓中,事实表就是flink消费的kafka的topic数据流,而维表和离线数仓一样,就是mysql等外部存储的维表。当f
浪尖以案例聊聊spark3的动态分区裁剪
动态分区裁剪,其实就牵涉到谓词下推,希望在读本文之前,你已经掌握了什么叫做谓词下推执行。SparkSql中外连接查询中的谓词下推规则动态分区裁剪比谓词下推更复杂点,因为他会整合维表的过滤条件,生成filterset,然后用于事实表的过滤,从而减少join。当然,假设数据源能直接下推执行就更好了,下推
spark on yarn的内存分配机制
最近有不少知识星球粉丝和公众号粉丝给浪尖留言,说是不知道sparkonyarn的时候,yarn如何分配Spark的driver和executor内存的。今天浪尖就给大家分享一下sparkonyarn,内存分配原理。1.基础概念要掌握这个知识点,要了解以下几个点:sparkdriver和executo
如何将Spark的shuffle移植到自己业务
1.ExternalSorter简介ExternalSorter是用来排序及聚合key-value类型的数据。首先使用分区器将数据按照key进行分区,然后使用自定义的排序器在一个分区内对数据key进行排序。可以生成适合shuffle读取的分区文件。如果禁用combiner,那么value的输入和输出