- 博客(21)
- 收藏
- 关注
原创 服务失效判断
某系统中有众多服务,每个服务用字符串(只包含字母和数字,长度<=10)唯一标识,服务间可能有依赖关系Q,如A依赖B,则当B故障时导致A也故障。依赖具有传递性,如A依赖B,B依赖C,当C故障时导致B故障,也导致A故障。给出所有依赖关系,以及当前已知故障服务,要求输出所有正常服务。依赖关系:服务1-服务2表示“服务1”依赖“服务2”。不必考虑输入异常,用例保证:依赖关系列表、故障列表非空,且依赖关系数,故障服务数都不会超过3000服务标识格式正常。
2025-04-08 15:04:00
259
原创 最大社交距离
在疫情期间,为了保证社交距离,公司组织了一场特殊的交流会议。会议室有一排共 N 个座位,编号从 0到 N−1。第二行是一个整数数组 seatOrLeave,表示员工的进出顺序。输出一个整数,表示最后进入的员工所坐的位置编号。如果所有座位都已被占用,则输出 -1。定义一个列表seat_idxs,用来存放座位号是否有人坐。第一行包含一个整数 seatNum,表示座位总数。
2025-03-18 17:41:17
381
原创 吐槽MacCompute!吐槽MacCompute!吐槽MacCompute!
MaxCompute、大数据、SQL、Hive、Spark、Flink
2024-11-21 14:33:15
150
原创 算法面试题——TLV解码(python)
TLV编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value表示信元的值。本题考查的是对字符串、数组和集合操作的理解,首先输入一个16进制的信元Tag,然后再输入一串字符串找到第一行输入信元Tag的Value值。第四个信元的Tag是31,其长度为2(0200),所以返回长度后面的两个字节即可,即3233。现给定TLV格式编码的码流,以及需要解码的信元Tag,请输出该信元的Value。
2024-09-22 15:31:54
451
2
原创 算法面试题——敏感字段加密(python)
请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令字前后多余的下划线_。如果无法找到指定索引的命令字,输出字符串ERROR。输出处理后的命令字符串,如果无法找到指定索引的命令字,输出字符串ERROR。输入为两行,第一行为命令字索引K(从0开始),第二行为命令字符串S。欢迎各位补充和优化。
2024-09-22 13:09:02
255
原创 Flink state(3)- Queryable State
什么是Queryable State简而言之,就是Flink将managed keyed(partitioned)state暴露给外部,从而用户可以从Flink外部访问state作业。架构1.QueryableStateClient,默认运行在Flink集群的外部,负责提交用户的查询请求。2.QueryableStateClientProxy,运行在TaskManager上(Flink集群的内部),负责接收客户端的查询请求,从所负责的Task Manager获取请求的state,并返回给客户端。
2021-10-11 23:11:34
372
原创 Flink的state解析(2)
Flink中的state是什么?首先flink从消息队列中读取到的每一条数据称之为事件,虽然很多操作中一次只查看一个单独的事件,但是有些操作会记录多个事件信息,这些操作称为有状态的操作。有状态操作的一些示例:当应用程序搜索某些事件模式时,状态将会存储目前为止遇到的时间序列。当聚合每分钟/小时/天,状态会保存挂起的聚合。在数据流上训练机器模型,状态会保存当前模型的参数的版本。当需要管理历史事件,状态允许有效的访问历史事件。Flink需要知道状态的信息,以便使用checkpoing和savep
2021-07-11 18:29:06
1802
2
转载 Table API & SQL(二)
概念与通用的APITable API和SQL集成在同一套API中。这套API的核心概念式Table,用作查询的输入和输出。本文介绍了Table API和SQL程序的通用结构、如何注册Table、如何查询Table以及如何输出Table。
2021-04-18 14:41:02
536
原创 Linux虚拟机连不上网络
1.虚拟机的ip地址和本地网卡IPv4地址保持一致2.vim /etc/sysconfig/network-scripts/ifcfg-ens34(ifcfg-ens34是Linux虚拟机的网卡名称)3.节点MAC地址4.虚拟机网络已联通
2021-03-14 18:57:05
552
原创 Flink应用开发之Table API & SQL(附源码解析)(一)
依赖图Flink1.9开始,Flink提供了两个Table Planner实现来执行Table API和SQL程序:Blink Planner和Old Planner,Old Planner在1.9之前已经存在了。Planner的作用是将关系型操作翻译成可执行的、优化后的任务。两种Planner在优化规则和执行时类都不一样,在支持的功能上也有些差异。对于生产环境,建议使用在1.11之后变成默认的Blink Planner。所有的Table API和sql的代码都在flink-table或者flin
2021-03-14 18:09:16
1174
4
转载 Flink的State详解(1)
State概念解析State是一个接口,不同类型的分区状态必须实现的接口,State只能应用于{@code KeyedStream}的函数访问。key是由系统自动提供的,因此函数总是看到映射到当前元素的键的值。这样,系统可以一致地处理流和状态分区。KeyedStream:KeyedStream继承了DataStream,是由datastream的keyBy(),产生的。表示按key的value分区过的流。在datastream的功能基础上,由添加了一些max,min等聚合的功能。通过状态快照实现容
2021-02-26 21:07:44
5092
原创 Flink的容错
CheckPointCheckPoint是Flink的容错核心机制。它可以定期将各个Operator处理的数据进行快照存储(Snapshot)。通过CheckPoint机制,可以对作业的状态和计算位置进行恢复。barrier的产生Flink的checkpoint是由JobManager发起的,以一定的周期触发Source Task产生barrier。Source收到指令后生成barrier,Source Task中会进行两件事1.首先生成携带CheckPoint ID的barrier,并将
2021-01-26 10:12:15
419
原创 Flink Time
Flink Time的操作时间语义针对stream流中的事件,分为三种:1.Event Time:事件本身的时间2.Ingestion Time:进入系统的时间3.Process Time:处理消息的时间哪种时间语义更重要:1.不同的时间语义有不同的应用场合2.在Flink处理数据时,更关心事件时间,因为绝大部分业务都会使用event time,一般只在event time无法使用的时候,才会使用process time或者Ingestion time。3.使用event time的时
2020-12-11 09:40:07
157
原创 Flink的Window
Flink的Window操作Flink认为Batch是Streaming的一个特例,所以Flink底层引擎是一个流式处理引擎,而Window就是Streaming和Batch链接的桥梁。Window的概念:在流式处理应用中,数据是连续不断的,我们不可能等到所有数据都到了之后再去处理,但是有时根据业务的需求我们需要做一些聚合类的处理。例如:在过去的一分钟内有多少用户点击了我们的网页,在这种情况下,我们必须定义一个窗口,用来收集最近一分钟的数据,并对这个窗口内的数据进行计算。Window的类型:时间窗口
2020-12-03 16:53:26
299
原创 Flink中的广播变量、累加器和分布式缓存
Flink中的广播变量、累加器和分布式缓存Flink的广播变量1、Flink可以将数据广播到TaskManager上,数据存储到内存中,可以大量减少shuffle的操作;比如在数据join阶段,不可避免的就是大量的shuffle操作,我们可以把其中一个DataSet广播出去,加载到TaskManager的内存中,可以直接在内存中加载数据,这样就能避免大量的shuffle操作导致的集群性能下降。2、广播变量创建后,可以被使用在集群任何一个节点的function上,而不需要多次传递给集群的节点。3、可以
2020-10-20 17:33:54
447
原创 Flink流处理API
一、Environmen1.Flink中你可以使用StreamExecutionEnvironment.getExecutionEnvironment创建l流式程序的运行环境。例:val env:ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment2.如果没有设置并行度,会以Flink-conf.yaml文件的配置为准,默认为1。3.createLocalEnvironment,返回本地执行环境,需要在调用时指定并行度
2020-09-30 09:47:19
487
1
原创 Flink集群运行时架构及部署
Flink集群运行时架构及部署一、并行度(Parallelism)1.上图能够看出,不能chain在一起的operator会被分配到不同的Task中,也就是说Task是Flink中资源调度最小的单位。a.一个特定算子的子任务(subtask)的个数被称之为并行度(parallelism)b.一般情况下,一个流程序的并行度,是由程序中算子中最大的并行度。c.一个程序中,不同的算子可以有不同的并行度。2.1Flink程序的执行具有并行、分布式的特性在执行的过程中,一个流(Stream)包含一个
2020-09-11 16:53:04
241
原创 Flink集群部署&运行架构
Flink(一):Flink集群部署&运行时架构一、Standlone模式任务调度原理JobManager:作业管理器,负责协调资源分配和作业执行。资源分配完成后,将任务提交给TaskManager。TaskManager:执行任务的工作节点。会定期想JobManager汇报状态。Client:提交Flink程序JobManager是Standlone模式中整个系统最有可能导致整个系统不可用的角色。如果一个TaskManager挂掉,TaskSlot(资源充足)最够的话,则只需要把相关的t
2020-08-28 18:13:06
1184
2
基于尚硅谷的Flink源码视频的Flink环境配置和任务提交流程、组件通信、任务调度以及内存管理源码梳理
2022-10-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人