
Flink
一角钱技术
Java架构师
展开
-
1.3 Apache Flink本地安装
Apache Flink 定义Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。设置:下载并启动FlinkFlink可在Linux,Mac OS X和Windows上运行。为了能够运行Flink,唯一的要求是安装Java 8.x。Windows用户,请查看Windows上的Flin...原创 2019-05-02 21:59:45 · 239 阅读 · 0 评论 -
2.4 Apache Flink Time 与 Window
1. Time在Flink的流式处理中,会涉及到时间的不同概念,如下图所示:Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入Flink的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,...原创 2019-05-20 22:33:21 · 151 阅读 · 0 评论 -
2.2 Apache Flink 运行架构
1. 任务提交流程Flink任务提交后,Client向HDFS上传Flink的Jar包和配置,之后向Yarn ResourceManager提交任务,ResourceManager分配Container资源并通知对应的NodeManager启动ApplicationMaster,ApplicationMaster启动后加载Flink的Jar包和配置构建环境,然后启动JobManager,之后A...原创 2019-05-15 17:04:28 · 151 阅读 · 0 评论 -
2.1 Apache Flink 基本架构
JobManager与TaskManagerFlink运行时包含了两种类型的处理器:JobManager处理器:也称之为Master,用于协调分布式执行,它们用来调度task,协调检查点,协调失败时恢复等。Flink运行时至少存在一个master处理器,如果配置高可用模式则会存在多个master处理器,它们其中有一个是leader,而其他的都是standby。TaskManager处理器:也...原创 2019-05-14 22:39:28 · 116 阅读 · 0 评论 -
1.1 初步认识Apache Flink
流处理技术的演变在开源世界里,Apache Storm项目是流处理的先锋。Storm最早由Nathan Marz和创业公司BackType的一个团队开发,后来才被Apache基金会接纳。Storm提供了低延迟的流处理,但是它为实时性付出了一些代价:很难实现高吞吐,并且其正确性没能达到通常所需的水平,换句话说,它并不能保证exactly-once,即便是它能够保证的正确性级别,其开销也相当大。在...原创 2019-05-14 22:06:37 · 196 阅读 · 0 评论 -
2.3 Apache Flink DataStream API
1. Flink 运行模型以上为Flink的运行模型,Flink的程序主要由三部分构成,分别为Source、Transformation、Sink。DataSource主要负责数据的读取,Transformation主要负责对属于的转换操作,Sink负责最终数据的输出。2. Flink 程序架构每个Flink程序都包含以下的若干流程:获得一个执行环境;(Execution Enviro...原创 2019-05-19 16:26:03 · 397 阅读 · 0 评论 -
1.5 Apache Flink 基本概念 — 编程模型
Flink 数据流编程模型1. 抽象级别Flink 提供了不同级别的抽象,以开发流或批处理作业。最底层级的抽象仅仅提供了有状态流,它将通过过程函数(Process Function)被嵌入到 DataStream API 中。它允许用户可以自由地处理来自一个或多个数据流的事件,并使用一致的容错的状态,除此之外,用户可以注册事件事件并处理时间回调,从而使程序可以处理复杂的计算。实际上,大...原创 2019-05-06 21:25:15 · 207 阅读 · 0 评论 -
1.6 Apache Flink 基本概念 — 分布式Runtime
分布式运行时环境1. 任务与算子链分布式计算中,Flink会将算子(operator) 的子task链式组成tasks,每个task由一个线程执行。把算子链化为tasks是一个非常好的优化:它减少了线程之间的通信和缓冲,而且还能增加吞吐量降低延迟。链化操作的配置详情可参考: chaining docs下图中dataflow有5个subtasks,因此有5个线程并发进行处理。2....原创 2019-05-09 12:40:16 · 174 阅读 · 0 评论 -
1.4 Apache Flink 开发环境搭建
Flink 开发环境部署和配置Flink 是一个以 Java 及 Scala 作为开发语言的开源大数据项目,代码开源在 github 上,并使用 maven 来编译和构建项目。对于大部分开发或使用 Flink 的同学来说,Java、Maven 和 Git 这三 个工具是必不可少的,因此首先需要把这三个工具进行安装和配置。另外,一个强大的 IDE 有助于我们更快的阅读代码、开发新功能以及修复 bu...原创 2019-05-05 21:08:17 · 805 阅读 · 0 评论 -
1.2 什么是Apache Flink?
Apache Flink 定义Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。处理无界和有界数据任何类型的数据都是作为事件产生的,信用卡交易,传感器测量,机器日志或者网站或者移动移动应用程序上的用户交互,所有这些数据都作为流生成。数据可以作为无界或有界流处理:1. 无界流有一...原创 2019-04-29 23:21:47 · 172 阅读 · 0 评论 -
2.5 Apache Flink EventTime与Window
1. EventTime的引入在Flink的流式处理中,绝大部分的业务都会使用eventTime,一般只在eventTime无法使用时,才会被迫使用ProcessingTime或者IngestionTime。如果要使用EventTime,那么需要引入EventTime的时间属性,引入方式如下所示:val env = StreamExecutionEnvironment.getExecutio...原创 2019-05-25 21:49:57 · 278 阅读 · 0 评论