大数据-玩转数据-FLINK
文章平均质量分 71
人猿宇宙
大数据\项目管理
展开
-
大数据-玩转数据-Flink 海量数据实时去重
布隆过滤器的原理是,当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。布隆过滤器的原理是,当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。2.只能插入和查询元素,不能删除元素,这与产生假阳性的原因是相同的。假阳性的概率其实就是一个不在的元素,被k个函数函数散列到的k个位置全部都是1的概率。另外,由于它不存在假阴性问题,所以用作“不存在”逻辑的处理时有奇效,比如可以用来作为缓存系统(如Redis)的缓冲,防止缓存穿透。原创 2023-10-03 22:28:48 · 1613 阅读 · 0 评论 -
大数据-玩转数据-双流JOIN
如下图: 橙色的流去join绿色的流.范围是由橙色流的event-time + lower bound和event-time + upper bound来决定的.2.join成功后的元素的会以所在窗口的最大时间作为其时间戳. 例如窗口[5,10), 则元素会以9作为自己的时间戳。间隔流join(Interval Join), 是指使用一个流的数据按照key去join另外一条流的指定范围的数据.窗口join会join具有相同的key并且处于同一个窗口中的两个流的元素.原创 2023-10-03 19:54:26 · 298 阅读 · 0 评论 -
大数据-玩转数据-Flink SQL编程实战 (热门商品TOP N)
Flink 使用 OVER 窗口条件和过滤条件相结合以进行 Top-N 查询。利用 OVER 窗口的 PARTITION BY 子句的功能,Flink 还支持逐组 Top-N。例如,每个类别中实时销量最高的前五种产品。批处理表和流处理表都支持基于SQL的 Top-N 查询。流处理模式需注意: TopN 查询的结果会带有更新。Flink SQL 会根据排序键对输入的流进行排序;若 top N 的记录发生了变化,变化的部分会以撤销、更新记录的形式发送到下游。原创 2023-10-02 15:00:58 · 825 阅读 · 0 评论 -
大数据-玩转数据-Flink页面广告点击量统计
对于广告的统计,最简单也最重要的就是页面广告的点击量,网站往往需要根据广告点击量来制定定价策略和调整推广方式,而且也可以借此收集用户的偏好信息。更加具体的应用是,我们可以根据用户的地理位置进行划分,从而总结出不同省份用户对不同广告的偏好,这样更有助于广告的精准投放。电商网站的市场营销商业指标中,除了自身的APP推广,还会考虑到页面上的广告投放(包括自己经营的产品和其它网站的广告)。在之PV,PU统计中,已经统计的广告的点击次数总和,但是没有实现窗口操作,并且也未增加排名处理.原创 2023-09-16 22:35:16 · 446 阅读 · 0 评论 -
大数据-玩转数据-Flink 容错机制
在分布式架构中,当某个节点出现故障,其他节点基本不受影响。在 Flink 中,有一套完整的容错机制,最重要就是检查点(checkpoint)。原创 2023-09-10 20:47:49 · 929 阅读 · 0 评论 -
大数据-玩转数据-Flink状态后端(下)
Flink提供了3种状态后端,MemoryStateBackend,FsStateBackend,RocksDBStateBackend,作为一个可插入的组件,没有固定的配置,根据需要进行选择。状态是通过什么方式在哪里持久化,取决于使用的状态后端。由于有效的状态访问对于处理数据的低延迟至关重要,因此每个并行任务(子任务)都会在本地维护其状态,以确保快速的状态访问。2. 需要开启HA的作业;存储方式:本地状态存储在TaskManager的内存中,checkpoint 存储在JobManager的内存中。原创 2023-09-10 14:22:11 · 928 阅读 · 0 评论 -
大数据-玩转数据-Flink状态编程(中)
Flink为每个键值维护一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护和处理这个key对应的状态。当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的key。因此,具有相同key的所有数据都会访问相同的状态。去重: 去掉重复的水位值. 思路: 把水位值作为MapState的key来实现去重, value随意。键控状态是根据输入数据流中定义的键(key)来维护和访问的。检测传感器的水位值,如果连续的两个水位值超过10,就输出报警。计算每个传感器的水位和。原创 2023-09-09 20:48:05 · 404 阅读 · 0 评论 -
大数据-玩转数据-Flink状态编程(上)
在流式计算中有些操作一次处理一个独立的事件(比如解析一个事件), 有些操作却需要记住多个事件的信息(比如窗口操作)。流式计算分为无状态计算和有状态计算两种情况。无状态的计算观察每个独立事件,并根据最后一个事件输出结果。例如,流处理应用程序从传感器接收水位数据,并在水位超过指定高度时发出警告。在简单聚合、窗口聚合、处理函数的应用,都会有状态的身影出现。原创 2023-09-03 20:05:43 · 811 阅读 · 0 评论 -
大数据-玩转数据-Flink定时器
registerProcessingTimeTimer(timestamp: Long): Unit 会注册当前key的processing time的定时器。当水位线大于等于定时器注册的时间时,触发定时器执行回调函数。deleteProcessingTimeTimer(timestamp: Long): Unit 删除之前注册处理时间定时器。deleteEventTimeTimer(timestamp: Long): Unit 删除之前注册的事件时间定时器,如果没有此时间戳的定时器,则不执行。原创 2023-09-01 17:27:37 · 783 阅读 · 0 评论 -
大数据-玩转数据-Flink 水印
是指的执行操作的各个设备的时间,对于运行在处理时间上的流程序, 所有的基于时间的操作(比如时间窗口)都是使用的设备时钟。比如, 一个窗口算子创建了一个长度为1小时的窗口,那么这个算子需要知道事件时间已经到达了这个窗口的关闭时间,从而在程序中去关闭这个窗口。例如,在程序中, 即使处理时间和事件时间有相同的速度, 事件时间可能会轻微的落后处理时间。另外一方面使用事件时间可以在几秒内处理已经缓存在Kafka中多周的数据,这些数据可以照样被正确处理, 就像实时发生的一样能够进入正确的窗口。原创 2023-08-28 16:30:50 · 668 阅读 · 0 评论 -
大数据-玩转数据-Flink窗口函数
ReduceFunction,AggregateFunction更加高效, 原因就是Flink可以对到来的元素进行增量聚合 . ProcessWindowFunction 可以得到一个包含这个窗口中所有元素的迭代器, 以及这些元素所属窗口的一些元数据信息.前面指定了窗口的分配器, 接着我们需要来指定如何计算, 这事由window function来负责. 一旦窗口关闭, window function 去计算处理窗口中的每个元素.输入和输出可以不一致。原创 2023-08-27 17:07:45 · 1043 阅读 · 0 评论 -
大数据-玩转数据-Flink窗口
在代码中, Flink使用TimeWindow这个类来表示基于时间的窗口. 这个类提供了key查询开始时间戳和结束时间戳的方法, 还提供了针对给定的窗口获取它允许的最大时间戳的方法(maxTimestamp())滚动窗口有固定的大小, 窗口与窗口之间不会重叠也没有缝隙.比如,如果指定一个长度为5分钟的滚动窗口, 当前窗口开始计算, 每5分钟启动一个新的窗口.时间窗口包含一个开始时间戳(包括)和结束时间戳(不包括), 这两个时间戳一起限制了窗口的尺寸.输入nc -lk 999。原创 2023-08-24 21:59:37 · 850 阅读 · 0 评论 -
大数据-玩转数据-Flink营销对账
在电商网站中,订单的支付作为直接与营销收入挂钩的一环,在业务流程中非常重要。对于订单而言,为了正确控制业务流程,也为了增加用户的支付意愿,网站一般会设置一个支付失效时间,超过一段时间不支付的订单就会被取消。另外,对于订单的支付,我们还应保证用户支付的正确性,这可以通过第三方支付平台的交易数据来做一个实时对账。对于订单支付事件,用户支付完成其实并不算完,我们还得确认平台账户上是否到账了。而往往这会来自不同的日志信息,所以我们要同时读入两条流的数据来做合并处理。JavaBean类的准备。原创 2023-08-20 16:15:58 · 634 阅读 · 0 评论 -
大数据-玩转数据-Flink App市场推广统计
电商网站中已经有越来越多的用户来自移动端,相比起传统浏览器的登录方式,手机APP成为了更多用户访问电商网站的首选。对于电商企业来说,一般会通过各种不同的渠道对自己的APP进行市场推广,而这些渠道的统计数据(比如,不同网站上广告链接的点击量、APP下载量)就成了市场营销的重要商业指标。统计 不同渠道的不同用户行为。封装数据的JavaBean类。原创 2023-08-20 08:21:56 · 626 阅读 · 0 评论 -
大数据-玩转数据-Flink 网站UV统计
在实际应用中,我们往往会关注,到底有多少不同的用户访问了网站,所以另外一个统计流量的重要指标是网站的独立访客数(Unique Visitor,UV)。对于UserBehavior数据源来说,我们直接可以根据userId来区分不同的用户。将userid放到SET集合里面,统计集合长度,便可以统计到网站的访客数。原创 2023-08-19 15:11:29 · 1666 阅读 · 0 评论 -
大数据-玩转数据-Flink 自定义Sink(Mysql)
如果Flink没有提供给我们可以直接使用的连接器,那我们如果想将数据存储到我们自己的存储设备中,mysql 的安装使用请参考。原创 2023-08-13 19:27:05 · 900 阅读 · 0 评论 -
大数据-玩转数据-Flink RedisSink
可以根据要写入的redis的不同数据类型进行调整。具体版本根据实际情况确定。原创 2023-08-12 19:51:16 · 1385 阅读 · 0 评论 -
大数据-玩转数据-Sink到Kafka
运行程序后看到消费者消费成功。pom.xml 中添加。启动zookeeper。原创 2023-08-09 06:51:39 · 644 阅读 · 0 评论 -
大数据-玩转数据-Flink-Transform
flink 算子原创 2023-08-07 22:27:17 · 831 阅读 · 0 评论 -
大数据-玩转数据-FLINK-从kafka消费数据
运行本段代码,等待kafka产生数据进行消费。原创 2023-08-04 17:29:25 · 1753 阅读 · 0 评论 -
大数据-玩转数据-FLINK(Yarn模式)的安装与部署
在这些容器上,Flink 会部署JobManager 和 TaskManager 的实例,从而启动集群。一个Job会对应一个Flink集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。内存集中管理模式:在Yarn中初始化一个Flink集群,开辟指定的资源,之后我们提交的Flink Jon都在这个Flink yarn-session中,也就是说不管提交多少个job,这些job都会共用开始时在yarn中申请的资源。原创 2023-05-21 21:05:32 · 2521 阅读 · 1 评论 -
大数据-玩转数据-FLINK快速上手
需要注意的是,这种代码的实现方式,是基于 DataSet API 的,也就是我们对数据的处理转换,是看作数据集来进行操作的。我们需要添加的依赖最重要的就是 Flink 的相关组件,包括 flink-java、 flink-streaming-java,以及 flink-clients(客户端,也可以省略)。我们可以先做个简单的解释。这段代码不同的运行环境,得到的结果会是不同的。为了模拟这种场景,我们就不再通过读取文件来获取数据了,而是监听数据发送端主机的指定端口,统计发送来的文本数据中出现过的单词的个数。原创 2023-04-30 23:16:46 · 846 阅读 · 0 评论 -
大数据-玩转数据-初识FLINK
底层过程函数(Process Function) 与 DataStream API 相集成,使其可以对某些特定的操作进行底层的抽象,它允许用户可以自由地处理来自一个或多个数据流的事件,并使用一致的容错的状态。有界数据流有明确定义的开始和结束,可以在执行任何计算之前通过获取所有数据来处理有界流,处理有界流不需要有序获取,因为可以始终对有界数据集进行排序,有界流的处理也称为批处理。而在flink的世界观中,一切都是由流组成的,离线数据是有界限的流,实时数据是一个没有界限的流,这就是所谓的有界流和无界流。原创 2023-04-29 22:22:01 · 1055 阅读 · 0 评论