Flink API
一、Flink API
1、DataSet:对静态数据进行批处理操作、将静态数据抽象成分布式数据集,使用Flink各种操作符处理数据,支持 Java 、Scala、Python
2、DataStream:对数据流进行流处理操作,将流式的数据抽象成分布式数据流,用Flink 各种操作符处理数据流,支持 Java、Scala
3、Table API:对结构化数据进行查询操作,将结构化数据抽象成关系表。并通过类SQL的DSL对关系表进行各种查询操作,支持 Java、Scala.
二、反压机制
概念理解:通常是由于某段时间内源头数据量的暴涨,导致任务处理数据的速度远远小于源头数据的流入速度。
导致问题:这种情况会导致流任务的内存越积越大,可能导致资源耗尽甚至系统崩溃。
不同流计算引擎,处理方式不同:
storm:通过监控 process bolt 中接收队列负载情况来处理反压,即当超过高水位值,就将反压信息写到Zookeeper,
由zookeeper 的watch 通知worker 进入反压状态,最后spout 停止发送 tuple。
Spark Streaming:设置属性"spark.streaming.bachpressure.enabled" 进行自动反压,即动态控制数据接收速率来适配集群
数据处理能力。
Flink:不需要设置,自动处理反压,即每个组件都有对应的分布式阻塞队列,只有队列不满的情况,上游才发数据,
较慢的接受者会自动降低发送速率,如果队列满了(有界队列),发送者会阻塞。
Flink API的更多相关文章
- idea中flink启动报错org.apache.flink.api.common.ExecutionConfig$GlobalJobParameters
启动时出现如下报错: Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.common.ExecutionConfig$ ...
- Flink学习笔记:Flink API 通用基本概念
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- flink启动报错:java.lang.NoSuchMethodError: org.apache.flink.api.java.ClosureCleaner.clean(Ljava/lang/Object;Z)V
这是因为pom文件引入的flink相关依赖设置成了provided 作用域 要嘛把这个去掉 但是如果是IDEA的话 可以更简单的操作 把这个打勾保存 接着重新启动main方法即可
- Flink Program Guide (2) -- 综述 (DataStream API编程指导 -- For Java)
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Flink Program Guide (1) -- 基本API概念(Basic API Concepts -- For Java)
false false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-n ...
- flink学习笔记:DataSream API
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- 使用flink Table &Sql api来构建批量和流式应用(1)Table的基本概念
从flink的官方文档,我们知道flink的编程模型分为四层,sql层是最高层的api,Table api是中间层,DataStream/DataSet Api 是核心,stateful Stream ...
- flink dataset api使用及原理
随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...
- Flink之state processor api原理
无论您是在生产环境中运行Apache Flink or还是在过去将Flink评估为计算框架,您都可能会问自己一个问题:如何在Flink保存点中访问,写入或更新状态?不再询问!Apache Flink ...
随机推荐
- java网络编程基础——TCP网络编程二
1.半关闭的Socket 前面的服务器和客户端通信时总是以行为最小数据单位,但是在某些协议里,通信的数据单位可能是多行的,当出现多行数据时就 出现一个问题:Socket输出流如何表示输出数据已经结束. ...
- xshell工具使用
一.下载安装 参考见:https://www.bilibili.com/video/BV1hh411k7vy?from=search&seid=2244124597826079746 流程: ...
- 5Java基础整理
1.API:Application programming interface 举例:System类中的 public static void arraycopy(int[] src,int srcP ...
- tomcat日志详解
1 tomcat 日志详解 1.1 tomcat 日志配置文件 tomcat 对应日志的配置文件:tomcat目录下的/conf/logging.properties. tomcat 的日志等级有:日 ...
- Github上比较全的学习路线
github地址:https://github.com/kamranahmedse/developer-roadmap/blob/master/translations/chinese
- jvm源码解读--20 结合jvm源码理解 java 设计模式 模板方法
write by 张艳涛 前言: 在学习jvm之前,看过设计模式的书,知道模板方法的设计模式,今天在看java并发编程的艺术里面关于AbstractQueuedSynchronizer 用法,这个就使 ...
- vant vue 屏幕自适应
手机端 pc端 屏幕自适应 一.新建 vue.config.js项目目录中没有 vue.config.js 文件,需要手动创建,在根目录中创建 vue.config.js const pxtorem ...
- windows10激活方法
原文转自:http://www.ylmfwin100.com/ylmf/8643.html 现在市面上大致有两种主流激活方法,一种是通过激活码来激活,另外一种是通过激活工具来激活.但是激活工具有个弊端 ...
- Python - dict 字典的多种遍历方式
前置知识 for 循环详解:https://www.cnblogs.com/poloyy/p/15087053.html 使用 for key in dict 遍历字典 可以使用 for key in ...
- linux ifconfig不可用
Q: A: 源出问题,修改源:进入源:源地址 /etc/apt/ sudo vi sources.list,将下列内容替换sources.list中的内容,并保存 deb http://mirrors ...