自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

VinoYang的专栏

工作总结 & 技术框架/源码解读

  • 博客(212)
  • 资源 (21)
  • 收藏
  • 关注

原创 Flink即将在1.7版本发布全新的Kafka连接器

最近我们向Flink社区贡献了一个全新的Kafka连接器(https://github.com/apache/flink/pull/6703),关联JIRA issue FLINK-9697。它包含了近6000行代码变更,经历了社区近100次的review讨论与评论。这一大特性即将会随Flink 1.7一起发布。这一特性也得到了一众Flink PMC的赞赏:现状与问题Apache Kafk...

2018-10-20 09:50:18 11365 1

原创 Flink扩展 Table/SQL Scalar 函数的实现

overview本文档以TO_BASE64函数为例,介绍如何实现、扩展Flink Table&SQL Scalar function。使用方式自定义的Scalar函数有多种使用方式,我们以测试代码来了解一下,具体是如何使用的: @Test def testToBase64(): Unit = { testAllApis( 'f0.toBas...

2018-08-12 13:48:39 2782

原创 Why EdgeX 弃 Java 转 Go

历史背景这里给不了解历史的同学先介绍一下背景。EdgeX的前身是Dell的Fuse项目(它是一个开源的物联网平台,包含超过12个微服务以及125000行净代码量),后由Dell将源码捐赠给Linux基金会并发起了EdgeXFoundry。说得更直白一点,Fuse(也即EdgeX早期)主要是基于Java语言(JVM平台)来实现的,微服务采用的是Spring Boot来构建。但到目前为止,已基...

2018-05-05 13:59:57 3871

转载 Flink 1.5版本的“Task本地恢复”实现摘要

overview解读Flink 1.5版本的“task本地恢复”feature的实现。 随着时间的推移,Flink有些模块的代码复杂度已经很高了(比较典型的就是状态&容错这块)。因为考虑到兼容历史实现的问题,类在快速增长。实现关于本地恢复的配置,封装在名为LocalRecoveryConfig的类中,该类可提供本地恢复模式的查询(也即LocalRecoveryMo...

2018-03-07 19:15:12 2288

原创 Flink 1.5版本网络栈重构技术分析

overview基于Flink近期的官方声明,明年的1.5版本将会发布三个较大feature,其中之一就是对于网络栈的重构。具体而言,就是将基于配置的、固定间隔的网络I/O改进为基于事件驱动的I/O。这种改进预期将会带来如下这些优势:提供应用程序级别的流控,以更好地处理反压(backpressure);降低Flink的网络延迟;更好地处理检查点的对齐(alignments);当bu...

2018-02-11 10:33:36 2290 1

原创 Uber Athenax项目核心技术点剖析

本文剖析一下Uber Athenax项目的核心技术点。AthenaX是一个流式分析平台,它可以让用户运行SQL来进行大规模可扩展的流式分析。由Uber开源,具备扩展到上百台节点处理日均千亿级别的实时事件。

2017-11-19 12:00:33 6183 2

翻译 Foundations of streaming SQL

streaming & table

2017-11-05 19:03:12 1495

原创 Flink关系型API的公共部分

关系型程序的公共部分下面的代码段展示了Table&SQL API所编写流式程序的程序模式

2017-07-13 22:31:35 3464

原创 Flink关系型API简介

在接触关系型API之前,用户通常会采用DataStream、DataSet API来编写Flink程序,它们都提供了丰富的处理能力,以DataStream为例,它有如下这些优点:

2017-07-06 22:52:34 3466 1

原创 Flink批处理中的增量迭代

对某些迭代而言并不是单次迭代产生的下一次工作集中的每个元素都需要重新参与下一轮迭代,有时只需要重新计算部分数据同时选择性地更新解集,这种形式的迭代就是增量迭代。

2017-06-13 23:38:46 6711 2

原创 Flink-Table-SQL系列之source

source作为Table&SQL API的数据源,同时也是程序的入口。当前Flink的Table&SQL API整体而言支持三种source:Table source、DataSet以及DataStream,它们都通过特定的API注册到Table环境对象。

2017-06-12 22:56:32 10575 3

原创 谈谈EventTime以及Watermark

EventTime,ProcessingTime,Watermark,out-of-order..

2017-06-09 09:58:07 7289 4

原创 Flink批处理优化器之数据属性

在一段时间之前我们已介绍过IP(Interesting Property)对于优化器的意义以及它将对优化器的优化决策产生的影响。本篇我们将介绍Flink的批处理优化器中涉及到的所有的IP,我们将其统称为数据属性。后续我们会介绍Flink如何为优化器节点计算IP,并在之后的“剪枝”(pruning)阶段发挥作用。

2017-04-09 22:17:06 2501

原创 Flink批处理优化器之范围分区重写采用算法

采样算法上一篇我们分析了RangePartitionRewriter的数据处理分支,接下来我们开始分析采样分支,采样分支的核心在于采样算法。因为范围分区输入端每个分区的数据量无从得知,也就是说我们无法得出采样比例。

2017-04-07 18:42:47 4108 2

原创 Flink批处理优化器之范围分区重写

为最终计划应用范围分区重写Flink的批处理程序允许用户使用partitionByRange API来基于某个(或某些)字段进行按范围分区且可以选择性地指定排序顺序,示例代码如下:

2017-04-05 21:27:47 4712 1

原创 Flink运行时之客户端提交作业图-下

submitJob方法分析JobClientActor通过向JobManager的Actor发送SubmitJob消息来提交Job,JobManager接收到消息对象之后,构建一个JobInfo对象以封装Job的基本信息

2017-04-02 20:08:27 7698

原创 Flink运行时之客户端提交作业图-上

客户端提交作业图作业图(JobGraph)是Flink的运行时所能理解的作业表示,无论程序通过是DataStream还是DataSet API编写的,它们的JobGraph提交给JobManager以及之后的处理都将得到统一。本篇我们将分析客户端如何提交JobGraph给JobManager。

2017-03-31 21:13:57 7231 2

原创 Flink批处理优化器之成本估算

成本估算在基于成本的优化器中,成本估算非常重要,它直接影响着候选计划的生成。在Flink中成本估算依赖于每个不同的运算符所提供的自己的“预算”,本篇我们将分析什么是成本、运算符如何提供自己的预算以及如何基于预算估算成本。

2017-03-28 22:56:34 5823

原创 Flink-CEP之模式流与运算符

之前我们分析了CEP的API,接下来我们将分析CEP API的内部实现包括模式流与运算符。模式流模式流(PatternStream)是CEP模式匹配的流抽象,一个PatternStream对象表示模式检测到的序列所对应的流。该序列以映射来表示,以模式名关联一组事件对象。

2017-03-16 23:17:45 6024

原创 Flink-CEP之NFA编译器

NFAbNFA ^ b编译器的作用是将模式对象编译成NFA或者NFAFactory(用来创建多种NFA对象)。这个编译的过程,需要对模式进行拆分从而构建状态以及根据条件构建状态转换信息,最终根据构建好的状态集合来创建NFA。示意图如下:

2017-03-11 22:14:15 2434

原创 Flink-CEP之NFA

NFAbNFA ^ b模型包含两个阶段:第一个阶段是模式匹配阶段,在这个阶段它将会向最终态过渡并随着事件被选择而扩展缓冲区;第二个阶段是匹配提取阶段,该阶段发生在超时或者到达最终态时,将会从缓冲区中检索所产生的匹配。

2017-03-09 23:25:28 4847

原创 Flink-CEP之带版本的共享缓冲区

带版本的共享缓冲区当股票模式以一个事件流作为输入时,状态转换将会作用于事件流从而引起事件的状态变化。结合窗口对参与匹配的事件的限制以及模式中结合事件上下文(状态)的过滤条件,同一事件流随着时间的流动或者多次运行都会产生多种不同的匹配结果。

2017-03-05 23:30:39 3688 1

原创 Flink-CEP论文与源码解读之状态与状态转换

Flink CEP的论文与设计Flink的CEP设计与实现重度参考了论文《Efficient Pattern Matching over Event Streams》。下面我们就来结合论文谈谈Flink CEP的设计。

2017-03-03 22:12:39 5316 1

原创 Flink之CEP案例分析-网络攻击检测

上一篇我们介绍了Flink CEP的API,这一篇我们将以结合一个案例来练习使用CEP的API编写应用程序,以强化对API的理解。所选取的案例是对网络遭受的潜在攻击进行检测并给出告警。当下互联网安全形势仍然严峻,网络攻击屡见不鲜且花样众多,这里我们以DDOS(分布式拒绝服务攻击)产生的流入流量来作为遭受攻击的判断依据。

2017-03-01 22:13:32 11127 7

原创 Flink之CEP-API简介

CEP API的核心是Pattern API,它允许你快速定义复杂的事件模式。每个模式包含多个阶段(stage)或者我们也可称为状态(state)。为了从一个状态切换到另一个状态,用户可以指定条件,这些条件可以作用在邻近的事件或独立事件上。

2017-02-28 23:23:38 9375

原创 Flink运行时之生成作业图

生成作业图在分析完了流处理程序生成的流图(StreamGraph)以及批处理程序生成的优化后的计划(OptimizedPlan)之后,下一步就是生成它们面向Flink运行时执行引擎的共同抽象——作业图(JobGraph)。

2017-02-21 22:22:11 7442

原创 Flink运行时之批处理程序生成计划

批处理程序生成计划DataSet API所编写的批处理程序跟DataStream API所编写的流处理程序在生成作业图(JobGraph)之前的实现差别很大。流处理程序是生成流图(StreamGraph),而批处理程序是生成计划(Plan)并由优化器对其进行优化并生成优化后的计划(OptimizedPlan)。

2017-02-15 22:11:08 3596 5

原创 Flink批处理优化器之Interesting Properties

Interesting Properties(以下简称IP)用来表述在对生成的计划进行分析时一些可能对优化产生重要影响的属性。

2017-02-13 21:36:28 1529

原创 Flink运行时之流处理程序生成流图

DataStream API所编写的流处理应用程序在生成作业图(JobGraph)并提交给JobManager之前,会预先生成流图(StreamGraph)。

2017-02-05 22:11:01 9166 2

原创 Flink运行时之合久必分的特定任务

合久必分的特定任务前面我们谈到了TaskManager对每个Task实例会启动一个独立的线程来执行。在分析线程执行的核心代码时,我们看到最终执行的是AbstractInvokable这样执行体的invoke方法。所谓合久必分,鉴于流处理任务跟批处理任务执行模式上存在巨大的差异,在对AbstractInvokable的实现时,它们将会走向两个不同的分支。

2017-01-26 22:42:08 2243 3

原创 Flink运行时之TaskManager执行Task

TaskManager执行任务当一个任务被JobManager部署到TaskManager之后,它将会被执行。本篇我们将分析任务的执行细节。

2017-01-24 23:07:14 9623 3

原创 Flink运行时之基于Netty的网络通信(下)

这一篇,我们分析一下客户端协议栈中的核心的处理器PartitionRequestClientHandler,该处理器用于处理服务端的响应消息。

2017-01-15 20:28:00 4416

原创 Flink运行时之基于Netty的网络通信中

PartitionRequestClient分区请求客户端(PartitionRequestClient)用于发起远程PartitionRequest请求,它也是RemoteChannel跟Netty通信层之间进行衔接的对象。对单一的TaskManager而言只存在一个NettyClient实例。

2017-01-12 22:34:32 5038

原创 Flink运行时之基于Netty的网络通信上

概述本文以及接下来的几篇文章将介绍Flink运行时TaskManager间进行数据交换的核心部分——基于Netty通信框架远程请求ResultSubpartition。作为系列文章的第一篇,先列出一些需要了解的基础对象。

2017-01-08 15:03:28 6929 1

原创 Flink运行时之结果分区消费端

结果分区消费端在前一篇,我们讲解了生产者分区,生产者分区是生产者任务生产中间结果数据的过程。消费者任务在获得结果分区可用的通知之后,会发起对数据的请求。

2017-01-05 09:09:26 3722 1

原创 Flink运行时之生产端结果分区

生产端结果分区生产者结果分区是生产端任务所产生的结果。以一个简单的MapReduce程序为例,从静态的角度来看,生产端的算子(Map)跟消费端的算子(Reduce),两者之间交换数据通过中间结果集(IntermediateResult)。

2016-12-30 22:05:43 6903 3

原创 Flink运行时之通信层API

上图中红框部分即为通信层API。通信层API通信层API介于任务执行与通信细节之间,主要用于对上层任务执行提供记录的读写服务同时屏蔽底层的通信细节。主要包括三个部件:将记录写入结果分区的写入器、将数据从输入网关中读出并反序列化为记录的读取器以及周旋在记录和二进制的Buffer数据之间对数据表示进行转换的序列化器。

2016-12-28 22:30:07 6161

原创 Flink运行时之统一的数据交换对象

统一的数据交换对象在Flink的执行引擎中,流动的元素主要有两种:缓冲(Buffer)和事件(Event)。Buffer主要针对用户数据交换,而Event则用于一些特殊的控制标识。但在实现时,为了在通信层统一数据交换,Flink提供了数据交换对象——BufferOrEvent。它是一个既可以表示Buffer又可以表示Event的类。

2016-12-20 22:40:06 7563

原创 Flink运行时之网络通信NetworkEnvironment分析

网络环境(NetworkEnvironment)是TaskManager进行网络通信的主对象,主要用于跟踪中间结果并负责所有的数据交换。每个TaskManager的实例都包含一个网络环境对象,在TaskManager启动时创建。NetworkEnvironment管理着多个协助通信的关键部件。

2016-12-14 22:49:50 2510

原创 Flink流处理之迭代任务

前面我们分析过Flink对迭代在流图中的特殊处理,使得迭代中的反馈环得以转化为普通的DAG模型。这一篇我们将剖析运行时的流处理迭代任务的执行机制。这里涉及到两个任务类:

2016-12-12 21:21:00 4241 1

Flink相关的论文(上)

Flink相关论文

2016-12-21

ApacheCon-ofbiz-2015

apacheCon NA ofbiz slides

2015-04-21

OFBiz track @ Apachecon EU 2014 in Budapest, Hungary Nov 17th - Nov 19th 2014

OFBiz track @ Apachecon EU 2014 in Budapest, Hungary Nov 17th - Nov 19th 2014

2015-02-04

seda eclipse工程可运行版

Staged Event Driven Architecture (SEDA) 是加州大学伯克利分校研究的一套优秀的高性能互联网服务器架构模型

2012-04-03

seda-release

Staged Event Driven Architecture (SEDA) 是加州大学伯克利分校研究的一套优秀的高性能互联网服务器架构模型

2012-04-03

HTML5小车动画

HTML5小车动画

2012-02-02

自实现的Asp.net AJAX框架的ASMX处理器--支持异步调用Web方法

自实现的Asp.net AJAX框架的ASMX处理器--支持异步调用Web方法

2011-12-04

利用javascript缓存页面部件

利用javascript缓存页面部件,参见http://blog.csdn.net/yanghua_kobe

2011-11-27

分布式命令模式类库及Demo

一个可供分布式命令执行的类库 一个非常强大的通信类库,它提供双向的HTTP通信 一个可供直接使用的聊天应用

2011-11-07

C# AOP帮助类

C# AOP帮助类,帮助构建清晰代码, 面向切面编程

2011-10-29

ajax 异步流代理类

一个ajax的异步流代理类,能够支持下载数据流的持续传输,比普通代理类下载数据有更好的性能

2011-10-20

NodeJS中文文档

NodeJS中文文档,翻译自官方文档,包含标准模块在内~~~~

2011-10-15

打包多CSS或JS文件以加快页面加载速度的Handler (asp.net)

将web页面内的多个JS文件、CSS文件请求,批量发送至客户端,减少请求次数,压缩、缓存

2011-10-02

多映射集合类,基于C#的一键多值存储结构

多映射集合类,基于C#的一键多值存储结构,线程安全,类型安全,线程感知等

2011-09-25

多映射集合类

对一个键可以同时存储多个值,类型安全,线程安全,附有测试代码

2011-09-25

asp.net 仿校内淘宝实现点对点通信IM Comet技术API

asp.net 仿校内淘宝实现点对点通信IM Comet技术API

2011-09-04

常被面试的算法试题集

面试中常遇到的算法试题,涉及字符串、文件IO、链表的数据结构问题。

2010-05-16

C#\数据结构(C#语言版).rar

不同于C,C++描述,本书是采用c#描述,对喜欢.NET的同学和熟悉c#的同学会是一个不错的选择

2009-08-24

循序渐进ASP.NET教程

很不错的ASP.NET入门教程,相信对于新手,学起来应该是比较快的。

2009-08-24

SQL2005学习笔记

精炼SQL2005的难解知识点,另附加查询优化

2009-08-19

空空如也

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

TA关注的人

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