Spark基础-Spark基本概念 基本架构Spark程序由一个驱动进程(driver)和多个执行器进程(executor)组成。 driver运行main函数,位于集群中的一个节点上。负责三件事: 维护Spark应用程序相关信息 回应用户的程序或输入 分析任务并分发给若干executor执行executor负责实际的计算工作,每个executor负责两件事情: 执行由driver分配的代码 将计算状态报告给driver 2024-04-22 读书笔记 > Spark #Spark
算法题的ACM模式 简介一般算法题有两种模式,比较熟悉的是lc的那种,你只需要实现一个核心方法,不用关心输入输出的部分。第二种模式就是这里介绍的ACM模式,这个模式下,全部的输入输出都要自己实现。有的面试会以第二种方式出题,需要熟悉一下,不要关键时刻不知道怎么处理。本文以java语言介绍一下ACM模式下应该如何写题接。 输入输出的相关方法Java下,输入输出的方式分别对应Scanner和println 输入用nex 2024-04-20 算法 #算法
Flink基础5篇-5-算子状态相关 键值分区状态经过keyby操作之后,流从dataStream变成keyedStream,此时flink为每一个键值维护一个状态实例。实例会分布在函数所在算子的所有并行任务上。即每个任务负责一部分键值状态的存储。只有作用在keyedStream上的函数才能使用键值分区状态。 键值分区状态目前支持以下原语(状态的数据类型): valueState[T]:T类型的单个值 ListState[T] Ma 2024-04-14 读书笔记 > Flink #flink
回溯算法 基本概念回溯的本质是通过深度遍历的方式找到所有满足条件的可能解。遇到排列组合类的问题,应该联想到通过回溯来解决。常见的问题类似给定一个集合,需要从中挑出一定数量的元素,凑成满足某个条件的解。问一共能找到多少个这样的解,或者列举出所有满足条件的解。 基础实现回溯是有一个基础模版的,在此基础上做微调来解决不同的问题。 12345678910111213141516def bacakTrace(当前元素 2024-04-14 算法 #算法
Flink基础5篇-4-基于时间和窗口的算子 配置时间特性在DataStreamAPI中,可以使用时间特性告知flink在创建窗口的时候如何定义时间 此处可以传入三种值 ProcessingTime:处理时间,由处理机器的系统时间决定 EventTime:根据数据自身包含的信息决定当前时间 IngestionTime:使用处理时间同时自动生成水位线,意义不大分配时间戳和水位线 有两种方法分配时间戳和生成水位线 直接在sourceFun 2024-04-13 读书笔记 > Flink #flink
再谈二分查找 本文补充一些对二分查找的思考以及变体。 算法的核心二分法的核心思想是有限有序的情况下能够快速找到目标值。这是一个很宽泛的条件,千万不要局限在数组这种数据结构中。很多情况下都可以使用二分,而不是一定要有一个数组然后对其进行排序才行。 详细说明下: 有限指的就是所有的可能性是有限的,可枚举的 有序指的是存在着线性的映射关系,即在有限的可能的取值中,每个值和目标值之间是线性关系只要满足上面两种情况,就 2024-04-13 算法 #算法
Flink基础5篇-3-DataStreamAPI Flink流式应用典型步骤 设置执行环境 从数据源中读取一条或多条流 流式转换,实现应用逻辑 结果输出 程序执行设置执行环境 1val env = StreamExecutionEnvironment.getExecutionEnvironment() 读取输入流12345678KafkaSource<String> source = KafkaSource.<String& 2024-04-06 读书笔记 > Flink #flink
Flink基础5篇-2-Flink架构 系统架构flink是一个分布式系统,可以和很多集群管理器(Apache Mesos、YARN 及Kubernetes )集成。也可以作为独立的集群运行。 flink组件Flink 的搭建需要四个不同组件,它们相互协作,共同执行流式应用。这些组 件是:J obManager、ResourceManager、TaskManager 和Dispatcher。 JobManagerjobManager控制 2024-04-06 读书笔记 > Flink #flink
Java常用数据结构 本文总结一下java常用的数据结构和其常用方法,主要是在算法题中的应用。 数组12345678910111213//initint[] arrInt = new int[22];double[] myList = {1.9, 2.9, 3.4, 3.5};//get ithint i = arrInt[3];// get sizeint len = arrInt.length; 2024-04-02 编程语言 > Java #算法 #Java
Flink基础五篇-1-流处理基本概念 Dataflow图描述数据如何在不同操作之间流动,是一个有向无环图。图中的顶点称为算子,表示计算,边表示数据依赖关系。 其中没有输入端端算子是数据源(source),代表数据读取。没有输出端的算子是数据汇(sink),代表数据最终的输出。 算子代表对数据的操作,一种操作可以抽象为一个算子。比如读取数据,筛选数据,计算数据的平均值。输出数据等。 算子任务算子代表一种操作,而大数据量下往往会 2024-04-02 读书笔记 > Flink #flink