
flink
文章平均质量分 79
王树民
大JAVA
展开
-
Flink入坑指南 第四章:SQL中的经典操作Group By+Agg
Group By + Agg这个最经典的SQL使用方式。Group By是SQL中最基础的分组操作,agg的全称是aggregation(聚合操作),是一类SQL的统称,Flink中最常用的Agg操作有COUNT/SUM/AVG等,详情参见。在实际使用中,Group By+Agg绝大部分场景下都会一起出现。作为最常用的SQL模式,学习好这种模式的最优写法,也就非常重要了。转载 2022-09-30 14:07:55 · 1995 阅读 · 1 评论 -
flink 双流jion 使用union all + groupby方式实现
在基于flink的实时计算中,会有实时流join的需求原创 2022-09-30 14:03:30 · 1389 阅读 · 0 评论 -
Flink基于Kafka-Connector 数据流容错回放机制
Flink基于Kafka-Connector 数据流容错回放机制及代码案例实战-Flink牛刀小试Flink牛刀小试系列目录Flink牛刀小试-Flink 集群运行原理兼部署及Yarn运行模式深入剖析 Flink牛刀小试-Flink Window类型及使用原理案例实战 Flink牛刀小试-Flink Broadcast 与 Accumulators 应用案例实战 Flink牛刀小试-Flink与SparkStreaming之Counters& Accumulators 累加器双向应用案原创 2020-10-28 15:56:08 · 735 阅读 · 0 评论 -
Flink状态管理和容错机制介绍
Flink状态管理和容错机制介绍本文主要内容如下:有状态的流数据处理; Flink中的状态接口; 状态管理和容错机制实现; 阿里相关工作介绍;一.有状态的流数据处理#1.1.什么是有状态的计算#计算任务的结果不仅仅依赖于输入,还依赖于它的当前状态,其实大多数的计算都是有状态的计算。 比如wordcount,给一些word,其计算它的count,这是一个很常见的业务场景。count做为输出,在计算的过程中要不断的把输入累加到count上去,那么count就是一个state。1.2.原创 2020-10-28 09:54:56 · 201 阅读 · 0 评论 -
discovery.zen.minimum_master_nodes深度解析
discovery.zen.minimum_master_nodes对集群的稳定性至关重要,防止脑裂的出现。脑裂:如果网络的故障导致一个集群被划分成两片,每片都有多个node,以及一个master。因为master是维护集群状态,以及shard的分配。如果出现了两个master,可能导致数据破损。discovery.zen.minimum_master_nodes的作用是只有足够的master候选节点时,才可以选举出一个master。该参数必须设置为集群中master候选节点的quo...转载 2020-09-14 17:10:03 · 1502 阅读 · 0 评论 -
基于Interval Join实时Join过去一段时间内的数据
Flink DataStream 基于Interval Join实时Join过去一段时间内的数据Interval Join: 间隔连接。如下示例:一条流(Left Keyed Stream) 按Key Join另一条流(Right Keyed Stream)过去2分钟内(间隔)的数据。Interval Join语法leftKeyedStream .intervalJoin(rightKeyedStream) // 时间间隔,设定下界和上界 .between(Time..原创 2020-08-26 14:06:23 · 1267 阅读 · 0 评论 -
flink读写MySQL的两种方式
目前跑通的读写MySQL的方式有三种,一种是直接使用flink自带的JDBCInputFormat和JDBCOutputFormat,一种是自定义source和sink,最后一种是通过DDL连接MySQL进行读写(但是这种只在idea调试通了,打包上传后运行报错,因此比较的时候只比较前两种)。引入依赖 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <de...原创 2020-08-20 14:49:19 · 11915 阅读 · 9 评论 -
Flink Kafka Connector与Exactly Once剖析
Flink Kafka Connector与Exactly Once剖析Flink Kafa Connector是Flink内置的Kafka连接器,它包含了从Kafka Topic读入数据的Flink Kafka Consumer以及向Kafka Topic写出数据的Flink Kafka Producer,除此之外Flink Kafa Connector基于Flink Checkpoint机制提供了完善的容错能力。本文从Flink Kafka Connector的基本使用到Kafka在Flink.原创 2020-08-13 18:14:05 · 298 阅读 · 0 评论 -
数据流交换策略
1. Dataflow Programming在讨论流处理的基本概念之前,我们首先介绍一下数据流编程(dataflow programming)的基本概念与术语。数据流图数据流程序一般在由数据流图表示,数据流图描述了数据如何在操作之间流动。在数据流图中,节点被称为operator,代表计算;边代表数据依赖。Operator是dataflow 应用中的基本单元,它们从输入消费数据,在之上执行计算,并生产数据提供给下一步处理。没有输入的operators 称为数据源(data sour.原创 2020-08-12 12:32:13 · 689 阅读 · 0 评论 -
使用旁路输出(side output)来拆分和复制流
我们在处理数据的时候,有时候想对不同情况的数据进行不同的处理,那么就需要把流进行拆分或者复制。如果是使用filter来进行拆分,也能满足我们的需求,但每次筛选都要保留整个流,然后遍历整个流,显然很浪费性能,假如能够在一个流了多次输出就好了,flink的旁路输出则提供了这样的功能。如何使用旁路输出呢一、要定义OutputTag,这个就类似一个容器,需要拆分成几个流,就定义几个//例如定义一个tag,来收集某个值小于200的数据private static final Output..原创 2020-08-12 12:28:20 · 2272 阅读 · 0 评论 -
Flink异步IO结合Redisson访问Redis
发表于2019-07-15|分类于大数据|0|本文总阅读量165次Flink异步IO源码简析。使用Redisson框架封装的异步请求API。对key进行异步累计递增计数和计算业务值并保存在Redis中。Lua脚本和事务API。FLINK v2-异步IO的设计与实现Flink使用异步IO访问外部数据AsyncRedisJob代码AsyncFunction AsyncFunction是一个异步算子接口,本身继承Function和Serializable。...原创 2020-08-05 13:33:29 · 1690 阅读 · 0 评论 -
Flink:异步I/O访问外部数据
Flink大数据项目实战:http://t.cn/ExrHPl9Aysnc I/O1.1Aysnc I/O是啥?Async I/O 是阿里巴巴贡献给社区的一个呼声非常高的特性,于1.2版本引入。主要目的:是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。场景:流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。通常,我们的实现方式是向数据库发送用户a的查询请求(例如在MapFunction中),然后等待结果返回,在这之前,我们...原创 2020-08-04 11:04:23 · 825 阅读 · 0 评论 -
前面 FLink 的文章中我们已经介绍了说 Flink 已经有很多自带的 Connector。
https://www.cnblogs.com/Allen-rg/p/11593528.html1、《从0到1学习Flink》—— Data Source 介绍2、《从0到1学习Flink》—— Data Sink 介绍其中包括了 Source 和 Sink 的,后面我也讲了下如何自定义自己的 Source 和 Sink。那么今天要做的事情是啥呢?就是介绍一下 Flink 自带的 ElasticSearch Connector,我们今天就用他来做 Sink,将 Kafka 中的数据经过 Fl原创 2020-08-04 09:51:34 · 536 阅读 · 0 评论 -
Flink架构及其工作原理
目录System Architecture Data Transfer in Flink Event Time Processing State Management Checkpoints, Savepoints, and State RecoverySystem Architecture分布式系统需要解决:分配和管理在集群的计算资源、处理配合、持久和可访问的数据存储、失败恢复。Fink专注分布式流处理。Components of a Flink SetupJo...原创 2020-07-30 13:59:39 · 228 阅读 · 1 评论 -
Flink 清理过期 Checkpoint 目录的正确姿势
本博客是笔者在生产环境使用 Flink 遇到的 Checkpoint 相关故障后,整理输出,价值较高的 实战采坑记,本文会带你更深入的了解 Flink 实现增量 Checkpoint 的细节。通过本文,你能 get 到以下知识:Flink Checkpoint 目录的清除策略 生产环境应该选择哪种清除策略 生产环境必须定期脚本清理 Checkpoint 和 Savepoint 目录 RocksDB 增量 Checkpoint 实现原理 如何合理地删除 Checkpoint 目...原创 2020-07-30 13:49:18 · 1475 阅读 · 2 评论 -
聊聊flink的checkpoint配置
序本文主要研究下flink的checkpoint配置实例StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// start a checkpoint every 1000 msenv.enableCheckpointing(1000);// advanced options:// set mode to exactly-once (this is th...原创 2020-07-30 09:47:54 · 1076 阅读 · 1 评论 -
Flink 内存
Flinkmap:做一些清洗转换;flatMap:输入一个元素,返回一个或者多个元素;filter:符合条件的数据留下;keyBy:key相同的数据进入同一个分区;reduce:当前元素与上一次reduce返回值进行聚合操作;Union:合并多个流,但是所有的流类型必须一致;Connect:合并两个流,两个流的类型可以不同;CoMap、CoFlatMap:对于ConnectedStream使用这俩函数,对两个流进行不同的处理;split:根据规则吧一个数据流切分为多个..原创 2020-07-27 11:38:56 · 1892 阅读 · 1 评论 -
Flink 容错机制与状态
简介Apache Flink提供了一种容错机制,可以持续恢复数据流应用程序的状态。 该机制确保即使出现故障,经过恢复,程序的状态也会回到以前的状态。 Flink 主持 at least once 语义 和 exactly once 语义 Flink 通过定期地做 checkpoint 来实现容错 和 恢复, 容错机制不断地生成数据流的快照, 而不会对性能产生太大的影响。 流应用程序的状态存储在一个可配置的地方(例如主节点或HDFS) 如果出现车程序故障(由于机器、网络或软件故障), Fl...原创 2020-07-27 11:17:05 · 320 阅读 · 1 评论 -
Protobuf 通信协议实战
简介 从第一次接触Protobuf到实际使用已经有半年多,刚开始可能被它的名字所唬住,其实就它是一种轻便高效的数据格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。优点平台无关,语言无关,可扩展; 提供了友好的动态库,使用简单; 解析速度快,比对应的XML快约20-100倍; 序列化数据非常简洁、紧凑,与XML相比,其序列化之后的数据量约为1/3到1/10。使用详解1、服务器安装安装依赖的库: autoconf automake li...原创 2020-07-17 09:24:23 · 765 阅读 · 0 评论 -
Protobuf与JSON互相转换
Javahttp://code.google.com/p/protobuf-java-format/maven配置 <dependency> <groupId>com.googlecode.protobuf-java-format</groupId> <artifactId>protobuf-java-format</artifactId> <version>1.2</v..原创 2020-07-16 16:17:43 · 1793 阅读 · 0 评论 -
Flink 数据传输及反压详解
IntermediateDatasetIntermediateDataset是在JobGraph中对中间结果的抽象。我们知道,JobGraph是对StreamGraph进一步进行优化后得到的逻辑图,它尽量把可以 chain 到一起 operator 合并为一个JobVertex,而IntermediateDataset就表示一个JobVertex的输出结果。JobVertex的输入是JobEdge,而JobEdge可以看作是IntermediateDat...原创 2020-07-13 10:12:28 · 1508 阅读 · 0 评论 -
protobuf 和 json转换
原创 2020-05-09 12:26:29 · 753 阅读 · 0 评论 -
KafkaConsumer使用介绍、参数配置
russqiang 2019-04-27 13:43:41 4325 收藏 5展开文章目录前言Consumer概要Consumer程序开发Consumer常用参数说明消息解序列化多线程处理总结前言KafkaProducer作为生产者发送消息到Kafka,那么自然也就需要从kafka读取消息,这就是KafkaConsumer,通过和Producer使用相同的topic...原创 2020-04-26 10:24:01 · 2814 阅读 · 0 评论 -
Flink| 状态一致性
1. 状态一致性有状态的流处理,内部每个算子任务都可以有自己的状态;对于流处理器内部(没有接入sink)来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确;一条数据不应该丢失,也不应该重复计算;在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正常的;状态一致性分类:AT_MOST_ONCE(最多一次),当任务故障时最简单做法...转载 2020-04-26 10:12:28 · 555 阅读 · 0 评论 -
KafkaConsumer实现精确一次消费
转自https://blog.csdn.net/qq_18581221/article/details/89766073简介在使用kafka时,大多数场景对于数据少量的不一致(重复或者丢失)并不关注,比如日志,因为不会影响最终的使用或者分析,但是在某些应用场景(比如业务数据),需要对任何一条消息都要做到精确一次的消费,才能保证系统的正确性,kafka并不提供准确一致的消费API,需...原创 2020-04-26 09:42:14 · 1453 阅读 · 0 评论 -
IntelliJ Idea 常用快捷键列表2
快捷键1Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择...原创 2020-04-17 12:56:04 · 243 阅读 · 0 评论 -
PlantUML 的安装及配置
PlantUML 支持在多个平台上安装使用,比如 Eclipse,NetBeans,oneline servlet 等,它也支持多种语言的编辑,例如 C/C++,PHP,Java,Html 等。用户可以从 PlantUML 的官方网站上下载所需用的相应的文件。http://plantuml.sourceforge.net/download.html。下面本文仅以 Eclipse 开...转载 2020-04-16 11:39:17 · 954 阅读 · 0 评论 -
使用Redisson实现分布式锁
可重入锁(Reentrant Lock) Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。 public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.ge...转载 2020-04-10 17:07:47 · 455 阅读 · 0 评论 -
Java之——redis并发读写锁,使用Redisson实现分布式锁
原创冰 河 最后发布于2017-06-21 00:32:11 阅读数 27298 已收藏展开MySQL由浅入深介绍MySQL的各项技术,从应用到原理再到源码分析,一步步带你通向MySQL成神之路冰 河¥9.90去订阅转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73523810最近由于工作很忙,很长时间没...原创 2020-04-10 09:30:59 · 603 阅读 · 0 评论 -
centOS服务器 netstat命令 查看TCP连接数信息(转)
原创linyu19872008 最后发布于2014-01-03 18:50:52 阅读数 325 已收藏展开netstat命令的功能是显示网络连接、路由表和网络接口的信息,可以让用户得知有哪些网络连接正在运作。在日常工作中,我们最常用的也就两个参数,即netstat –an,如下所示:[root@tiaobanji~]#netstat-anActiveInterne...原创 2020-04-07 12:03:39 · 937 阅读 · 0 评论 -
Flink exactly-once 实战笔记
Flink-Kafka众所周知,Flink在很早的时候就通过Checkpointing提供了exactly-once的semantic,不过仅限于自身或者是从KafkaConsumer中消费数据。而在Flink 1.4版本的时候加入了赫赫有名的TwoPhaseCommitSinkFunction,提供了End-to-End的exatcly-once语言,当然是在需要下游支持回滚的情...原创 2020-04-01 15:45:19 · 428 阅读 · 0 评论 -
Flink exactly-once 实战笔记
Snak1enn关注0.3532019.05.21 10:59:06字数 1,501阅读 1,162Flink-Kafka众所周知,Flink在很早的时候就通过Checkpointing提供了exactly-once的semantic,不过仅限于自身或者是从KafkaConsumer中消费数据。而在Flink 1.4版本的时候加入了赫赫有名的TwoPhaseCommitSinkF...原创 2020-04-01 15:44:45 · 409 阅读 · 0 评论 -
二段式提交和三段式提交
CAP定理2000年7月加州大学伯克利分校 Eric Brewer教授提出CAP猜想,两年后被证明。CAP理论告诉我们,一个分布式系统不可能同时满足一致性(C,Consistency),可用性(A,Availability)和分区容错性(P,Partition tolerance)三个基本要求,最多只能同时满足其中两个。一致性:分布式系统中,能够做到针对一个数据的更新成功后...原创 2020-04-01 11:34:24 · 1823 阅读 · 0 评论 -
图解分布式事务实现原理
Java_老男孩关注0人评论998人阅读2019-12-19 15:53:50问题场景转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消什么是事务?转存失败重新上传取消事务是数据库从一个稳定状态变迁到另一个稳定状态的保证,具备 ACID 这 4 个特性: 原子性(Atomicity):一个...转载 2020-04-01 11:33:11 · 486 阅读 · 0 评论 -
深入理解Flink ---- End-to-End Exactly-Once语义
上一篇文章所述的Exactly-Once语义是针对Flink系统内部而言的.那么Flink和外部系统(如Kafka)之间的消息传递如何做到exactly once呢?问题所在:如上图,当sink A已经往Kafka写入了数据,而sink B fail.根据Flink的exactly once保证,系统会回滚到最近的checkpoint,但是sink A已经把数据...原创 2020-03-29 20:55:27 · 379 阅读 · 0 评论 -
Flink消费Kafka到HDFS实现及详解
1.概述最近有同学留言咨询,Flink消费Kafka的一些问题,今天笔者将用一个小案例来为大家介绍如何将Kafka中的数据,通过Flink任务来消费并存储到HDFS上。2.内容这里举个消费Kafka的数据的场景。比如,电商平台、游戏平台产生的用户数据,入库到Kafka中的Topic进行存储,然后采用Flink去实时消费积累到HDFS上,积累后的数据可以构建数据仓库(如Hive)做...原创 2020-03-26 11:51:35 · 2520 阅读 · 0 评论 -
Eclipse安装阿里巴巴代码插件p3c
一般分为线上安装和线下安装,一般采用线下安装的方式,100%成功。1、利用eclipse自带的Install New Software1.1 点击help - install new software1.2输入p3c地址,选中插件(图中未知原因没有显示插件)安装即可。p3c网址如下:https://p3c.alibaba.com/plugin/eclipse/update该...原创 2020-03-26 09:18:30 · 1314 阅读 · 0 评论 -
git clone 指定分支 拉代码
原创IT云清 最后发布于2017-10-11 16:52:21 阅读数 71352 收藏展开1.git clone 不指定分支git clone http://10.1.1.11/service/tmall-service.git2.git clone 指定分支git clone -b dev_jk http://10.1.1.11/service/tmall-servic...原创 2020-03-26 08:57:56 · 342 阅读 · 0 评论 -
git下载指定版本的代码
情境1:首先选择自己要下载版本的分支,通过 git clone 命令下载到本地然后,在你的commits中找到你要下载的版本的commit号,如切换到指定的版本号:git checkout 17def2f新建分支git checkout -b branch这时候,就下载到你想要的版本的代码了。情境2:如果是已经将代码下载到本地了,首先可...原创 2020-03-26 08:56:43 · 4743 阅读 · 0 评论 -
分布式架构下基于Redisson实现Redis分布式锁
原创riemann_ 最后发布于2020-03-10 00:17:54 阅读数 88 已收藏展开一、前言作为后台开发,相信大家都对 Redis 并不陌生了。Redis 有三个客户端 Jedis、Redisson、Lettuce。也就是提供基本的驱动来连接操作 Redis 数据库的。我们先简单介绍下这几个客户端的异同。Jedis:是Redis 的 Java 实现客户端,提供了比较全面的...转载 2020-03-23 23:40:51 · 418 阅读 · 0 评论