- 博客(303)
- 资源 (6)
- 收藏
- 关注
原创 一文搞懂 Flink ExecutionGraph 构建过程源码
链接:ExecutionGraph是flink任务执行的最直接的执行图,而不是StreamGraph和JobGraph。之前分析过StreamGraph和JobGraph的构建,他们都是在客户端进行构建,由StreamGraph构建JobGraph,提交给JobMaster。ExecutionGraph则是在服务端由JobMaster根据JobGraph进行构建的。现在就来分析一下ExecutionGraph的构建过程。
2024-09-18 14:27:41
975
原创 一文搞懂 Flink JobGraph 的创建过程源码
在StreamGraph构建完毕之后会开始构建JobGraph,然后再提交JobGraph。
2024-09-18 11:37:51
766
原创 一文搞懂 Flink Stream Graph 构建过程源码
) transform)transformPartition会为PartitionTransformation生成一个新的虚拟节点,同时将该虚拟节点保存到StreamGraph的virtualPartitionNodes中,并且会保存该PartitionTransformation的input,将PartitionTransformation的partitioner作为其input的分区器,在WordCount中,也就是作为map算子生成的DataStream的分区器。
2024-09-14 14:46:44
1144
1
原创 一文弄懂 Flink 数据交互之 Netty 通信源码
flink数据的通信采用的netty框架,分为客户端和服务端,每个taskmanager即是客户端也是服务端,客户端用于向上游任务请求数据,服务端用于接收下游客户端请求,将数据发送给下游任务。数据处理的逻辑都是在ChannelHandler中完成,客户端和服务端有不同的ChannelHandler。
2024-09-14 10:14:50
574
原创 一文弄懂 Flink Task 数据交互之数据读源码
在Reduce端的数据读过程取过程,以及Reduce端的数据模型。本文暂时只分析Reduce端任务处理线程的数据读,不涉及到与上游任务的网络交换和数据请求,Task之间的数据交换主要是基于Credit的Netty网络通信,这部分将在之后。
2024-09-13 17:31:31
992
1
原创 一文搞懂 Flink Task 数据交互之数据写源码
Flink中的Task也有着类似于Map/Reduce的计算模型,Task之间的数据交换是相当重要的模块。本文是分析Flink Task数据写的过程,为了更好的了解在实时流计算过程中数据的生产、传输、消费的过程打个基础。对于批处理过程的数据传输也有意义Flink实时流计算Task任务中有算子链OperatorChain,在算子链中,每个算子都持有一个Output接口, 上一个算子把计算处理完的数据通过Output接口把传递给下一个算子处理。那末尾的算子怎么办呢?
2024-09-13 17:02:58
1131
原创 一文搞懂Flink重要源码(持续更新)
Flink源码1. Flink 状态源码2. checkPoint 源码分析3. waterMark 源码分析4. Task数据交互之数据写5. Task数据交互之数据读6. Task数据交互之Netty通信7. StreamGraph构建过程8. JobGraph的创建过程9. ExecutionGraph构建过程10. WordCount源码分析
2024-09-12 17:13:15
651
原创 一文搞懂FLink WaterMark源码
上述代码的大致实现是,当上游一个task将watermark广播到下游的所有channel(可以理解成下游所有task)之后,下游的task会更新对上游inputChannel记录状态信息中的watermark值,下游每个task都记录这上游所有task的状态值。然后下游task再从所有上游inputChannel(即上游所有task)中选出一个最小值的watermark,如果这个watermark大于最近已经发送的watermark,那么就调用outputHandler对新watermark进行处理。
2024-09-12 16:53:50
975
原创 一文弄懂Flink网络流控及反压
网络流控是为了在上下游速度不匹配的情况下,防止下游出现过载Flink 1.5 之前是基于 TCP 流控 + bounded buffer 实现反压Flink 1.5 之后实现了自己托管的 credit – based 流控机制,在应用层模拟 TCP 的流控机制。
2023-03-22 18:06:29
1182
原创 flink面试常见题带答案(持续更新)
Apache Flink 是一个开源的基于流的有状态计算架。它是分布式地执行的,具备低延迟、高吞吐的优秀性能,并且非常擅长处理有状态的复杂计算逻辑场景。全局快照首先是一个分布式应用,它有多个进程分布在多个服务器上:其次,它在应用内部有自己的处理逻辑和状态:第三,应用间是可以互相通信的:第四,在这种分布式的应用,有内部状态,硬件可以通信的情况下,某一时刻的全局状态,就叫做全局的快照。
2023-03-22 14:59:36
3609
原创 一文搞清yarn三种调度器
3、灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。3、灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。DRF:Yarn默认只考虑内存资源,该策略对不同应用不同资源(CPU和内存)进行一个不同比例的限制,因为每个应用程序需求量不一样。容量调度器优先选择资源使用率最低的队列,而公平调度器优先选择资源缺额比较大的队列。
2023-02-06 14:51:47
2061
原创 一文弄懂Hbase
优点是很多的,容量巨大,可以千亿行,上万列;扩展性很强,可以按需扩容,都是线性伸缩的;结构化,列簇式存储,允许稀疏数据存储,还不浪费空间;擅长 OLTP 场景,高并发、高性能的数据读写,小范围的查询也是可以的;支持值的多版本,这个其实可以保存时序数据hbase 的缺点也是很多的,不支持 OLAP 分析场景,分析用 hbase 就不太靠谱了,天生不是用于分析的,他就是海量数据列簇式存储,结构化,列可扩展,高性能读写;
2023-02-03 15:50:25
1970
原创 一文弄懂 ZooKeeper
1. 集群模式部署一般奇数节点,因为你5台机器可以挂2台,6台机器也是挂2台,不能超过一半的机器挂掉,所以5台和6台效果一致,那奇数节点可以减少机器开销,小集群部署,读多写少2. 主从架构: Leader 、 Follower 、 Observer (一般刚开始没必要用)3. 内存数据模型:Znode,多种节点类型4. 客户端跟 ZooKeeper 进行长连接,TCP,心跳,维持 Session5. Zxid ,高32位,低32位。
2023-01-29 19:08:47
2476
1
原创 将datax做成docker镜像
# 1. 拉取python环境镜像到本地docker pull centos/python-27-centos7# 2.上传jdk和datax到环境到本地环境中[datax_docker]# lsdatax.tar.gz Dockerfile jdk.tar.gz# 3. 编写相应的DockerfileFROM centos/python-27-centos7#安装jdkADD jdk.tar.gz /opt/localENV JAVA_HOME /opt/local/jd.
2020-12-21 18:01:58
3686
原创 Harbor搭建使用
1. 下载地址https://github.com/goharbor/harbor/releases2.创建https证书# 创建证书目录,并赋予权限mkdir -p /data/cert && chmod -R 777 /data/cert && cd /data/cert# 生成私钥,需要设置密码openssl genrsa -des3 -out harbor.key 2048# 生成CA证书,需要输入密码openssl req -...
2020-12-15 18:12:23
406
原创 linux yum安装jenkins
1. 首先进入到jenkins官网# 首先进入jenkins官网点击download,以及选择centos# 1. 加载jenkins yum库sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key# 2. 使用yum下载jenkinsy.
2020-12-15 16:44:57
523
原创 docker安装jenkins
# 1. 首先使用docker从中央仓库拉取jenkins镜像docker pull jenkins# 2. 启动jenkins镜像docker run -p 8080:8080 -p 50000:50000 -d -v /home/jenkins-home-docker:/var/jenkins_home jenkins/jenkins:lts# 3. 如果有权限问题用以下方式处理docker@default:~$ docker run -ti --rm --entrypoint="/b.
2020-12-15 16:01:17
141
原创 docker compose yaml编写规则
yaml规则docker-compose.yaml核心# 3层# 第一层# 版本version: '' # 第二层 # 服务service: 服务1:web服务 # 服务配置(docker容器配置) images build network ..... 服务2:redis服务# 第三层# 其他配置 网络/全局规则volumes:network:configs:# 在s
2020-12-15 13:45:11
702
原创 Docker Compose详解
1. 简介DockerDockerFile build run 手动操作,单个容器微服务,100个微服务,依赖关系Docker Compose来轻松管理容器,定义运行多个容器官方简介定义运行多个容器,需要一个yuml配置文件使用Compose三步骤1. 使用Dockerfile保证我们的项目可以在任何地方可以运行2. 定义一个服务(应用)在docker-compose.yml,它可以运行在隔离的环境中3. 使用docker-compose up命令来启动dock
2020-12-15 10:44:03
300
原创 docker使用以及自定义镜像
docker使用1. docker安装mysql镜像并使用# 首先去镜像仓库找到对应版本的mysql镜像地址 http://hub.daocloud.io# 就会进入到如下页面,输入我们想要的镜像名# 点击版本就会有我们mysql的所有版本信息# 点击拉取,就可以有具体的仓库镜像地址# 然后使用以下命令进行拉取对应版本mysqldocker pull daocloud.io/library/mysql:5.7.6 # 下载完毕,使用以下命令来查看是否下载成功docke...
2020-12-14 15:27:56
756
1
原创 docker入门下载以及基础操作
目录1. docker基本操作1.1 下载安装docker1.2 docker中央仓库1.3镜像的操作1.4 容器的操作1. docker基本操作1.1 下载安装docker# 1. 下载关于Docker的依赖环境yum -y install yum-utils device-mapper-persistent-data lvm2# 2. 设置一下下载Docker的镜像源yum-config-manager --add-repo http://mirrors.a.
2020-12-14 12:56:18
271
原创 protoBuf使用
下载protobuf下载地址:https://github.com/google/protobuf/releases选择protoc-xxx-win32.zip下载配置环境变量将解压出来的protoc.exe放在一全英文路径下,并把其路径名放在windows环境变量下的path下。用";" 半角分号隔开然后测试就可以用了接下来便是.proto文件转换为.j...
2020-01-17 17:04:38
368
原创 java中list T 和 list 问号
List<T>可以进行诸如add、remove等操作,因为它的类型是固定的T类型,在编码期 不需要进行任何的转型操作。List<?>是只读类型的,不能进行增加、修改操作,因为编译器不知道List中容纳的是 什么类型的元素,也就无毕校验类型是否安全了,而且List<?>读取出的元素都是Object类 型的,需要主动转型,所以它经常用于泛型方法的返回值。注意,L...
2019-12-20 14:29:47
1269
原创 git workspce.xml问题
在git提交的时候,有一些文件是不需要提交的,比如.idea文件夹下的东西,如果这个提交的话,会出现冲突问题,所以我们提交的时候应该忽略这个文件在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件)然后在文件中加入.idea就会忽略这个文件...
2019-12-05 11:55:09
213
原创 idea中maven Dependencies报错
1. 首先排查是否是对应得包没有下载,查看是否有.lastUpdate结尾得文件,如果有重新下载2. 如果对应得包都下载成功,那么就把.xml文件中得依赖删除,进行一次更新,然后再拷入xml再进行更新...
2019-11-14 16:25:32
1268
1
原创 idea plugins红线报错
如果不是没有下载好对应得包 那么就把.lastUpdate,然后重新下载如果是下载好对应得包了,那么就进入到model setting中,全部删除然后更新就不会出现这种情况了...
2019-11-14 16:16:35
356
原创 springboot下载依赖包
1.环境变量自己配置,2.配置阿里云镜像和本地仓库 <localRepository>D:\Apache\maven\repository</localRepository><mirror> <id>alimaven</id> <name>aliyun maven&l...
2019-11-14 15:59:31
3204
原创 idea 将tab键修改为4个空格,将换行符换成Unix格式
进入到idea中得控制面板Setting(Project Settings)->Code Style->General 在右侧的面板中,将tab改为4个空格Schema 那里选择Project,在下面把 Use tab character的勾选去掉...
2019-11-13 10:46:06
2873
原创 nohup和&的区别
&: 指在后台运行nohup: 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出那么,我们可以巧妙的吧他们结合起来用就是nohu...
2019-07-14 13:22:20
354
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人