前言 Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮助读者对Flink有更加深入的了解,对其他大数据系统开发者也能有所裨益.本文假设读者已对MapReduce.Spark及Storm等大数据处理框架有所了解,同时熟悉流处理与批处理的基本概念. 文章转载自:深入理解Flink核心技术 一.Flink简介 Flink核心是一个流式的数据流执行引擎,…
作者:李呈祥 Flink项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多的人关注Flink项目.本文将深入分析Flink一些关键的技术与特性,希望能够帮助读者对Flink有更加深入的了解,对其他大数据系统的开发者也能有所裨益. 注:本文假设读者对MapReduce,Spark及Storm等大数据处理系统有基本了解,同时熟悉流处理与批处理的基本概念.36大数据(http://www.36dsj.com/) Flink简介 Flink的核心是一个流式的数据流…
At Most once,At Least once和Exactly once 在分布式系统中,组成系统的各个计算机是独立的.这些计算机有可能fail. 一个sender发送一条message到receiver.根据receiver出现fail时sender如何处理fail,可以将message delivery分为三种语义: At Most once: 对于一条message,receiver最多收到一次(0次或1次). 可以达成At Most Once的策略: sender把message发…
从Metrics的使用说起 Flink的Metrics种类有四种Counters, Gauges, Histograms和Meters. 如何使用Metrics呢? 以Counter为例, public class MyMapper extends RichMapFunction<String, String> { private transient Counter counter; @Override public void open(Configuration config) { this…
上一篇文章所述的Exactly-Once语义是针对Flink系统内部而言的. 那么Flink和外部系统(如Kafka)之间的消息传递如何做到exactly once呢? 问题所在: 如上图,当sink A已经往Kafka写入了数据,而sink B fail. 根据Flink的exactly once保证,系统会回滚到最近的checkpoint, 但是sink A已经把数据写入到kafka了. Flink无法回滚kafka的state.因此,kafka将在之后再次接收到一份同样的来自sink A的…
1.概念 Task(任务):Task是一个阶段多个功能相同的subTask 的集合,类似于Spark中的TaskSet. subTask(子任务):subTask是Flink中任务最小执行单元,是一个Java类的实例,这个Java类中有属性和方法,完成具体的计算逻辑. Operator Chains(算子链):没有shuffle的多个算子合并在一个subTask中,类似于Spark 中的Pipeline. Slot(插槽):Flink 中计算资源进行隔离的单元,一个Slot中可以运行多个subT…
c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能.有点难理解,于是花时间整理一下自己的理解. 左值.右值 C++中所有的值都必然属于左值.右值二者之一.左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象.所有的具名变量或者对象都是左值,而右值不具名.很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值. 看见书上又将右值分为将亡值和纯右值.纯右值就是c++98标准中右值的概念,…
Flink通过全局快照能保证内部处理的Exactly-once语义 但是端到端的Exactly-once还需要下游数据源配合,常见的通过幂等或者二阶段提交这两种方式保证 这里就来分析一下Sink二阶段提交的Flink源码是如何实现的 本文源码基于Flink1.14 老版本的话看TwoPhaseCommitSinkFunction,现在用SinkWriter逻辑都是差不多的 先来看下我们的主角  org.apache.flink.streaming.runtime.operators.sink.S…
https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-flink/index.html 大数据计算引擎的发展 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展.Spark 的火热或多或少的掩盖了其他分布式计算的系统身影.就像 Flink,也就在这个时候默默的发…
 2016-04-30 22:24:39    Yanjun Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能.现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要支持低延迟.Exactly-once保证,而批处理需要支持高吞吐.高效处理,所以在实现的时候通常是分别给出两套实现方法,或者通过一个独…