大数据
文章平均质量分 92
hadoop,hive,storm,scala, spark,flink,yarn
weixin_42073629
这个作者很懒,什么都没留下…
展开
-
一文看懂大数据生态圈完整知识体系
一文看懂大数据生态圈完整知识体系转载 2022-11-21 02:32:14 · 817 阅读 · 0 评论 -
Hive 核心知识点
1请谈一下 Hive 的特点 hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 sql 查询功能,可以将 sql 语句转换为MapReduce 任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析,但是 Hive 不支持实时查询。2Hive 底层与数据库交互原理?...转载 2022-04-11 07:12:13 · 214 阅读 · 0 评论 -
50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 下
五、实时数仓建设核心1. 实时计算初期虽然实时计算在最近几年才火起来,但是在早期也有部分公司有实时计算的需求,但是数据量比较少,所以在实时方面形成不了完整的体系,基本所有的开发都是具体问题具体分析,来一个需求做一个,基本不考虑它们之间的关系,开发形式如下:早期实时计算如上图所示,拿到数据源后,会经过数据清洗,扩维,通过Flink进行业务逻辑处理,最后直接进行业务输出。把这个环节拆开来看,数据源端会重复引用相同的数据源,后面进行清洗、过滤、扩维等操作,都要重复做一遍,唯一不同的是业务的代码转载 2022-04-10 15:36:54 · 473 阅读 · 0 评论 -
50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 上
一、数仓基本概念1. 数据仓库架构我们在谈数仓之前,为了让大家有直观的认识,先来谈数仓架构,“架构”是什么?这个问题从来就没有一个准确的答案。这里我们引用一段话:在软件行业,一种被普遍接受的架构定义是指系统的一个或多个结构。结构中包括软件的构建(构建是指软件的设计与实现),构建的外部可以看到属性以及它们之间的相互关系。这里参考此定义,把数据仓库架构理解成构成数据仓库的组件及其之间的关系,画出下面的数仓架构图:数仓架构上图中显示的整个数据仓库环境包括操作型系统和数据仓库系统两大部分。操转载 2022-04-10 15:22:01 · 503 阅读 · 0 评论 -
hive on tez
Tez说明将xyz替换为您正在使用的tez发行版号。例如0.5.0。对于Tez版本0.8.3和更高版本,Tez需要Apache Hadoop版本为2.6.0或更高版本。对于Tez版本0.9.0及更高版本,Tez需要Apache Hadoop版本为2.7.0或更高版本。关于版本1.Hadoop 2.7.0+(我的是2.7.1)2.Tez还需要Protocol Buffers 2.5.0,包括protoc编译器。(如果你下载的是apache-tez-0.9.0-src.tar.gz包则需要编译,需原创 2020-11-01 00:31:12 · 832 阅读 · 0 评论 -
Hive on Spark
简介本文主要记录如何安装配置Hive on Spark,在执行以下步骤之前,请先确保已经安装Hadoop集群,Hive,MySQL,JDK,Scala,具体安装步骤不再赘述。背景Hive默认使用MapReduce作为执行引擎,即Hive on mr。实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多。因此,Hi转载 2020-10-29 00:36:11 · 1514 阅读 · 0 评论 -
HBase容灾与备份
一、前言本文主要介绍 Hbase 常用的三种简单的容灾备份方案,即CopyTable、Export/Import、Snapshot。分别介绍如下:二、CopyTable2.1 简介CopyTable可以将现有表的数据复制到新表中,具有以下特点:支持时间区间 、row 区间 、改变表名称 、改变列族名称 、以及是否 Copy 已被删除的数据等功能; 执行命令前,需先创建与原表结构相同的新表; CopyTable的操作是基于 HBase Client API 进行的,即采用scan...原创 2020-10-25 01:06:59 · 270 阅读 · 0 评论 -
HBase系统架构及数据结构
一、基本概念一个典型的 Hbase Table 表如下:1.1 Row Key (行键)Row Key是用来检索记录的主键。想要访问 HBase Table 中的数据,只有以下三种方式: 通过指定的Row Key进行访问; 通过 Row Key 的 range 进行访问,即访问指定范围内的行; 进行全表扫描。 Row Key可以是任意字符串,存储时数据按照Row Key的字典序进行排序。这里需要注意以下两点: 因为字典序对 Int 排序的结果是...原创 2020-10-25 01:07:08 · 224 阅读 · 2 评论 -
Flink(六十六)—— 用History Server实现Flink 作业宕机查看
前言Flink On YARN 默认作业挂了之后打开的话,是一个如下这样的页面:作业失败后对于这种我们页面我们只能查看 JobManager 的日志,不再可以查看作业挂掉之前的运行的 Web UI,很难清楚知道作业在挂的那一刻到底发生了啥?如果我们还没有 Metrics 监控的话,那么完全就只能通过日志去分析和定位问题了,所以如果能还原之前的 Web UI,我们可以通过 UI 发现和定位一些问题。History Server 介绍那么这里就需要利用 Flink 中的 History原创 2020-10-23 00:15:16 · 3864 阅读 · 0 评论 -
Flink(六十五)—— Flink 1.11 新特性详解:【非对齐】Unaligned Checkpoint 优化高反压
问题导读1.Barrier 对齐会造成什么问题?2.Barrier 对齐是否会造成反压?3.如何理解Unaligned Checkpoint ?作为 Flink 最基础也是最关键的容错机制,Checkpoint 快照机制很好地保证了 Flink 应用从异常状态恢复后的数据准确性。同时 Checkpoint 相关的 metrics 也是诊断 Flink 应用健康状态最为重要的指标,成功且耗时较短的 Checkpoint 表明作业运行状况良好,没有异常或反压。然而,由于 Checkpoint 与反压的耦原创 2020-10-23 00:15:06 · 686 阅读 · 0 评论 -
Flink(六十四)—— Flink 1.11 会有哪些牛逼的功能
Flink 1.11 版本即将正式宣告发布!为满足大家的好奇与期待,我们邀请 Flink 核心开发者对 1.11 版本的功能特性进行解读与分享。Flink 1.11 在 1.10 的基础上对许多方面进行了完善和改进,并致力于进一步提高 Flink 的可用性及性能。本文将详细介绍 1.11 版本的新功能、改进、重要变化及未来的发展计划。更多信息可以参考相应的 FLIP 或 Jira 页面,并关注我们后续的专题直播。集群部署与资源管理在集群部署方面1.[FLIP-85] Flink 支持 App原创 2020-10-23 00:14:56 · 984 阅读 · 1 评论 -
Flink(六十三)—— Apache Flink 1.11.0 新功能正式介绍
Apache Flink 社区很荣幸的宣布 Flink 1.11.0 版本正式发布!超过 200 名贡献者参与了 Flink 1.11.0 的开发,提交了超过 1300 个修复或优化。这些修改极大的提高了 Flink 的可用性,并且增强了各个 API 栈的功能。其中一些比较重要的修改包括: 核心引擎部分引入了非对齐的 Checkpoint 机制。这一机制是对 Flink 容错机制的一个重要改进,它可以提高严重反压作业的 Checkpoint 速度。 实现了一套新的 Source 接口。.原创 2020-10-23 00:14:46 · 324 阅读 · 1 评论 -
Flink(六十二)—— Flink 1.11 Release 文档解读
集群和部署 支持 Hadoop 3.0 及更高的版本:Flink 不再提供任何flink-shaded-hadoop-依赖。用户可以通过配置 HADOOP_CLASSPATH 环境变量(推荐)或在 lib 文件夹下放入 Hadoop 依赖项。另外include-hadoopMaven profile 也已经被移除了。 移除了 LegacyScheduler:Flink 不再支持 legacy scheduler,如果你设置了jobmanager.scheduler: legacy...原创 2020-10-23 00:14:36 · 513 阅读 · 1 评论 -
Flink(六十一)—— Flink 1.10 TaskManager 内存管理优化
Apache Flink 1.10 对 TaskManager 的内存模型和 Flink 应用程序的配置选项进行了重大变更。这些最近引入的更改做到了对内存消耗提供了严格的控制,使得 Flink 在各种部署环境(例如 Kubernetes,Yarn,Mesos)更具有适应能力,在本文中,我们将介绍 Flink 1.10 中的内存模型、如何设置和管理 Flink 应用程序的内存消耗以及社区在最新的 Apache Flink Release 版本中的变化。Flink 内存模型的介绍对 Apache F原创 2020-10-23 00:14:25 · 648 阅读 · 1 评论 -
Flink(六十)—— 实时 Error 日志告警
大数据时代,随着公司业务不断的增长,数据量自然也会跟着不断的增长,那么业务应用和集群服务器的的规模也会逐渐扩大,几百台服务器在一般的公司已经是很常见的了。那么将应用服务部署在如此多的服务器上,对开发和运维人员来说都是一个挑战。一个优秀的系统运维平台是需要将部署在这么多服务器上的应用监控信息汇总成一个统一的数据展示平台,方便运维人员做日常的监测、提升运维效率,还可以及时反馈应用的运行状态给应用开发人员。举个例子,应用的运行日志需要按照时间排序做一个展示,并且提供日志下载和日志搜索等服务,这样如果应用出现问题开原创 2020-10-23 00:14:16 · 1728 阅读 · 0 评论 -
Flink(五十九)—— 如何实时监控 Flink 集群和作业?
Flink 相关的组件和作业的稳定性通常是比较关键的,所以得需要对它们进行监控,如果有异常,则需要及时告警通知。本章先会教会教会大家如何利用现有 Flink UI 上面的信息去发现和排查问题,会指明一些比较重要和我们非常关心的指标,通过这些指标我们能够立马定位到问题的根本原因。接着笔者会教大家如何去利用现有的 Metrics Reporter 去构建一个 Flink 的监控系统,它可以收集到所有作业的监控指标,并会存储这些监控指标数据,最后还会有一个监控大盘做数据可视化,通过这个大盘可以方便排查问题。实原创 2020-10-23 00:14:06 · 4987 阅读 · 0 评论 -
Flink(五十八)—— 双流中实现Inner Join、Left Join与Right Join
简介之前文章中提到JoinedStream与CoGroupedStream,例如下列代码:dataStream.join(otherStream) .where(0).equalTo(1) .window(TumblingEventTimeWindows.of(Time.seconds(3))) .apply { ... }由于joinedStream与coGroupedStream来自于一个特定的window,且在一个关联上的key中实现,因此,Flink中的双流jo原创 2020-10-22 00:12:40 · 1030 阅读 · 0 评论 -
Flink(五十七)—— Flink SQL 如何实现数据流的 Join?
无论在 OLAP 还是 OLTP 领域,Join 都是业务常会涉及到且优化规则比较复杂的 SQL 语句。对于离线计算而言,经过数据库领域多年的积累,Join 语义以及实现已经十分成熟,然而对于近年来刚兴起的 Streaming SQL 来说 Join 却处于刚起步的状态。其中最为关键的问题在于 Join 的实现依赖于缓存整个数据集,而 Streaming SQL Join 的对象却是无限的数据流,内存压力和计算效率在长期运行来说都是不可避免的问题。下文将结合 SQL 的发展解析 Flink SQL 是如原创 2020-10-22 00:11:53 · 336 阅读 · 0 评论 -
Flink(五十六)—— Flink 聚合性能优化 -- MiniBatch 分析
一、MiniBatch的演进思路1、MiniBatch版本Flink 1.9.0 SQL(Blink Planner) 性能优化中一项重要的改进就是升级了微批模型,即 MiniBatch(也称作MicroBatch或MiniBatch2.0),在支持高吞吐场景发挥了重要作用。MiniBatch与早期的MiniBatch1.0在微批的触发机制略有不同。原理同样是缓存一定的数据后再触发处理,以减少对State的访问,从而提升吞吐和减少数据的输出量MiniBatch与早期的MiniBatch1.0原创 2020-10-22 00:11:40 · 1665 阅读 · 0 评论 -
Flink(五十五)—— Java SPI 机制在 Flink SQL 中的应用
Java SPI 机制简介Java SPI机制,即Java Service Provider Interface,是Java提供的基于“接口编程 + 策略模式 + 配置文件”组合实现的动态加载机制。调用者可以根据实际使用需要,来启用、扩展或者替换框架的现有实现策略。在Java中,基于该SPI思想,提供了具体的实现,ServiceLoader,利用该类可以轻松实现面向服务的注册与发现,完成服务提供与使用的解耦。Java SPI机制常见的例子,如: 数据库驱动接口实现类的加载:JDBC可以根据实际原创 2020-10-22 00:11:26 · 1070 阅读 · 0 评论 -
Flink(五十四)—— Flink Back Pressure(背压)是怎么实现的?有什么绝妙之处?
什么是 Back Pressure如果看到任务的背压警告(如 High 级别),这意味着生成数据的速度比下游算子消费的的速度快。以一个简单的 Source -> Sink 作业为例。如果能看到 Source 有警告,这意味着 Sink 消耗数据的速度比 Source 生成速度慢。Sink 正在向 Source 施加反压。许多情况都会导致背压。例如,GC导致传入数据堆积,或者数据源在发送数据的速度上达到峰值。如果没有正确处理反压力,可能会导致资源耗尽,甚至在最坏的情况下,数据丢失。看一个简.原创 2020-10-22 00:11:17 · 415 阅读 · 0 评论 -
Flink(五十三)—— Flink 单并行度内使用多线程来提高作业性能
分析痛点笔者线上有一个 Flink 任务消费 Kafka 数据,将数据转换后,在 Flink 的 Sink 算子内部调用第三方 api 将数据上报到第三方的数据分析平台。这里使用批量同步 api,即:每 50 条数据请求一次第三方接口,可以通过批量 api 来提高请求效率。由于调用的外网接口,所以每次调用 api 比较耗时。假如批次大小为 50,且请求接口的平均响应时间为 50ms,使用同步 api,因此第一次请求响应以后才会发起第二次请求。请求示意图如下所示:平均下来,每 50 ms 向第三方原创 2020-10-22 00:11:04 · 2925 阅读 · 5 评论 -
Flink(五十二)—— Flink on YARN 常见问题与排查思路
Flink 支持 Standalone 独立部署和 YARN、Kubernetes、Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛。Flink 社区将推出 Flink on YARN 应用解读系列文章,分为上、下两篇。上篇分享了基于 FLIP-6 重构后的资源调度模型介绍Flink on YARN 应用启动全流程,本文将根据社区大群反馈,解答客户端和 Flink Cluster 的常见问题,分享相关问题的排查思路。客户端常见问题与排查思路▼ 应用提交控制...原创 2020-10-22 00:10:53 · 1884 阅读 · 1 评论 -
Flink(五十一)—— 一张图轻松掌握 Flink on YARN 基础架构与启动流程
Flink 支持 Standalone 独立部署和 YARN、Kubernetes、Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛。Flink 社区将推出 Flink on YARN 应用解读系列文章,分为上、下两篇。本文基于 FLIP-6 重构后的资源调度模型将介绍 Flink on YARN 应用启动全流程,并进行详细步骤解析。Flink on YARN 应用启动流程图Flink on YARN 集群部署模式涉及 YARN 和 Flink 两大开源框架,应用启动流原创 2020-10-22 00:10:42 · 398 阅读 · 1 评论 -
Flink(五十)—— 如何使用 Kubernetes 部署 Flink 应用
场景描述:Kubernetes 是目前非常流行的容器编排系统,在其之上可以运行 Web 服务、大数据处理等各类应用。这些应用被打包在一个个非常轻量的容器中,我们通过声明的方式来告知 Kubernetes 要如何部署和扩容这些程序,并对外提供服务。Flink 同样是非常流行的分布式处理框架,它也可以运行在 Kubernetes 之上。将两者相结合,我们就可以得到一个健壮和高可扩的数据处理应用,并且能够更安全地和其它服务共享一个 Kubernetes 集群。概述在 Kubernetes 上部署.原创 2020-10-22 00:10:33 · 1144 阅读 · 0 评论 -
Flink(四十九)—— Flink on Yarn / K8s 原理剖析及实践
本文根据 Apache Flink 进阶篇系列直播课程整理而成,由阿里巴巴技术专家周凯波(宝牛)分享,主要介绍 Flink on Yarn / K8s 的原理及应用实践,文章将从 Flink 架构、Flink on Yarn 原理及实践、Flink on Kubernetes 原理剖析三部分内容进行分享并对 Flink on Yarn/Kubernetes 中存在的部分问题进行了解答。Flink 架构概览Flink 架构概览–Job用户通过 DataStream API、Data..原创 2020-10-22 00:10:21 · 685 阅读 · 0 评论 -
Flink(四十八)—— Flink 全链路端到端延迟的测量方法
一、背景FLink Job端到端延迟是一个重要的指标,用来衡量Flink任务的整体性能和响应延迟(大部分流式应用,要求低延迟特性)。通过流处理引擎竞品对比,我们发现大部分流计算引擎产品,都在告警监控页面,集成了全链路时延指标展示。一些低延时的处理场景,例如用于登陆、用户下单规则检测,实时预测场景,需要一个可度量的Metric指标,来实时观测、监控集群全链路时延情况。二、源码分析来源1、本文的源码分析基于FLink社区issue FLINK-3660,以及issue对应的pr源码pull-原创 2020-10-21 00:41:31 · 1186 阅读 · 0 评论 -
Flink(四十七)—— 如何使用 Side Output 来分流?
前言之前讲过 Flink 使用连续的 Split 会有问题,当时提供了几种解决方法,有一种方法就是使用 Side Output 来进行,当时留了个余念,那么就在这篇文章详细的讲一波,教大家如何使用 Side Output 来分流。Side Output通常我们在处理数据的时候,有时候想对不同情况的数据进行不同的处理,那么就需要把数据流进行分流。比如我们在那篇文章里面的例子:需要将从 Kafka 过来的告警和恢复数据进行分类拆分,然后在对每种数据再分为告警数据和恢复数据。如果是使用 fi.原创 2020-10-21 00:39:07 · 251 阅读 · 0 评论 -
Flink(四十六)—— Flink 不可以连续 Split(分流)?
前言今天上午被 Flink 的一个算子困惑了下,具体问题是什么呢?我有这么个需求:有不同种类型的告警数据流(包含恢复数据),然后我要将这些数据流做一个拆分,拆分后的话,每种告警里面的数据又想将告警数据和恢复数据拆分出来。结果,这个需求用 Flink 的 Split 运算符出现了问题。分析需求如下图所示:我是期望如上这样将数据流进行拆分的,最后将每种告警和恢复用不同的消息模版做一个渲染,渲染后再通过各种其他的方式(钉钉群邮件、短信)进行告警通知。于是我的代码大概的结构如下代码原创 2020-10-21 00:36:29 · 442 阅读 · 2 评论 -
Flink(四十五)—— Flink Connector 深度解析
本文主要分享Flink connector相关内容,分为以下三个部分的内容:第一部分会首先介绍一下Flink Connector有哪些。第二部分会重点介绍在生产环境中经常使用的kafka connector的基本的原理以及使用方法。第三部分答疑环节,看大家有没有一些问题。Flink Streaming ConnectorFlink是新一代流批统一的计算引擎,它需要从不同的第三方存储引擎中把数据读过来,进行处理,然后再写出到另外的存储引擎中。Connector的作用就相当于一个连接器,连接 Flink原创 2020-10-21 00:30:31 · 650 阅读 · 1 评论 -
Flink(四十四)—— Flink HDFS Sink 如何保证 exactly-once 语义
本文将从源码层面来分析在Flink中是如何保证sink数据到HDFS的exactly-once语义的。Flink中sink数据到HDFS是由BucketingSink来完成。BucketingSink产生的HDFS文件路径格式如下,/{base/path}/{bucket/path}/{part_prefix}-{parallel_task_index}-{count}{part_suffix}其中,•{base/path},构造BucketingSink时指定的base路径;•{bucke原创 2020-10-21 00:28:02 · 841 阅读 · 0 评论 -
Flink(四十三)—— Flink流计算编程--Flink扩容、程序升级前后的思考
对于持续生成新数据的场景,采用流计算显然是有利的。数据源源不断的产生,流计算系统理论上就要不间断的提供数据计算(可以停机维护的场景不在本文的讨论范围)。那么假如遇到下面的几种情况,流计算是如何保证数据的一致性的呢?1、应用程序bug修复,即功能的修改2、应用程序增加、删除新的功能3、流计算框架版本的升级4、突发的大量数据的到来以上列出的几种情况,我相信在大多数的流数据场景下,都可能遇到。对于以上的这些情况,我们在流计算系统中,分别会产生什么问题呢?1、bug修复--原创 2020-10-21 00:25:28 · 386 阅读 · 0 评论 -
Flink(四十二)—— Flink 使用 connect 实现双流匹配
阅读本文需要提前了解 connect 和 ProcessFunction 相关的知识。如果不了解的同学可以先通过官网或其他资料熟悉一下。一、案例分析在生产环境中,我们经常会遇到双流匹配的案例,例如: 一个订单包含了订单主体信息和商品的信息。 外卖行业,一个订单包含了订单付款信息和派送信息。 互联网广告行业,一次点击包含了用户的点击行为日志和计费日志。 等其他相关的案例 上述这些案例都需要涉及到双流匹配的操作,也就是所谓的双流 join。下面用一个案例来详解如何原创 2020-10-21 00:17:31 · 3228 阅读 · 5 评论 -
Flink(四十一)—— 深入理解 Flink 容错机制
作为分布式系统,尤其是对延迟敏感的实时计算引擎,Apache Flink 需要有强大的容错机制,以确保在出现机器故障或网络分区等不可预知的问题时可以快速自动恢复并依旧能产生准确的计算结果。事实上,Flink 有一套先进的快照机制来持久化作业状态[1],确保中间数据不会丢失,这通常需要和错误恢复机制(作业重启策略或 failover 策略)配合使用。在遇到错误时,Flink 作业会根据重启策略自动重启并从最近一个成功的快照(checkpoint)恢复状态。合适的重启策略可以减少作业不可用时间和避免人工介入处理原创 2020-10-21 00:11:16 · 779 阅读 · 1 评论 -
Flink(四十)—— Apache Flink 管理大型状态之增量 Checkpoint 详解
Apache Flink 是一个有状态的流计算框架,状态是作业算子中已经处理过的内存状态,供后续处理时使用。状态在流计算很多复杂场景中非常重要,比如: 保存所有历史记录,用来寻找某种记录模式 保存最近一分钟的所有记录,用于对每分钟的记录进行聚合统计 保存当前的模型参数,用于进行模型训练 有状态的流计算框架必须有很好的容错性,才能在生产环境中发挥用处。这里的容错性是指,不管是发生硬件故障,还是程序异常,最终的结果不丢也不重。Flink 的容错性从一开始就是一个非常强大的特性,原创 2020-10-21 00:08:45 · 1588 阅读 · 1 评论 -
Flink(三十九)—— Flink Checkpoint 问题排查实用指南
在 Flink 中,状态可靠性保证由 Checkpoint 支持,当作业出现 failover 的情况下,Flink 会从最近成功的 Checkpoint 恢复。在实际情况中,我们可能会遇到 Checkpoint 失败,或者 Checkpoint 慢的情况,本文会统一聊一聊 Flink 中 Checkpoint 异常的情况(包括失败和慢),以及可能的原因和排查思路。1. Checkpoint 流程简介首先我们需要了解 Flink 中 Checkpoint 的整个流程是怎样的,在了解整个流程之后,原创 2020-10-21 00:03:49 · 475 阅读 · 1 评论 -
Flink(三十八)—— Flink 状态管理与 Checkpoint 机制
一、状态分类相对于其他流计算框架,Flink 一个比较重要的特性就是其支持有状态计算。即你可以将中间的计算结果进行保存,并提供给后续的计算使用:具体而言,Flink 又将状态 (State) 分为 Keyed State 与 Operator State。1.1 算子状态算子状态 (Operator State):顾名思义,状态是和算子进行绑定的,一个算子的状态不能被其他算子所访问到。官方文档上对 Operator State 的解释是:each operator state is bo原创 2020-10-20 23:50:15 · 736 阅读 · 1 评论 -
Flink(三十七)—— Flink 清理过期 Checkpoint 目录的正确姿势
本博客是笔者在生产环境使用 Flink 遇到的 Checkpoint 相关故障后,整理输出,价值较高的实战采坑记,本文会带你更深入的了解 Flink 实现增量 Checkpoint 的细节。通过本文,你能 get 到以下知识: Flink Checkpoint 目录的清除策略 生产环境应该选择哪种清除策略 生产环境必须定期脚本清理 Checkpoint 和 Savepoint 目录 RocksDB 增量 Checkpoint 实现原理 如何合理地删除 Ch.原创 2020-10-19 01:05:43 · 1933 阅读 · 2 评论 -
Flink(三十六)—— Spark/Flink广播实现作业配置动态更新
前言在实时计算作业中,往往需要动态改变一些配置,举几个栗子: 实时日志ETL服务,需要在日志的格式、字段发生变化时保证正常解析; 实时NLP服务,需要及时识别新添加的领域词与停用词; 实时风控服务,需要根据业务情况调整触发警告的规则。 那么问题来了:配置每次变化都得手动修改代码,再重启作业吗?答案显然是否定的,毕竟实时任务的终极目标就是7 x 24无间断运行。Spark Streaming和Flink的广播机制都能做到这点,本文分别来简单说明一下。Spark Strea原创 2020-10-19 01:00:39 · 645 阅读 · 0 评论 -
Flink(三十五)—— Flink 使用 broadcast 实现维表或配置的实时更新
一、案例分析维表服务在 Flink 中是一个经常遇到的业务场景,例如: 客户端上报的用户行为日志只包含了城市 Id,可是下游处理数据需要城市名字 商品的交易日志中只有商品 Id,下游分析数据需要用到商品所属的类目 物联网温度报警的场景中,处理的是设备上报的一条条温度信息,之前的报警规则是:只要温度大于 20 度需要报警,现在需要改成大于 18 度则报警。这里的报警阈值需要动态调整,因此不建议将代码写死 对于上述的场景,实际上都可以通过维表服务的方式来解决。二、 维表方案原创 2020-10-19 00:54:48 · 1920 阅读 · 3 评论