摘要:
0. 背景 本文基于Flink 1.12; 本文将沿着从程序开发到任务执行这条主线涉及到的核心类做简要解析; 1. 代码编写阶段 1.1. DataStream DataStream描述的是具有相同类型的数据流,其提供了多种对流数据进行转换的接口。算子的底层是通过具体的Transformation实 阅读全文
摘要:
0. 说明 本文基于Flink 1.12; 本文是在阅读源码过程结合自己理解所写,不一定正确,欢迎大伙留言指出; 1. 集群部署 1.1. 部署方式 Flink集群部署可以简要的分为以下两种方式: 直接部署在服务器上(物理机、Kubernetes、docker等); 结合其他资源调度框架,如on Y 阅读全文
摘要:
0. 说明 基于Flink 1.12 1. 背景知识 1.1 Actor模型 Flink底层RPC是通过AKKA实现的,AKKA是基于Actor模型实现的框架。下面,将大致介绍一下actor模型。 在Actor模型中,一切事物都是actor,一个actor是一个基本的计算单元,每个actor是完全隔 阅读全文
摘要:
1. 环境 本博客基于window10家庭版,cygwin的的安装过程可以参考这篇**文章**。 本文相对简单,集中在cygwin环境中启动flink时遇到的几个问题。 2. 问题 执行start-cluster.sh脚本报错 原因是脚本编辑生成的window格式,换成Unix就可以了。这个问题涉及 阅读全文
摘要:
1. 环境 window10 家庭版; JDK 1.8 maven 3.2.5 Flink源码 IDEA以及安装scala插件 说明:Flink获取的方式可以参考**阅读GitHub源码的正确打开方式**,通过这种方式可以使用git切换版本以及查看提交记录,极大方便我们根据需要编译flink。 2. 阅读全文
摘要:
1. 背景 最近想在家调试一些基本功能,需要使用到kafka,但不想装虚机,所以想到了安装docker环境,因为电脑桌面为window10家庭版,所以就有了这篇博客,仅记录整体流程。 2. 安装docker 目前网上有很多教程,基本都是可以参考的。 2.1 步骤 window10家庭版安装docke 阅读全文
摘要:
1. 前言 基于Hadoop-3.2 。 1.1. 简介 AsyncDispatcher既是服务也是事件调度器(Eventhandler),如下AsyncDispatcher的定义: public class AsyncDispatcher extends AbstractService imple 阅读全文
摘要:
1. 前言 为了更好分析ApplicationMater启动过程,本篇博客在前言部分将简要介绍一下yarn中重要的两个基础库:服务库和事件库,然后在此基础上,着重分析ApplicationMater的启动过程。 本文基于Yarn 3.2版本,文章较长,谨慎阅读,若是文中有误欢迎留言指出。 1.1. 阅读全文
摘要:
1. Yarn的基本结构 1.1. Yarn的组成结构 Yarn总体是主/从(M/S)结构,ResourceManager(RM)是Master,NodeManager(NM)是Slave,RM负责对各NM上的资源进行统一管理和调度。Yarn主要由ResourceManager、NodeManage 阅读全文
摘要:
1. 简介 本文主要介绍git的使用技巧,git的安装过程可参考网上其他教程。 2. 提交代码命令 提交代码的正常流程如下: git status //查看修改文件 git add [fileName] //添加指定代码,可以连续添加多个,用空格隔开 git commit -m "针对修改或新增的评 阅读全文
摘要:
背景 本文基于JDK 11,主要介绍FutureTask类中的run()、get()和cancel() 方法,没有过多解析相应interface中的注释,但阅读源码时建议先阅读注释,明白方法的主要的功能,再去看源码会更快。 文中若有不正确的地方欢迎大伙留言指出,谢谢了! 1、FutureTask类图 阅读全文
摘要:
前言 本文主要是结合源码去线程池执行任务的过程,基于JDK 11,整个过程基本与JDK 8相同。 个人水平有限,文中若有表达有误的,欢迎大伙留言指出,谢谢了! 一、线程池简介 1.1 使用线程池的优点 1)通过复用已创建的线程,降低资源的消耗(线程的创建/销毁是要消耗资源的)、提高响应速度; 2)管 阅读全文
摘要:
1、前言 Flink作业提交到Yarn上之后,后续的AM的生成、Job的处理过程和Flink基本没什么关系了,但是为大致了解Flink on yarn的Per-Job模式的整体过程,这里还是将这系列博客归到Flink源码阅读系列了,本系列博客计划三篇。 本文着重分析submitApplication 阅读全文
摘要:
前言 近来发现阅读开源项目上手就整最新的代码不合适,缺少项目迭代的具体实现过程,想着若是可以看到针对问题的提交代码就好了,所以就有了本篇博客。 以文主要涉及:如何fork开源项目,如何保证本地仓库代码更新到最新版本。 本文以开源项目Flink为例进行说明。 1、整体流程 fork项目 > 下载本地 阅读全文
摘要:
前言 目的:在单服务器上部署多Elasticsearch实例,并可以使用Kibana。下面过程注重流程,仅给出关键过程的细节。 ElasticSearch 6.8.4 + Kibana 6.8.4,两者版本最好匹配不然会出现告警、报错之类。 下载链接:https://www.elastic.co/c 阅读全文