自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 Flink源码系列——指标监测

1、Metric简介Flink对于指标监测有一套自己的实现,指标的统计方式有四种,这些指标都实现了Metric这个接口,而Metric这个接口只是一个标识,本身并没有定义如何方法接口,部分子类的继承关系如下所示。 从图中可以看出,Metric这个接口有四个直接子类,分别是: Gauge —— 最简单的度量指标,只是简单的返回一个值,比如返回一个队列中当前元素的个数; Cou...

2018-03-20 14:48:45 8333 4

原创 Flink源码系列——TaskManager处理SubmitTask的过程

接《Flink源码系列——JobManager处理SubmitJob的过程》,在从JobManager中,将SubmitTask提交到TaskManager后,继续分析TaskManager的处理逻辑。 TaskManager是个Actor,混入了LeaderSessionMessageFilter这个trait,所以在从JobManager接收到JobManagerMessages.Leade...

2018-03-16 18:15:42 3504

原创 Flink源码系列——JobManager处理SubmitJob的过程

接《Flink源码系列——获取JobGraph的过程》,在获取到JobGraph后,客户端会封装一个SubmitJob消息,并将其提交给JobManager,本文就接着分析,JobManager在收到SubmitJob消息后,对其处理逻辑。JobManager是一个Actor,其对接受到的各种消息的处理入口是handleMessage这个方法,其中对SubmitJob的处理入口如下:ove...

2018-03-16 15:33:13 6642

原创 Flink源码系列——获取JobGraph的过程

接《Flink源码系列——获取StreamGraph的过程》获取到StreamGraph后,继续分析,如果通过获取到的StreamGraph来转化为JobGraph。转化逻辑在StreamingJobGraphGenerator这个类中,入口是createJobGraph(StreamGraph)方法。先是初始化了一个StreamingJobGraphGenerator的实例,StreamingJ...

2018-03-10 17:41:54 3146 1

原创 Flink源码系列——获取StreamGraph的过程

接着《Flink源码系列——一个简单的数据处理功能的实现过程》一文的结尾继续分析,在完成对数据流的转换操作之后,需要执行任务,这时会调用如下代码:env.execute("Socket Window WordCount");在StreamExecutionEnvironment中,这是一个抽象方法,具体的实现在其子类中,其子类StreamContextEnvironment的实现如下:...

2018-03-09 16:19:06 2038

原创 Flink源码系列——Flink中一个简单的数据处理功能的实现过程

在Flink中,实现从指定主机名和端口接收字符串消息,对接收到的字符串中出现的各个单词,每隔1秒钟就输出最近5秒内出现的各个单词的统计次数。代码实现如下:public class SocketWindowWordCount { public static void main(String[] args) throws Exception { /** 需要连接...

2018-03-08 18:40:05 12067 3

原创 Netty源码系列(2)——ServerBootstrap

先上一段经典使用姿势的样例代码。 EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap b = new ServerBootst

2017-12-24 19:02:57 349

原创 Netty源码分析(1)——Bootstrap

开始之前,还是先贴一段netty客户端的经典使用姿势,如下: try { // 通过无参构造函数,新建一个Bootstrap实例 Bootstrap b = new Bootstrap(); // 设置EventLoop线程组 b.group(new NioEventLoopGroup())

2017-12-24 18:48:59 279

原创 AKKA-源码-Actor的结构设计

这是一个很简单的AKKA的使用实例,功能也很简单,就是创建一个名叫example1的actor,然后向其发送一条消息hello akka,而actor在接受到消息时,将其打印出来。object Example1 extends App { val actorSystem : ActorSystem = ActorSystem.create("exampleSystem") val a

2017-08-12 11:40:11 1203 1

原创 AKKA-源码-mailbox构建的主要逻辑

ActorSystem中的一个变量mailboxes,定义如下:val mailboxes: Mailboxes = new Mailboxes(settings, eventStream, dynamicAccess, deadLetters)MailBoxes的具体定义如下:private[akka] class Mailboxes( val settings: ActorSystem.Se

2017-08-12 11:10:11 4281

原创 AKKA-源码-dispatcher的构建过程

ActorSystem中对dispatcher的定义如下val dispatchers: Dispatchers = new Dispatchers(settings, DefaultDispatcherPrerequisites( threadFactory, eventStream, scheduler, dynamicAccess, settings, mailboxes, default

2017-08-12 10:56:21 1600

原创 Kylin源码解析——Cube构建过程中如何实现降维

-维度简述Kylin中Cube的描述类CubeDesc有两个字段,rowkey和aggregationGroups。@JsonProperty("rowkey")private RowKeyDesc rowkey;@JsonProperty("aggregation_groups")private List<AggregationGroup> aggregationGroups;其中rowkey

2017-06-26 00:00:56 3721 1

原创 Kylin源码解析——从CubingJob的构建过程看Kylin的工作原理

在Kylin中通过数据源、计算引擎、存储之间的相互协作来实现CubeSegment的构建,向Kylin服务端发送构建新的CubeSegment的请求后,会走到JobService的submitJob方法中,CubingJob构建入口如下: job = EngineFactory.createBatchCubingJob(newSeg, submitter);从这里可以看出,CubingJob的构建

2017-06-22 21:48:32 3798 1

原创 logback 日志不输出到指定文件

在使用logback作为日志输出的时候,会遇到日志并没有按照logback.xml中的配置进行输出,出现这一问题的原因,有如下可能。-原因1:与log4j的jar包冲突 采用logback作为日志输出时,不能包含如下依赖,如果加入该依赖,会导致日志都输出到log4j的日志文件中<dependency> <groupId>org.slf4j</groupId> <artifactId

2017-06-13 11:28:28 7842

MPI并行程序设计

由浅入深的详细讲解了MPI的使用,是一本很好的MPI并行编程入门教程,言简意赅,简单明了

2014-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除