![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flink
文章平均质量分 50
爱喝水的绿萝
这个作者很懒,什么都没留下…
展开
-
Flink Sink之JDBC
5.7.3 JDBC自定义sinkFlink之Mysql数据JDBC Connector <= 官方目前没有专门针对MySQL的,我们自己实现就好了这里测试的是连接MySQL。pom依赖(我本地docker里的mysql是8.0.19版本的)<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql<原创 2022-01-22 20:31:23 · 2712 阅读 · 0 评论 -
Flink Sink之Redis
5.7.2 Redisflink-connector-redis查询Flink连接器,最简单的就是查询关键字flink-connector-这里将Redis当作sink的输出对象。 1. pom依赖<!-- Flink 和 redis 连接--> <!-- https://mvnrepository.com/artifact/org.apache.bahir/flink-connector-redis --> <d原创 2022-01-22 20:30:38 · 1920 阅读 · 0 评论 -
Flink Sink之Kafka
Flink之流处理API之SinkFlink没有类似于spark中foreach方法,让用户进行迭代的操作。虽有对外的输出操作都要利用Sink完成。最后通过类似如下方式完成整个任务最终输出操作。stream.addSink(new MySink(xxxx)) 官方提供了一部分的框架的sink。除此以外,需要用户自定义实现sink。5.7.1 Kafkapom依赖<dependency> <groupId>org.apache.flink</gro.原创 2022-01-22 20:29:19 · 817 阅读 · 0 评论 -
Flink数据重分区操作
重分区操作,在DataStream类中可以看到很多Partitioner字眼的类。其中partitionCustom(...)方法用于自定义重分区。java代码:package apitest.transform;import apitest.beans.SensorReading;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environme原创 2022-01-22 20:28:10 · 942 阅读 · 0 评论 -
Flink实现UDF函数之富函数
5.5.3 富函数(Rich Functions)“富函数”是DataStream API提供的一个函数类的接口,所有Flink函数类都有其Rich版本。它与常规函数的不同在于,可以获取运行环境的上下文,并拥有一些生命周期方法,所以可以实现更复杂的功能。RichMapFunctionRichFlatMapFunctionRichFilterFunction…Rich Function有一个生命周期的概念。典型的生命周期方法有:open()方法是rich function的初始化方法,当原创 2022-01-22 20:27:25 · 289 阅读 · 0 评论 -
Flink实现UDF函数
5.5.1 函数类(Function Classes)Flink暴露了所有UDF函数的接口(实现方式为接口或者抽象类)。例如MapFunction, FilterFunction, ProcessFunction等等。下面例子实现了FilterFunction接口:DataStream<String> flinkTweets = tweets.filter(new FlinkFilter()); public static class FlinkFilter implements Fil原创 2022-01-22 20:26:26 · 1021 阅读 · 0 评论 -
Flink(一)入门
1. Flink的特点 事件驱动(Event-driven) 基于流处理 一切皆由流组成,离线数据是有界的流;实时数据是一个没有界限的流。(有界流、无界流) 分层API 越顶层越抽象,表达含义越简明,使用越方便 越底层越具体,表达能力越丰富,使用越灵活 1.1 Flink vs Spark Streaming 数据模型 Spark采用RDD模型,spark streaming的DStream实际上也就是一组组小批数据RDD的集原创 2022-01-21 19:15:16 · 546 阅读 · 0 评论 -
Flink 快速上手——流式数据测试
2.3 流式数据源测试 通过nc -Lp <port>打开一个socket服务,用于模拟实时的流数据 nc -Lp 7777 代码修改inputStream的部分 package com.zch.flink;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.api.java.utils.ParameterTool;import org.apache.flink.stre原创 2022-01-21 19:16:26 · 747 阅读 · 0 评论 -
Flink部署——Standalone模式
3.1 Standalone模式 Flink 中每一个 TaskManager 都是一个JVM进程,它可能会在独立的线程上执行一个或多个 subtask 为了控制一个 TaskManager 能接收多少个 task, TaskManager 通过 task slot 来进行控制(一个 TaskManager 至少有一个 slot) 每个task slot表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么它会将其管理的内存分成三原创 2022-01-21 19:19:23 · 4237 阅读 · 0 评论 -
Flink部署——yarn模式
以Yarn模式部署Flink任务时,要求Flink是有 Hadoop 支持的版本,Hadoop 环境需要保证版本在 2.2 以上,并且集群中安装有 HDFS 服务。3.2.1 Flink on YarnFlink提供了两种在yarn上运行的模式,分别为Session-Cluster和Per-Job-Cluster模式。1. Sesstion Cluster模式Session-Cluster 模式需要先启动集群,然后再提交作业,接着会向 yarn 申请一块空间后,资源永远保持不变。如果资源满了原创 2022-01-21 19:21:03 · 1539 阅读 · 0 评论 -
Flink部署——k8s模式
容器化部署时目前业界很流行的一项技术,基于Docker镜像运行能够让用户更加方便地对应用进行管理和运维。容器管理工具中最为流行的就是Kubernetes(k8s),而Flink也在最近的版本中支持了k8s部署模式。 搭建Kubernetes集群(略) 配置各组件的yaml文件 在k8s上构建Flink Session Cluster,需要将Flink集群的组件对应的docker镜像分别在k8s上启动,包括JobManager、TaskManager、JobManagerService三个原创 2022-01-21 19:21:57 · 1063 阅读 · 0 评论 -
Flink提交作业流程
4.2 任务提交流程ps:上图中7.指TaskManager为JobManager提供slots,8.表示JobManager提交要在slots中执行的任务给TaskManager。上图是从一个较为高层级的视角来看应用中各组件的交互协作。如果部署的集群环境不同(例如YARN,Mesos,Kubernetes,standalone等),其中一些步骤可以被省略,或是有些组件会运行在同一个JVM进程中。具体地,如果我们将Flink集群部署到YARN上,那么就会有如下的提交流程: Fl原创 2022-01-21 19:23:07 · 268 阅读 · 0 评论 -
Flink任务调度原理
任务调度原理 客户端不是运行时和程序执行的一部分,但它用于准备并发送dataflow(JobGraph)给Master(JobManager),然后,客户端断开连接或者维持连接以等待接收计算结果。而Job Manager会产生一个执行图(Dataflow Graph) 当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去原创 2022-01-21 19:24:12 · 768 阅读 · 0 评论 -
Flink支持的数据类型
5.4.1 基础数据类型Flink支持所有的Java和Scala基础数据类型,Int, Double, Long, String, …DataStream<Integer> numberStream = env.fromElements(1, 2, 3, 4);numberStream.map(data -> data * 2);5.4.2 Java和Scala元组(Tuples)java不像Scala天生支持元组Tuple类型,java的元组类型由Flink的包提供,原创 2022-01-22 19:48:12 · 277 阅读 · 0 评论