- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 Flink的State与Rescale
Flink的State与Rescale本文是关于对flink状态在任务rescale下面对的问题以及解决这些问题的设计以及代码实现状态状态类别flink中的状态主要分为两类, Keyed State和Operator State。其中Opertor State是以Operator 实例为粒度的状态,而Keyed State是以数据的key为粒度的,该key被划分到哪个Operator实例决定了这个Key的state在哪个Operator实例,而一个Operator实例是可以同时管理多个Keyed S
2020-08-09 11:34:50 836
原创 Flink heartbeat逻辑梳理
背景最近看了一个flink相关的issue,主要是在heartbeat来带上TaskManager的status作为payload,主要是为了解决TaskExecutor#updateTaskExecutionState会因为暂时的网络异常原因导致将TM的状态通知到JM失败的问题,如果是terminal state的通知失败会导致JM无法感知TM的结束。具体讨论细节请看issueissue地址: https://issues.apache.org/jira/browse/FLINK-17075flin
2020-07-14 11:28:48 447
原创 flink on yarn启动流程分析
本文主要分析提交一个flink on yarn的任务的流程,以job模式为例子CliFront作为提交命令行的入口一个命令行runJob的整体调用链路如下run -> runProgram -> executeProgram -> ClusterClient.run其中yarn相关的流程就在runProgram方法中// 获取激活的customCommandLinefinal CustomCommandLine<?> customCommandLine =
2020-07-01 20:04:23 593
原创 Flink本地启动模式用户代码逻辑转换逻辑追踪
Flink本地启动模式用户代码逻辑转换逻辑追踪client部分CliFront作为提交命令行的入口本地模式run调用链路run -> runProgram -> executeProgram -> ClusterClient.run -> prog.invokeInteractiveModeForExecutionExecutionEnvironment部分接下来就是用户代码里的逻辑了,以本地运行为例首先是执行用户调用的DataStream中的各种map re
2020-07-01 13:22:59 586
原创 Flink rest接口查询metric的整体链路
Flink metrics最近根据flinkUI的接口追踪了一下blink的metric信息的查询过程,在这里记录一下入口首先我这里的入口指的是flink UI中的/jobs/:jobid这个rest接口,具体处理逻辑是在JobDetailsHandler,JobDetailsHandler的注册以及与path的绑定可以看WebMonitorEndpoint部分,这一块不是本文的具体内容,其中查询的逻辑为JobDetailsHandler.handleRequest。protected JobDet
2020-06-10 20:42:58 692
原创 jstorm源码阅读汇总(一)
jstorm源码阅读汇总(一)将最近阅读jstorm的源码笔记汇总一下,主要包括jstorm的task,jstorm网络通讯,jstorm限流部分的代码jstrorm tasktask是storm中任务的实质,也就是业务逻辑的载体,首先Task实现了Runnable接口,那我们大致可以猜到task实际是在一个线程中不断了执行某些程序,看一下重写的run方法public void r...
2018-08-18 10:53:28 1222 1
原创 源码阅读——hadoop yarn之AsyncDispatcher
最近看了读到了关于hadoop中yarn的编程模型的文章 http://dongxicheng.org/mapreduce-nextgen/programming-model/,想深入了解下它的事件机制是怎么实现的,就看了看其中的AsyncDispatcher类的源码,幸好该类涉及到的其它类不多,读起来也不算吃力我们先来看其继承关系,AsyncDispatcher继承了AbstractServ...
2018-05-20 18:48:58 433
原创 自定义简单协议
闲言:关于mesos的学习,因为某些原因(我的性能好的台式暂时不可用了)而搁置,搁置时间不定最近在对接某个第三方的socket接口的时候,对与这种写socket服务完全不考虑粘包拆包的操作完全绝望了,所以写一下粗浅的关于如何自定义协议,以及编写可处理粘包拆包的编解码器。关于tcp粘包拆包的概念请查阅其它博客个人认为想能解决拆包和粘包问题,根本的途径就是知道消息有多长。大致常用的方法就是消息...
2018-05-20 15:48:17 862 1
原创 mesos入门(四)——docker应用的部署
简易的docker应用部署以及修改了部分启动脚本的bugbug修改在启动了marathon后,我在mesos的webUI上发现marathon一直处于inactive状态,后来想了想,marathon是放在启动master的脚本中了,当它启动时,slave/agent还未启动,所以才会导致framework呈现未激活的状态,所以将在mesos上运行的framework的启动单独做成一个...
2018-04-08 11:52:31 896
原创 mesos入门(三)—— HA模式
搭建高可用的mesos时对原来的项目还是有很大规模的修改的,同时还修改了一些以前遗留的bug简介机器环境[all]192.168.50.4192.168.50.5192.168.50.6192.168.50.7[master]192.168.50.4192.168.50.5192.168.50.6[slave]192.168.50.4192.168.5...
2018-03-30 14:57:58 579
原创 mesos入门(二)——简单环境搭建
上一篇文章我们了解了mesos解决的问题以及其大致的原理,这篇文章就开始实战搭建一个mesos实战环境简介具体地址+操作: https://github.com/ncuwaln/mesos-learn环境搭建我们采用vagrant来最大程度的模拟真实环境,采用ansible来进行分布式自动运维环境组成:mesos+docker+marathon,目前暂时只是单master,单z...
2018-03-25 17:45:36 2544
原创 Mesos入门(一)——白皮书阅读
学习mesos前先看看它的白皮书,对它有一个整体上的认知mesos解决的问题mesos的出现主要解决的问题是资源的粒度划分问题,当你在一个集群上跑多个不同的分布式计算框架时,你的资源分配的粒度基本都是以机器作为粒度的,而mesos上则是可以将一台机器分为更加细的粒度原理设计图:http://mesos.apache.org/documentation/latest/archit...
2018-03-23 22:17:00 955
原创 spring的webflux初探
spring的webflux初探不久前, spring进行了较大的改动, 主要目的是为了增加对响应式编程的支持. spring 默认是采用了reactor项目作为响应式编程(reactive programming)的支持, 我也以此作为基础来谈. reactor项目地址: https://github.com/reactor/reactor为什么要reactor总的来说, r
2018-01-31 21:34:18 23749 4
原创 docker搭建kafka
分布式爬虫框架的部分功能已经开发的差不多了,现在要开始考虑接入kafka了. kafka依赖于zookeeper, 所以同时需要安装zookeeper dockerfile-kafka如下 FROM java:8u111-jdkMAINTAINER stcoderRUN apt-get updateRUN apt-get -y install wget
2017-11-29 22:04:34 965
原创 akka分布式爬虫框架(一)——设计思路与demo
最近在学习akka,在读了一下解析actor model的文章以及熟悉了一下官方文档的例子的后我觉得需要一个项目来帮我进一步熟悉akka与scala编程,进过一番思索,我觉得akka可以用来实现一个分布式爬虫框架。 设计思路1. 依赖的库, http请求方面使用async-http-client,链接:https://github.com/AsyncHttpCli
2017-11-05 14:22:39 1492
原创 面试中遇到的有趣的小问题
频繁地malloc与free内存会有什么问题 频繁的malloc与free会造成内存碎片化的问题,从而无法进行大容量内存的分配,当然,有的库对此进行了优化,比如glibc,free掉的内存不会立即返还给操作系统,而是先给空闲内存链表,然后当再次进行malloc时会先从空闲内存链表中寻找合适的内存块。可以看看这个:http://www.valleytalk.org/wp-content/uploa
2017-10-10 22:42:53 1406
原创 深入java虚拟机读书笔记——类加载与方法调用中的分派机制
类的生命周期 加载->验证->准备->解析->初始化->卸载->使用 验证+准备+解析统称为链接 解析过程不确定何时开始,其它的开始顺序固定 这只是开始顺序,不是执行完顺序 类的初始化前提 有且只有以下情况会进行类的初始化(请注意,是类的初始化,不是对象的初始化。) 1. 实例化对象,调用静态方法,读取或设置一个静态字段(非final),官方说
2017-10-05 12:27:43 255
原创 深入理解java虚拟机读书笔记——基础知识篇
运行时数据区 程序计数器:同CPU的程序计数器,存储字节码运行到哪了 栈:分为java虚拟机栈与本地方法栈,两个栈功能类似,java虚拟机栈用于java方法,本地方法栈用于native方法,即通过java调用其它语言的方法的栈 堆:用于存放对象的实例 方法区:存储加载了的类,静态变量,常量,以及即时编译后的代码的地方 直接内存:绕过java虚拟机直接操作本机内存,如N
2017-10-02 23:23:03 237
原创 deepin下安装docker-ce
系统版本:Deepin 4.9.8-4 (2017-04-17) x86_64 GNU/Linux debian安装教程网址: https://store.docker.com/editions/community/docker-ce-server-debian sudo apt-get -y install \ apt-transport-https \ ca-certi
2017-06-13 23:59:08 3456
原创 Java使用redis+sse实现带频道的网络聊天室
因为某些原因,需要将flask搭建的项目用spring boot重构一遍,其中有一个聊天室的功能,在flask下我采用了flask-sse这个第三方库来实现,该模块采用基于redis的消息订阅系统实现,当然类spring boot下自然没有这个方便的库了,但是spring boot对redis的消息机制的支持还是不错的,所以在看了下相关文档后我觉得可以自己实现一个,接下来就是思路和具体步骤了
2017-06-10 11:26:12 2820
原创 rust所有权理解(备忘)
最近闲的没事,就准备学习一下rust。rust是Mozilla开发的一门编程语言。rust是为了多核系统而设计的一门编程语言,它因其特殊的机制有线程安全性,编译期查出内存错误的优点,可能语法有着那么点另类,但我想这不是问题。至于它和另外一门编程语言GO的优缺点,请自行了解,因为我也是小白,并不敢发表什么高见。本文只是用自己的语言再次理解了一些rust的所有权机制,官方的文档应该比我更加详尽
2017-04-27 17:56:01 1976
原创 sqlalchemy 这原生sql中绑定list
这项目中有在一定范围内进行更新的要求,所以直接使用sqlalchemy执行sql语句进行更新,但是发现list无法绑定到参数上。Stack Overflow上查询到了解决方案,将list转成tuple才能进行绑定示例代码id_list=[1, 2, 3]sql = text("UPDATE test SET name='hello' WHERE id in :id_list")db.s
2017-03-29 21:47:16 1390
原创 无法定位序数55于动态链接库zlib1.dll上
需要用libcurl,但是libcurl.dll依赖zlib1.dll,从网上下了多个版本的zlib1.dll都不可用,均显示"无法定位序数55于动态链接库zlib1.dll上"。从官网下源码包编译也失败了,最后在某篇博客下看到一老哥评论,把QQ的直接拿来用就可以了,试了下,真的好了。。。。。
2017-01-19 14:52:41 1312
原创 VS添加第三方C/C++库经验
近日准备学习ffmpeg,自然是准备研究下雷神的100行SDL播放器代码,在进行ffmpeg的VS配置移植时碰到了一些小麻烦,一一道来。由于引入ffmpeg情况比较特殊,除了正常步骤还有别的步骤,详情请参考 http://blog.sina.com.cn/s/blog_6bcde18101011v2h.html 。笔者以SDL的引入作为例子 第三方库一般分为三个部分,头文件,静态链接库与动
2017-01-17 18:44:54 10653
原创 python cookbook读书笔记二
1.slice内置函数 slice函数用于创建一个切片对象,可以用于任何需要切片的地方,这样就可以避免了硬编码切片,因为切片不统一导致的问题>>> sli = slice(2, 12, 2)>>> s = '..h.e.l.l.o....'>>> s[sli]'hello' 2.排序 Python内置了一个排序函数sorted,可以直接用来对可排序的数据类型进行排序
2017-01-16 15:37:52 303
原创 python数据类型(python cookbook读书笔记一)
1.序列赋值 将一个序列中的数赋值给多个变量的语法>>> l = (1, 2, 3, 4)>>> s, a, d, x = l>>> s1>>> a2>>> d3>>> x4如果变量数和序列中值不匹配,会报错>>> l = (1, 2, 3, 4)>>> s, a, d = lTraceback (most recent call last): File "
2017-01-06 21:35:57 221
原创 Python邮件发送
今天要给一堆学弟学妹发送面试通知,因为数量较多,直接写个程序发送算了,然后我选择了Python来写,如果想用Java写的可以考虑去使用Apache Commons Email——http://mvnrepository.com/artifact/org.apache.commons/commons-email。 废话不说,直接上代码import smtplibfrom email.mi
2016-09-16 21:39:50 319
原创 前端学习(三)——CSS的三种写法与优先级
1.style属性中写CSS 样例: CSS写法优先级测试 CSS写法优先级测试 2.在标签中写CSS 样例: CSS写法优先级测试 p{ color: green; font-size: 50px; } CSS写法优先级测试 3.link标签外联样式表 创建文件如下test.html
2016-09-09 00:21:10 1007
原创 前端学习(二)——CSS
1.CSS选择器 选择器可以说是CSS里最为核心的部分,选择器语法如下在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。选择器例子例子描述CSS.class.intro选择 class="intro" 的所有元素。1#id#firstname选择 id="firstname" 的所有元素。1
2016-09-08 23:56:08 220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人