草庐IT

Apache Flink——数据源算子(Source)

前言Flink可以从各种来源获取数据,然后构建DataStream进行转换处理。一般将数据的输入来源称为数据源(datasource),而读取数据的算子就是源算子(sourceoperator)。所以,source就是我们整个处理程序的输入端。Flink代码中通用的添加source的方式,是调用执行环境的addSource()方法:DataStreamstream=env.addSource(...);方法传入一个对象参数,需要实现SourceFunction接口;返回DataStreamSource。这里的DataStreamSource类继承自SingleOutputStreamOpera

Apache Flink——DataStream算子汇总

Transformation数据流转换算子Mapmap可以理解为映射,对每个元素进行一定的变换后,映射为另一个元素。FlatMapflatmap可以理解为将元素摊平,每个元素可以变为0个、1个、或者多个元素。Filterfilter是进行筛选为每个元素评估一个布尔函数,并保留该函数返回true的布尔函数。过滤出零值的过滤器。KeyBy逻辑上将Stream根据指定的Key进行分区,是根据key的散列值进行分区的。在内部,keyBy()是通过哈希分区实现的。有多种指定密钥的方法。此转换返回一个KeyedStream,除其他事项外,还需要使用keyedstate。在以下情况下,类型不能为键:是POJ

书籍1 实战大数据(Hadoop+spark+Flink)1

这本书有8个章节,从基础逐渐展开,但是书籍总共也只有236页,还包含了Hadoop、spark和Flink三个知识点。所以感觉讲得可能不太会很深入。这里毕竟是书籍的阅读部分,所以不管实用性强不强,书上说的这里都大概提一下。首先是第一章节:大数据技术概述1.什么是大数据?简单说就是海量、高增长率和多样化的信息资产。2.大数据平台架构是什么?这里讲得是一般企业的大数据平台的一个组成一般都是5层,数据获取、数据储存、资源的调度管理、数据分析、数据服务与可视化数据获取:数据总体上可以分为结构化和非结构化;结构化数据就可以简单理解为行数据,非结构化数据就是视频啊,图片之类的。来源不同,格式不同,那么获取

【Flink 实战系列】Flink CDC 实时同步 Mysql 全量加增量数据到 Hudi

【Flink实战系列】FlinkCDC实时同步Mysql全量加增量数据到Hudi前言FlinkCDC是基于Flink开发的变化数据获取组件(Changedatacapture),简单的说就是来捕获变更的数据,ApacheHudi是一个数据湖平台,又支持对数据做增删改查操作,所以FlinkCDC可以很好的和Hudi结合起来,打造实时数仓,实时湖仓一体的架构,下面就来演示一下同步的过程。环境组件版本Flink1.15.1Hadoop2.9.0Hudi0.12.0Mysql5.xFlinkCDC2.3.0添加Jar包依赖为了方便演示,这里就直接采用sql-client提交任务的方式,在提交任务之前,

Flink简介

第一章初识Flink大数据开发总体架构大数据开发总体架构数据传输层:常用的数据传输工具有Flume、Sqoop、Kafka。Flume是一个日志收集系统,用于将大量日志数据从不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。Sqoop主要用于将数据在关系型数据库和Hadoop平台之间进行相互转移。Kafka是一个发布与订阅消息系统,它可以实时处理大量消息数据以满足各种需求,相当于数据中转站。数据存储层:数据可以存储于分布式文件系统HDFS中,也可以存储于分布式数据库HBase中,而HBase的底层实际上还是将数据存储于HDFS中。此外,为了满足对大量数据的快速检索与统计,可以使用E

技术解析|Doris Connector 结合 Flink CDC 实现 MySQL 分库分表 Exactly Once 精准接入

685-383.jpg本篇文档将演示如何使用ApacheDorisFlinkConnector结合FlinkCDC以及DorisStreamLoad的两阶段提交,实现MySQL数据库分库分表实时高效接入,并实现ExactlyOnce。一、概述在实际业务系统中为了解决单表数据量大带来的各种问题,我们通常采用分库分表的方式对库表进行拆分,以达到提高系统的吞吐量。但是这样给后面数据分析带来了麻烦,这个时候我们通常试将业务数据库的分库分表同步到数据仓库时,将这些分库分表的数据合并成一个库、一个表,便于我们后面的数据分析。本篇文档我们将演示如何基于FlinkCDC结合ApacheDorisFlinkCo

Flink RichFunction题目一则

前言祝广大女性节日快乐~快问快答FlinkDataStreamAPI中的RichFunction有哪些用途/特点?RichFunction中获取到的RuntimeContext是干什么用的?所有Function都有对应的RichFunction实现吗?所有Flink流处理的算子都可以传入RichFunction吗?前两个问题实际上可以合并成一个问题。RichFunction的特点是比Function多出了生命周期管理(open()和close()方法),以及能够获取其运行时上下文RuntimeContext。RuntimeContext与Function的每个并行实例(即一个Sub-task)

Apache Flink——状态编程

概述Flink处理机制的核心,就是“有状态的流式计算”。不论是简单聚合、窗口聚合,还是处理函数的应用,都会有状态的身影出现。状态就如同事务处理时数据库中保存的信息一样,是用来辅助进行任务计算的数据。而在Flink这样的分布式系统中,我们不仅需要定义出状态在任务并行时的处理方式,还需要考虑如何持久化保存、以便发生故障时正确地恢复。这就需要一套完整的管理机制来处理所有的状态。一、Flink中的状态1.1有状态算子在流处理中,数据是连续不断到来和处理的。每个任务进行计算处理时,可以基于当前数据直接转换得到输出结果;也可以依赖一些其他数据。这些由一个任务维护,并且用来计算输出结果的所有数据,就叫作这个

Apache Flink——集群部署模式案例

前言本文重点是FlinkonYarn模式的部署,但在写Yarn模式部署之前,说一下独立模式(Standalone)模式独立模式(Standalone)独立模式是独立运行的,不依赖任何外部的资源管理平台;当然独立也是有代价的:如果资源不足,或者出现故障,没有自动扩展或重分配资源的保证,必须手动处理。所以独立模式一般只用在开发测试或作业非常少的场景下。会话模式部署可以发现,独立模式的特点是不依赖外部资源管理平台,而会话模式的特点是先启动集群、后提交作业。所以,在https://www.jianshu.com/p/4acf1df75088中用的就是独立模式(Standalone)的会话模式部署。单作

大数据之Flink

1、流计算的基本概念1.1批处理与流处理在大数据处理领域,批处理与流处理一般被认为是两种截然不同的任务,一个大数据框架一般会被设计为只能处理其中一种任务。比如,Storm只支持流处理任务,而MapReduce、Spark只支持批处理任务。通过灵活的执行引擎,Flink能够同时支持批处理任务与流处理任务。在执行引擎层级,流处理系统与批处理系统最大的不同在于节点间的数据传输方式。如下图所示,对于一个流处理系统,其节点间数据传输的标准模型是,在处理完成一条数据后,将其序列化到缓存中,并立刻通过网络传输到下一个节点,由下一个节点继续处理。1.gif这两种数据传输模式是两个极端,对应的是流处理系统对低延