当前位置: 首页 > news >正文

FLink学习(三)-DataStream

一、DataStream

1,支持序列化的类型有

  • 基本类型,即 String、Long、Integer、Boolean、Array
  • 复合类型:Tuples、POJOs 和 Scala case classes

Tuples

Flink 自带有 Tuple0 到 Tuple25 类型

Tuple2<String, Integer> person = Tuple2.of("Fred", 35);// zero based index!  
String name = person.f0;
Integer age = person.f1;

POJOs

Flink 可识别为 POJO 的条件如下

  • 该类是公有且独立的(没有非静态内部类)
  • 该类有公有的无参构造函数
  • 类(及父类)中所有的所有不被 static、transient 修饰的属性要么是公有的(且不被 final 修饰),要么是包含公有的 getter 和 setter 方法,这些方法遵循 Java bean 命名规范。

2,flink 执行数据流向

DataStream API 将构建为一个 job graph,并附加到 StreamExecutionEnvironment 。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上,后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task slot 中执行。

3,常见 Source

  • env.fromElements

通过一个一个元素组成,e.g.

DataStream<Person> flintstones = env.fromElements(new Person("Fred", 35),new Person("Wilma", 35),new Person("Pebbles", 2));
  • env.fromCollection

直接使用集合构成 

List<Person> people = new ArrayList<Person>();people.add(new Person("Fred", 35));
people.add(new Person("Wilma", 35));
people.add(new Person("Pebbles", 2));DataStream<Person> flintstones = env.fromCollection(people);
  • env.socketTextStream("localhost", 9999)

通过网络端口获取

  • env.readTextFile("file:///path");

通过具体文件获取

4,基本的 sink

xxxx.print()等等

在生产中,常用的 sink 包括各种数据库和几个 pub-sub 系统。

相关文章:

  • 零长数组,whatwhy
  • Java面试宝典
  • JS-11A/11时间继电器 板前接线 JOSEF约瑟
  • 详细介绍如何利用 A star(A*)算法解决8数码问题
  • 基于Java,SSM,html,Vue在线视频播放管理系统网站设计
  • Windows通过git配置github代码仓库全流程
  • Android compose 使用指纹验证
  • GDAL升级到3.0之后遇到的坑
  • MySQL与SQLite区别
  • 【Frida】【Android】 07_爬虫之网络通信库HttpURLConnection
  • 【并发编程】CountDownLatch
  • 多线程中常用的一些方法介绍
  • Mongodb中一个小巧的数据更新命令$inc
  • Arraylist,TreeSet,TreeMap的增删改查及遍历
  • 自我认识的方法模型图
  • [笔记] php常见简单功能及函数
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • 77. Combinations
  • Android框架之Volley
  • Docker 笔记(2):Dockerfile
  • isset在php5.6-和php7.0+的一些差异
  • Javascript 原型链
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java-详解HashMap
  • maven工程打包jar以及java jar命令的classpath使用
  • MaxCompute访问TableStore(OTS) 数据
  • maya建模与骨骼动画快速实现人工鱼
  • mysql常用命令汇总
  • Spark学习笔记之相关记录
  • SpringBoot 实战 (三) | 配置文件详解
  • TypeScript迭代器
  • Web Storage相关
  • 阿里云应用高可用服务公测发布
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 给Prometheus造假数据的方法
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 数据仓库的几种建模方法
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $().each和$.each的区别
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (二十四)Flask之flask-session组件
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (三)mysql_MYSQL(三)
  • .jks文件(JAVA KeyStore)
  • .NET BackgroundWorker
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法