- 博客(140)
- 资源 (12)
- 收藏
- 关注
原创 flink实战--metrics监控与rest api
Flink metrics简介 Flink的metrics是Flink公开的一个度量系统,允许收集flink程序的公开指标到外部系统,我们也可以自定义指标通过metric收集,实际开发时经常需要查看当前程序的运行状况,flink 提供了 UI 界面,有比较详细的统计信息。但是 UI 界面也有不完善的地方,比如想要获取 flink 的实时吞吐。本文将详细介绍如何通过metric......
2019-05-24 17:39:13 15332 7
原创 flink实战--读写Hbase
简介 在Flink文档中,提供connector读取源数据和把处理结果存储到外部系统中。但是没有提供数据库的connector,如果要读写数据库,官网给出了异步IO(Asynchronous I/O)专门用于访问外部数据,详细可看:https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/o...
2019-01-18 19:07:18 8177 35
原创 flink实战--flink集群的搭建与部署
flink实战案例一:flink集群的搭建与部署1.下载Flink压缩包下载地址:http://flink.apache.org/downloads.html根据集群环境的情况下载相应的版本的flink压缩包hadoop2.6,Scala2.11,所以下载:flink-1.5.0-bin-hadoop26-scala_2.11.tgz解压tar -zxf flink-1.5.0-bi...
2019-01-17 16:44:09 14818
原创 spark将数据写入ES(ElasticSearch)终极总结
简介spark接入ES可以使用多种方式,常见类型如下。将Map对象写入ElasticSearch 将case class 类对象写入ElasticSearch 将Json的字符串写入ElasticSearch本文主要介绍将case class 类对象写入ElasticSearch:也就是获取数据然后使用case class封装数据,然后在case class中选取一个字段当做 id,...
2019-01-09 13:11:47 31471 19
原创 flink实战--水印(watermark)终极总结
水印(waterMark) 了解水印前需要了解事件时间(eventTime)和处理时间(processTime)的概念,参考博客:https://blog.csdn.net/aA518189/article/details/82908993了解事件时间。 Flink通过水印来推进事件时间。水印是嵌入在流中的常规记录。计算程...
2018-12-24 15:12:23 7551 2
原创 flink实战--flinkSQL入门大全
FlinkSQL概念介绍Table API & SQL Apache Flink具有两个关系API - 表API和SQL - 用于统一流和批处理。Table API是Scala和Java的语言集成查询API,允许以非常直观的方式组合来自关系运算符的查询,Table API和SQL接口彼此紧密集成,以及Flink的DataStream和DataSet A...
2018-11-12 18:07:03 24703 3
原创 flink实战--flink原理解析
Flink出现的背景 我们知道目前流处理的主要流行的计算引擎有,Storm,SparkStreaming。但是这个两个计算引擎都有自己的局限性。Storm实现了低延迟,但是目前还没有实现高吞吐,也不能在故障发生的时候准确的处理计算状态(将数据从一个事件保存到另一个事件的,这些保留下来的是数据较计算状态),同时也不能实现exactly-once。SparkStreaming通过微批处理方法............
2018-09-30 15:40:22 20215 6
原创 flink实战--实战案例
本文以flink本地模式 进行各个场景的实战开发Flink本地运行模式Flink支持两种不同的本地运行机制: LocalExecutionEnvironment启动完整的Flink运行环境,包括一个JobManager和一个TaskManager。这些包含了内存管理以及在集群模式下运行时所运行的所有内部算法。 LocalEnvironment也可以向Flink传入用户自定义配置。...
2018-09-18 11:52:31 8661 8
原创 kafka工作原理与使用
1.Kafka概述1.1.什么是KafkaApache Kafka是分布式发布-订阅消息系统(消息中间件)。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。传统消息中间件服务RabbitMQ、Apache ActiveMQ等,Apache Kafka与传统消息系统相比,有以下优点...
2018-06-30 20:43:01 1550
原创 kafka集群的搭建与使用
1.下载Apache kafka 官方: http://kafka.apache.org/downloads.htmlScala 2.11 -kafka_2.11-0.10.2.0.tgz(asc,md5)2.Kafka集群安装第一步:安装JDK &配置JAVA_HOME第二步:安装Zookeeper 参照Zookeeper官网搭建一个ZK集群, 并启动Z...
2018-06-30 20:33:57 849
原创 Hadoop之hdfs的工作原理和安装
一 HDFS简介(Hadoop Distributed File System)1简介:是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很...
2018-04-08 22:32:07 843
原创 redis的安装与使用
下载redis因为redis一般会在linux系统进行安装,所以下载时要下载linux系统的安装包。官网地址:http://redis.io/下载地址:http://download.redis.io/releases/redis-3.2.8.tar.gz因为Redis是用c语言写的 需要需要现编译在安装编译工具:make BuildFileant build.xml...
2018-04-01 16:52:26 407
原创 基于ssm三大框架实现登录注册功能的配置过程
第一步 ssm jar包整合,本人的下载资源里面有整合的jar包主要有:ssm整合jar包 ,jstl,数据库连接,josn junit,等jar包第二步,建立各类包和配置文件,尽量把各个配置文件分开,统一放在一个自己建立的config文件夹中,容易区分,后面也好检查更改主要配置,mybatis,spring—mybatis,和springmvc,以及web.xml和jdbc(数据库连接信息)j...
2018-03-17 16:35:13 2426
原创 paimon实战-- paimon表类型和数据合并方式
Paimon仅支持主键表和Append Only表。由于主键表需要按照主键更新,且要满足各种场景的数据更新,因此针对主键表piamon又提供的表的数据合并引擎。Paimon主键表创建Paimon表时指定了主键(primary key),则该表即为Paimon主键表。语法结构例如,创建一张分区键为dt,主键为dt、shop_id和user_id,分桶数固定为4的Paimon主键表。dt STRING,Paimon主键表中每行数据的主键值各不相同,如果将多条具有相同主键的数据写入Paimon主键表,将根据。
2024-08-22 09:28:14 795
原创 Paimon实战 -- paimon系统表与审计监控
paimon系统表按照元数据的分类,划分了如下10个系统表,通过系统表可以获取paimon表各维度的元数据和消费组信息。通过收集这些元信息,不仅可以排查问题使用,还可以构建统一的paimon元数据管理和消费组管理平台,比如paimon-web就是通过查询系统表来实现表的元数据管理和展示的,本文将详细介绍各系统表的含义和用途。
2024-08-18 08:36:20 1024
原创 Paimon实战 -- paimon原理解析
Apache Paimon 原名 Flink Table Store,2022年1月在 Apache Flink 社区从零开始研发,Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。
2024-08-16 09:46:10 921
原创 缓存更新策略中级总结
看到好些人在写更新缓存数据代码时,,而后续的操作会把数据再装载的缓存中。。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻辑,当我在微博上发了这个贴以后,我发现好些人给了好多非常复杂和诡异的方案,所以,我想写这篇文章说一下几个缓存更新的Design Pattern(让我们多一些套路吧)
2024-06-10 07:23:41 1115
原创 flink实战--⼤状态作业调优实践指南-Flink SQL 作业篇
作为一种特定领域语言,SQL 的设计初衷是隐藏底层数据处理的复杂性,让用户通过声明式语言来进行数据操作。而Flink SQL 由于其架构的特殊性,在实现层面通常需引入状态后端 配合 checkpoint 来保证计算结果的最终一致性。目前 Flink SQL 生成状态算子的策略由优化器根据配置项 + SQL 语句来推导,想要在处理有状态的大规模数据和性能调优方面游刃有余的话,用户还是需要对 SQL 状态算子生成机制和管理策略有一定了解。
2024-06-04 20:27:10 375 1
原创 flink实战--大状态任务调优指南-DataStream作业
在 Flink 中,状态管理是流处理应用的核心概念之一,它允许算子(operators)在处理事件时保持和操作状态信息。在 Flink 中,状态可以被视为算子的“记忆”,它使得算子能够在处理无界流数据时保持对历史数据的跟踪。状态可以是简单的键值对,也可以是更复杂的数据结构,如列表、集合或自定义对象。状态的更新和查询对于实现复杂的流处理逻辑至关重要。具体说来,首先,Checkpoint 是 Flink 的一种容错机制。
2024-06-03 21:11:39 141 1
原创 paimon实战 --核心原理和Flink应用进阶
Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,推出新一代的 Streaming Lakehouse 技术,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。Flink 社区内部孵化了 Flink Table Store (简称 FTS )子项目,一个真正面向 Streaming 以及 Realtime的数据湖存储项目。
2024-05-15 15:15:38 587
原创 flink实战--Flink任务资源自动化优化
想要对 Flink 任务的消息处理能力进行分析,第一步便是获取该实时任务的 Kafka 数据源 Topic,目前如果数据源不是 Kafka 的话,我们不会进行分析。我们实时平台每天会定时扫描所有正在运行的 Flink 任务,在任务内存方面,我们能够结合 实时任务 GC 日志,同时根据内存优化规则,计算出 Flink 任务推荐的堆内存大小,并与实际分配的 Flink 任务的堆内存进行比较,如果两者相差的倍数过大时,我们认为 Flink 任务的内存配置存在浪费的情况,接下来我们会报警提示到平台管理员进行优化。
2024-03-08 14:52:04 331
原创 flink实战--flink的job_listener使用解析
自定义listener,只需要实现对应的接口。并将您的逻辑写入重写的函数中。Flink JobListener 接口有两种方法,一种是提交,一种是完成。接口的定义如下。两种方法都有两个参数。一个常见的参数是 Throwable。Throwable 参数是进程抛出的错误(如果有)。让我们分别看看这两种方法。Flink JobListener接口:onJobSubmitted顾名思义,只要提交作业以供执行,就会调用此函数内的代码,并调用该方法。
2024-02-04 10:49:47 572
原创 flink实战--FlinkSQl实时写入hudi表元数据自动同步到hive
为了实现hive, trino等组件实时查询hudi表的数据,可以通过使用Hive sync。在Flink操作表的时候,自动同步Hive的元数据。Hive metastore通过目录结构的来维护元数据,数据的更新是通过覆盖来保证事务。但是数据湖是通过追踪文件来管理元数据,一个目录中可以包含多个版本的文件。这一点和Hive元数据管理是不同的。所以说为了兼容Hive metastore,Hudi需要实时从Timeline同步元数据到Hive metastore。
2023-03-31 15:42:40 1343 1
原创 hudi实战-- 核心点解析
在 Flink 实时流中,经常会通过 Flink CDC 插件读取 Mysql 数据,然后实时入湖到 Hudi 中。所以在执行上述操作时,需要了解 Hudi 的基本概念以及操作原理,这样在近实时往 Hudi 中写数据时,遇到报错问题,才能及时处理,本文将详细介绍hudi的核心知识点。
2023-01-04 15:51:05 1654
原创 yarn集群NodeManager日志聚合慢问题解决方案
正常情况作业提交到 Yarn 集群时,作业完成或者失败后,每个 NM 节点都会对每个 app 作业进行日志聚合操作,存储到hdfs指定的目录下,但是最近发现越来越多的任务通过yarn logs命令无法查询,经过排查发现很多任务的日志聚合变慢了,需要半小时甚至更多时间才能聚合完成。
2022-10-28 21:19:01 1105
原创 flink实战--flinksql 窗口TVF
表值函数(, TVF),就是指返回值是⼀张表的函数,其实z在Oracle、SQL Server等数据库中屡⻅不鲜。⽽在Flink的上⼀个稳定版本1.13中,社区通过FLIP-145提出了窗⼝表值函数(window TVF)的实现,⽤于替代旧版的窗⼝分组(group window)语法。本文将从 Window TVF 语法、近实时累计计算场景、 Window 性能优化、多维数据分析,来介绍TVF使用。对比发现:TVF 语法更加灵活。............
2022-08-11 21:19:43 1291
原创 flink实战--flinksql从基础到进阶必会知识点终极总结
随着社区FlinkSQL功能越来越完善,处理实时\离线数据相比于DataStream更加简单高效。因此FlinkSQL已经成为学习Flink中最重要的模块之一。虽然FlinkSQL相比DataStream使用起来简单高效,但是很多语法(DML,DDL,UDF,窗口聚合,实时topN等)还是需要一定学习成本,为了让大家快速全面的掌握FlinkSQL,本文将从全局视角梳理FlinkSQL中必学的知识点。.....................
2022-07-24 17:06:30 802
原创 flink实战--flinksql窗口提前触发参数解析
正常线上业务计算设置的window窗口比较大,比如1个小时,甚至1天,一周。那么是不是只能在窗口结束之后才能看到数据呢?是否看到中间数据?对于实时的任务,每天或者一周结束的时候,才输出计算的结果,没有任何意义,我们需要的是实时更新的中间结果数据。比如实时的PV,UV等指标计算。下面介绍一下FlinkSQL如何提前触发窗口计算。在代码中设置如下两个参数:不开启提前触发窗口如下 demo,从 kafka 读取数据, 窗口聚合,输出一天的 pv、uv注:为了方便测试,1 天的窗口改为 1 分钟的窗
2022-06-21 15:40:40 1543
原创 flink实战-- 生产环境flink程序注意事项
简介 正常情况下Flink 社区已尝试为每个配置提供合理的默认值,但是特殊应用场景需要我们设置具体配置项确保我们线上程序可以高性能的运行,重启等。本篇文章将详细介绍一下线上环境flink程序注意事项,避免入坑。1. application未来能扩展到的最大parallelism默认的值由application第一次启动时决定:如果所有operator的最大parallelism小于等于128,则默认值等于128 否则默认值 = MIN(nextPowerOfTwo(para...
2022-05-27 10:19:43 413 1
原创 flink实战--StreamGraph,JobGraph,ExecutionGraph生成流程解析
简介 Flink在执行用户的任务时,会涉及到StreamGraph,JobGraph,ExecutionGraph,物理执行图。其中StreamGraph和JobGraph是在client端生成的,ExecutionGraph是在JobMaster中执行的,本文将详细介绍这些Graph的生成流程,方便大家对Flink内部执行流程有一个清晰的认识。StreamGraph是根据用户代码生成的最原始执行图,也就是直接翻译用户逻辑得到的图 JobGraph是对StreamGraph进行优化.....
2022-03-26 18:03:01 763
原创 flink实战--flinkSQL读写hudi
简介 Apache Hudi 是目前最流行的数据湖解决方案之一,Data Lake Analytics集成了 Hudi 服务高效的数据 MERGE(UPDATE/DELETE)场景,Apache Flink 作为目前最流行的流计算框架,在流式计算场景有天然的优势,当前,Flink 社区也在积极拥抱 Hudi 社区,发挥自身 streaming 写/读的优势,同时也对 batch 的读写做了支持。Hudi on Flink写入方式 首先,Hudi 提供了一个在...
2021-12-29 17:23:44 2692
原创 es(Elasticsearch) -- 映射参数解析
1.analyzer功能:给文本字段设置分词器。默认对索引和查询都是有效的使用案例:PUT blog{ "mappings": { "properties": { "title":{ "type":"text", "analyzer": "ik_smart" } } }}2.search_analyzer功能:设置查询时候的分词器。默认情况下,如果没有配置 search_analyzer,则查询时,
2021-09-24 18:25:55 1320
原创 es(Elasticsearch) -- 元字段解析
简介 Elasticsearch中每个文档都有自己的元数据,为了方便管理元数据,es提供元字段。元数据主要分为身份元数据、索引元数据、文档元数据、路由元数据以及其他类型的元数据 ,同时索引创建时我们还可以自定义元字段。本文将详细介绍不同元字段的用途和使用方式。1.身份元数据 _index:文档所属索引 , 自动被索引,可被查询,聚合,排序使用,或者脚本里访问 _type:文档所属类型,自动被索引,可被查询,聚合,排序使用,或者脚本里访问 _id:文档的唯一标...
2021-09-24 17:35:07 881
原创 flink实战 -- flink on yarn 任务日志收集与监控
背景 在 Flink on yarn 的模式下,taskManager的日志会存储到所在的DataNode上,当 Flink 任务发生异常,产生异常日志时,需要我们第一时间感知任务已经出现异常,避免影响业务。因此我们需要将Flink任务的日志实时收集起来,出现异常日志立刻报警,做的真正意义上的实时报警,而不是等flink任务掉线了在发出报警。收集到了任务日志,即使任务掉线了也方便我们通过日志定位问题。日志收集方案 在 Flink 1.1...
2021-09-02 21:00:03 3672 1
原创 flink实战--延迟监控 metrics.latency.interval
背景 流处理系统进行数据计算时,数据延迟是不可接受的,但是又不可避免的。因此延迟监控在流处理框架中ji'wei
2021-06-05 17:55:20 2010 1
原创 用一次就会爱上的Google Guava 类库
Google Guava 类库简介 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 对集合Collection、缓存Cache、原生数据类型支持、并发库、通用注解、字符串处理和IO工具,都提供了高效的支持.这些...
2021-04-10 17:34:18 285
原创 flink实战--flinksql连接器(jdbc-connector)添加对clickhouse的支持
简介 在目前的所有的flink版本中,flinksql原生还不支持直接ddl的当时创建clickhouse表,进行业务开发。需要我们自己实现clickhouse的connector。本文将详细介绍通过改造原生flink-connector-jdbc添加对clickhouse的支持。步骤 第一步:模仿MySQLDialect编写自己的ClickHouseDialect,代码如下:public class ClickHouseDialect extends.........
2021-02-04 20:31:49 3483
flink-connector-jdbc_2.11-1.11.2.jar
2021-02-24
flink需要的jersey-core和jersey-client
2019-03-01
基于SSM框架开发的共享单车管理系统
2018-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人