一:Spark SQL下的Parquet使用最佳实践1,过去整个业界对大数据的分析的技术栈的Pipeline一般分为一下两种方式:A)Data Source -> HDFS -> MR/Hive/Spark(相当于ETL) -> HDFS Parquet -> SparkSQL/impala -> Result Service(可以放在DB中,也有可能被通过JDBC/            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-29 16:35:09
                            
                                59阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            大家好,我是大圣。最近工作中使用Flink 状态比较多,但是遇到了各种各样的问题,比如应该什么时候使用KeyedState,什么时候应该使用Operator State,还有StateTTL过期的问题。趁着周末有时间,就把Flink 状态给总结一下。 Flink 状态初探熟悉Flink框架的小伙伴都知道Flink是一个实时流处理计算引擎,什么是流处理呢?我们来举个生活中的案例,大圣小时候在河边长大            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-12 15:35:40
                            
                                107阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            从状态说起状态 (State) 是 Flink 程序中构建复杂逻辑的基本组件。流处理中的状态可以视作算子上的记忆能力,可以保留和已经处理完的输入相关的信息,并对后续输入的处理造成影响。与之相反,流处理中的无状态操作只会考虑到当前处理的元素,不会受到处理完毕的元素的影响,也不会影响到后续待处理的元素。简单来说,假定一个 source stream 中的事件消息都符合 e = {event_            
                
         
            
            
            
            Flink提供三层API,每个API在简洁性和表达之间提供不同的权衡,并针对不同的用例 SQL/Table API(dynamic tables) DataStream API(streams,windows) ProcessFunction(event,state,time) 不要跟ProcessWindowFunction混为一谈 ProcessFunction是一个低阶的流处理操作            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-02 17:25:27
                            
                                76阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、Keyed State1、用途Keyed State接口目前有5种不同类型状态的访问接口,这些状态都作用于当前输入数据的key下。换句话说,这些状态只能用在keyedStream上,可以通过stream.keyBy(…)得到KeyedStream.这5种接口分别如下: 1、ValueState:保存一个可以更新和检索的值 2、ListState: 保存一个元素的列表 3、ReducingSta            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-29 20:09:23
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Transformation各算子可以对Flink数据流进行处理和转化,是Flink流处理非常核心的API。mapmap算子对一个DataStream中的每个元素使用用户自定义的map函数进行处理,每个输入元素对应一个输出元素,最终整个数据流被转换成一个新的DataStream。输出的数据流DataStream[OUT]类型可能和输入的数据流DataStream[IN]不同。如业务需求可以对一些数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-05 05:53:38
                            
                                419阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Map1.概述interface Map <K,V> k:键的类型 V:值的类型不能包含重复的键,每个键映射到最多一个值2.HashMap添加的函数为o.put()Map<String, String> map= new HashMap<String, String>();
map.put("it001","知识");
map.put("it002","zss"            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-15 13:20:39
                            
                                69阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在接触关系型API之前,用户通常会采用DataStream、DataSet API来编写Flink程序,它们都提供了丰富的处理能力,以DataStream为例,它有如下这些优点:富有表现力的流处理,包括但不限于:转换数据,更新状态,定义窗口、聚合,事件时间语义,有状态且保证正确性等;高度自定义的窗口逻辑:分配器、触发器、逐出器以及允许延迟等;提升与外部系统连接能力的异步I/O接口;ProcessF            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-27 08:15:33
                            
                                46阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            场景: 如果有1000万订单,和20万以上的商家。现在我需要计算每个商家的订单数量,所以我使用以下方法(见代码)。这是正确的吗?因为会有很多键,我不知道Flink是否会对里面的每个键进行尺寸标注,是否会导致OOM?//商家 merchantId
orderStream.keyby(merchantId)
           .reduce(new ReduceFunction<Intege            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-17 05:37:47
                            
                                7阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            概念map函数:map函数用键值对的方式来存储数据,提供的是一种一对一的关系,这样在某些情况下提供了很好的便利。map函数的头文件是#include<map>,实例化一个map对象:map<int ,string>,而且在修改操作中,只能改变string的值,不能更改int索引值。map函数并不是数组,所以如果要遍历的时候,就要使用迭代(iterator)才能实现遍历操作s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-23 22:00:18
                            
                                127阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            角色JM,接收提交的资料:class文件、依赖的jar、jobGraph、datafolwGraph 运行driver,类似于spark的driver,任务调度主从中的主 划分任务,把jobGraph转成executionGraph 分发任务,向RM申请slot,然后把subtask提交到TM的slot运行管理checkpointjobGraph代码的图形化表示,没有并行操作的信息TM启动后,TM            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-26 10:21:47
                            
                                59阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            介绍 Apache Flink是用于分布式流和批处理数据处理的开源平台。 Flink是具有多个API的流数据流引擎,用于创建面向数据流的应用程序。  Flink应用程序通常使用Apache Kafka进行数据输入和输出。  本文将为您提供将Apache Flink与MapR Streams结合使用的简单步骤。 MapR Streams是用于大规模流式传输事件数据的分布式消息传递系统,它已基于A            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-23 11:42:56
                            
                                43阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            第1章 Flume概述1.1 Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。Flume最主要的作用是实时读取服务器本地磁盘上的数据,将数据写入HDFS上。1.2 Flume基础架构Flume组成架构如下图所示:1.2.1 Agent Agent是一个JVM进程,它以事件的形式将数据从源头送至目的。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-17 14:53:34
                            
                                47阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一 有界流 无界流流处理与批处理 • MapReduce、Spark只支持批处理任务 • Storm只支持流处理任务 • Spark Streaming采用了一种micro-batch的架构实现了流处理 • Flink通过灵活的执行引擎,能够同时支持批处理任务与流处理任务Spark vs Flink  数据模型 • Spark采用RDD模型,Spark Streaming的DStream            
                
         
            
            
            
            Flink结构:flink cli 解析本地环境配置,启动 ApplicationMaster
在 ApplicationMaster 中启动 JobManager
在 ApplicationMaster 中启动YarnFlinkResourceManager
YarnFlinkResourceManager给JobManager发送注            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-07 21:57:00
                            
                                21阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            流处理说明Transformation基本操作map/flatMap/filter/keyBy/sum/reduce...和之前学习的Scala/Spark里面的一样的意思map方法、flatmap方法、keyBy方法、reduce方法map方法map:将函数作用在集合中的每一个元素上,并返回作用后的结果flatmap方法flatMap:将集合中的每个元素变成一个或多个元素,并返回扁平化之后的结果            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-19 20:45:09
                            
                                55阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             目录state容错语义at most onceat least onceexactly-once容错续跑算子容错续跑task异常作业逻辑不变CP/SP策略bugfix升级续跑SP策略source容错续跑sink 容错续跑 stateflink 支持有状态的流,存储历史的状态信息。 状态状态分类 keystate keyBy/groupBy/PartitonBy 后,每个key都有属于自己的一个s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 17:17:43
                            
                                237阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在本节中,你将了解 Flink 中用于处理事件时间的时间戳和 watermark 相关的 API。有关事件时间,处理时间和摄取时间的介绍,请参阅事件时间概览小节。Watermark 策略简介为了使用事件时间语义,Flink 应用程序需要知道事件时间戳对应的字段,意味着数据流中的每个元素都需要拥有可分配的事件时间戳。其通常通过使用 TimestampAssigner API 从元素中的某个字段去访问            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-17 14:09:54
                            
                                24阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Flink的算子目录Flink的算子1、Map2、FlatMap3、Filter4、KeyBy5、Reduce6、Aggregations7、Window8、Union9、Window Join10、Split11、Selectflink代码分为三部分:1、Source----数据源,读取数据2、Transformation----转换,对数据进行处理,也就是算子3、Sink----将数据发出去T            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-06 17:45:38
                            
                                77阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在Map集合中,有如下定义: 
           values():方法是获取集合中的所有的值----没有键,没有对应关系, 
           KeySet():将Ma            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-06 21:10:19
                            
                                96阅读
                            
                                                                             
                 
                
                                
                    