- 博客(133)
- 资源 (12)
- 收藏
- 关注
原创 flink实战--metrics监控与rest api
Flink metrics简介 Flink的metrics是Flink公开的一个度量系统,允许收集flink程序的公开指标到外部系统,我们也可以自定义指标通过metric收集,实际开发时经常需要查看当前程序的运行状况,flink 提供了 UI 界面,有比较详细的统计信息。但是 UI 界面也有不完善的地方,比如想要获取 flink 的实时吞吐。本文将详细介绍如何通过metric......
2019-05-24 17:39:13 15061 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 8098 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 14774
原创 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 31288 19
原创 flink实战--水印(watermark)终极总结
水印(waterMark) 了解水印前需要了解事件时间(eventTime)和处理时间(processTime)的概念,参考博客:https://blog.csdn.net/aA518189/article/details/82908993了解事件时间。 Flink通过水印来推进事件时间。水印是嵌入在流中的常规记录。计算程...
2018-12-24 15:12:23 7451 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 24422 3
原创 flink实战--flink原理解析
Flink出现的背景 我们知道目前流处理的主要流行的计算引擎有,Storm,SparkStreaming。但是这个两个计算引擎都有自己的局限性。Storm实现了低延迟,但是目前还没有实现高吞吐,也不能在故障发生的时候准确的处理计算状态(将数据从一个事件保存到另一个事件的,这些保留下来的是数据较计算状态),同时也不能实现exactly-once。SparkStreaming通过微批处理方法............
2018-09-30 15:40:22 16275 4
原创 flink实战--实战案例
本文以flink本地模式 进行各个场景的实战开发Flink本地运行模式Flink支持两种不同的本地运行机制: LocalExecutionEnvironment启动完整的Flink运行环境,包括一个JobManager和一个TaskManager。这些包含了内存管理以及在集群模式下运行时所运行的所有内部算法。 LocalEnvironment也可以向Flink传入用户自定义配置。...
2018-09-18 11:52:31 8601 8
原创 kafka工作原理与使用
1.Kafka概述1.1.什么是KafkaApache Kafka是分布式发布-订阅消息系统(消息中间件)。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。传统消息中间件服务RabbitMQ、Apache ActiveMQ等,Apache Kafka与传统消息系统相比,有以下优点...
2018-06-30 20:43:01 1402
原创 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 812
原创 Hadoop之hdfs的工作原理和安装
一 HDFS简介(Hadoop Distributed File System)1简介:是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很...
2018-04-08 22:32:07 793
原创 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 384
原创 基于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 2371
原创 flink实战--Flink任务资源自动化优化
想要对 Flink 任务的消息处理能力进行分析,第一步便是获取该实时任务的 Kafka 数据源 Topic,目前如果数据源不是 Kafka 的话,我们不会进行分析。我们实时平台每天会定时扫描所有正在运行的 Flink 任务,在任务内存方面,我们能够结合 实时任务 GC 日志,同时根据内存优化规则,计算出 Flink 任务推荐的堆内存大小,并与实际分配的 Flink 任务的堆内存进行比较,如果两者相差的倍数过大时,我们认为 Flink 任务的内存配置存在浪费的情况,接下来我们会报警提示到平台管理员进行优化。
2024-03-08 14:52:04 249
原创 flink实战--flink的job_listener使用解析
自定义listener,只需要实现对应的接口。并将您的逻辑写入重写的函数中。Flink JobListener 接口有两种方法,一种是提交,一种是完成。接口的定义如下。两种方法都有两个参数。一个常见的参数是 Throwable。Throwable 参数是进程抛出的错误(如果有)。让我们分别看看这两种方法。Flink JobListener接口:onJobSubmitted顾名思义,只要提交作业以供执行,就会调用此函数内的代码,并调用该方法。
2024-02-04 10:49:47 381
原创 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 1115 1
原创 hudi实战-- 核心点解析
在 Flink 实时流中,经常会通过 Flink CDC 插件读取 Mysql 数据,然后实时入湖到 Hudi 中。所以在执行上述操作时,需要了解 Hudi 的基本概念以及操作原理,这样在近实时往 Hudi 中写数据时,遇到报错问题,才能及时处理,本文将详细介绍hudi的核心知识点。
2023-01-04 15:51:05 1369
原创 yarn集群NodeManager日志聚合慢问题解决方案
正常情况作业提交到 Yarn 集群时,作业完成或者失败后,每个 NM 节点都会对每个 app 作业进行日志聚合操作,存储到hdfs指定的目录下,但是最近发现越来越多的任务通过yarn logs命令无法查询,经过排查发现很多任务的日志聚合变慢了,需要半小时甚至更多时间才能聚合完成。
2022-10-28 21:19:01 969
原创 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 1196
原创 flink实战--flinksql从基础到进阶必会知识点终极总结
随着社区FlinkSQL功能越来越完善,处理实时\离线数据相比于DataStream更加简单高效。因此FlinkSQL已经成为学习Flink中最重要的模块之一。虽然FlinkSQL相比DataStream使用起来简单高效,但是很多语法(DML,DDL,UDF,窗口聚合,实时topN等)还是需要一定学习成本,为了让大家快速全面的掌握FlinkSQL,本文将从全局视角梳理FlinkSQL中必学的知识点。.....................
2022-07-24 17:06:30 721
原创 flink实战--flinksql窗口提前触发参数解析
正常线上业务计算设置的window窗口比较大,比如1个小时,甚至1天,一周。那么是不是只能在窗口结束之后才能看到数据呢?是否看到中间数据?对于实时的任务,每天或者一周结束的时候,才输出计算的结果,没有任何意义,我们需要的是实时更新的中间结果数据。比如实时的PV,UV等指标计算。下面介绍一下FlinkSQL如何提前触发窗口计算。在代码中设置如下两个参数:不开启提前触发窗口如下 demo,从 kafka 读取数据, 窗口聚合,输出一天的 pv、uv注:为了方便测试,1 天的窗口改为 1 分钟的窗
2022-06-21 15:40:40 1380
原创 flink实战-- 生产环境flink程序注意事项
简介 正常情况下Flink 社区已尝试为每个配置提供合理的默认值,但是特殊应用场景需要我们设置具体配置项确保我们线上程序可以高性能的运行,重启等。本篇文章将详细介绍一下线上环境flink程序注意事项,避免入坑。1. application未来能扩展到的最大parallelism默认的值由application第一次启动时决定:如果所有operator的最大parallelism小于等于128,则默认值等于128 否则默认值 = MIN(nextPowerOfTwo(para...
2022-05-27 10:19:43 368 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 625
原创 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 2559
原创 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 1216
原创 es(Elasticsearch) -- 元字段解析
简介 Elasticsearch中每个文档都有自己的元数据,为了方便管理元数据,es提供元字段。元数据主要分为身份元数据、索引元数据、文档元数据、路由元数据以及其他类型的元数据 ,同时索引创建时我们还可以自定义元字段。本文将详细介绍不同元字段的用途和使用方式。1.身份元数据 _index:文档所属索引 , 自动被索引,可被查询,聚合,排序使用,或者脚本里访问 _type:文档所属类型,自动被索引,可被查询,聚合,排序使用,或者脚本里访问 _id:文档的唯一标...
2021-09-24 17:35:07 777
原创 flink实战 -- flink on yarn 任务日志收集与监控
背景 在 Flink on yarn 的模式下,taskManager的日志会存储到所在的DataNode上,当 Flink 任务发生异常,产生异常日志时,需要我们第一时间感知任务已经出现异常,避免影响业务。因此我们需要将Flink任务的日志实时收集起来,出现异常日志立刻报警,做的真正意义上的实时报警,而不是等flink任务掉线了在发出报警。收集到了任务日志,即使任务掉线了也方便我们通过日志定位问题。日志收集方案 在 Flink 1.1...
2021-09-02 21:00:03 3315 1
原创 flink实战--延迟监控 metrics.latency.interval
背景 流处理系统进行数据计算时,数据延迟是不可接受的,但是又不可避免的。因此延迟监控在流处理框架中ji'wei
2021-06-05 17:55:20 1862 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 261
原创 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 3264
原创 flink实战--Application模式下java程序将flink任务提交到yarn集群
扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦简介 对于单个flink任务提交到yarn集群,通过命令行的方式是能接受的,但是我们开发实时计算平台就需要通过代码的方式将我们管理的flink任务提交到yarn集群上去。本文主要介绍flink1.11新的部署模式–Application模式,具体Application模式和其他提交方式的区别可以参考我的这篇文章:flink on yarn。程序提交flink任务的步骤第一步:引入相关的配置到...
2021-01-19 19:42:42 2507 1
原创 flink实战--CheckpointedFunction 自定义带有状态的算子
简介CheckpointedFunction是stateful transformation functions的核心接口,用于跨stream维护state snapshotState在checkpoint的时候会被调用,用于snapshot state,通常用于flush、commit、synchronize外部系统 initializeState在parallel function初始...
2020-12-09 16:06:37 1168
原创 flink实战--flink日志框架配置与使用详解
Flink 日志框架 在 Flink 1.11 之前,Flink 使用的日志框架是 Log4j,配置信息在flink/conf/log4j.properties中。配置文件会将 JobManager 和 TaskManager 的日志分别打印在不同的文件中。Flink 1.11.1 版本对 UI 进行了优化,会将JobManager 和 TaskManager 的日志都打印在一个文件里面,但任务跑时间长的话,日志文件会非常大,查看日志页面时出现卡顿的情况,所以可...
2020-12-04 20:56:31 2528
原创 git--实战使用总结
Git环境 配置需要注册一个github账号Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。在你下载的git客户端需要配置这些信息,进行账户的初始化这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git c...
2020-11-30 11:19:02 661
原创 ClickHouse实战--clickhouse sql入门大全
一、ck建表语句与数据库相比,创建表的语法要复杂得多(请参阅参考资料。通常,CREATE TABLE语句必须指定三个关键事项:要创建的表的名称。 表模式,即列及其数据类型的列表。 表引擎及其设置,它确定有关如何物理执行对该表的查询的所有详细信息。二、创建库CREATE/ATTACH DATABASE zabbix ENGINE = Ordinary;ATTACH 也可以建库,但是metadata目录下不会生成.sql文件,一般用于metadata元数据sql文件被删除后,恢复库表结构使
2020-10-20 12:15:07 4216
原创 ClickHouse实战--clickhouse使用场景与原理解析
ClickHouse简介ClickHouse是Yandex提供的一个开源的列式存储数据库管理系统,多用于联机分析(OLAP)场景,可提供海量数据的存储和分析,同时利用其数据压缩和向量化引擎的特性,能提供快速的数据搜索。注意到ClickHouse是一个数据库管理系统,而不是单个数据库。ClickHouse 特点读多于写 大宽表,读大量行但是少量列,结果集较小通常存在一张或是几张多列的大宽表,列数高达数百甚至数千列。对数据分析处理时,选择其中的少数几列作为维度列、其他少数几列作为指标列,然后.
2020-10-20 11:30:28 11342 3
原创 flink实战--flink on k8s (Kubernetes)
Flink on Kubernetes 的发展历史 在 Flink 的早期发行版 1.2 中,已经引入了 Flink Session 集群模式,用户得以将 Flink 集群部署在 Kubernetes 集群之上。随着 Flink 的逐渐普及,越来越多的 Flink 任务被提交在用户的集群中,用户发现在 session 模式下,任务之间会互相影响,隔离性比较差,因此在 Flink 1.6 版本中,推出了 Per Job 模式,单个任务独占一个 Flink 集群,很大的程度上...
2020-10-19 17:40:34 4318 3
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关注的人