自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(270)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kafka的一条消息的写入和读取过程原理介绍

Kafka消息处理流程解析:生产者通过分区策略将消息写入Leader副本,经ISR机制同步后确认;消费者组通过Offset管理从分区拉取消息,支持不同投递语义。系统通过分区副本、顺序I/O和批量处理实现高吞吐,核心机制包括ISR同步、ACK确认和零拷贝优化,确保高可用与高性能。理解这些原理有助于优化集群配置和排查问题。

2025-08-12 17:24:44 864

原创 FlinkSQL Joins全解析

与 Lookup Join 的区别:Lookup Join 查最新数据,Temporal Join 按时间戳匹配历史版本。→ Lookup Join(最新数据)或 Temporal Join(历史版本)。结果会随维表数据更新而变化(如维表更新,后续关联结果可能不同)。:需要精确匹配所有历史数据的场景(如用户行为链路分析)。→ Regular Join(慎用,需 TTL)。的普通 Join,无时间约束,匹配所有历史数据。的关联(如 MySQL、HBase 等)。(如版本时间或生效时间)。,无法关联历史版本。

2025-08-10 14:44:08 784

原创 Flink CDC如何保障数据的一致性?

'scan.incremental.snapshot.enabled' = 'true' -- 启用增量快照(默认)'scan.incremental.snapshot.chunk.size' = '8096' -- 分块大小。'sink.delivery-guarantee' = 'exactly-once', -- 启用精确一次。'transactional-id-prefix' = 'cdc-sync-' -- 事务ID前缀。

2025-08-06 12:21:46 918

原创 大数据组件的WAL机制的架构设计原理对比

HBase 的 HLog 滚动清理 vs 长时间保留(增加恢复选项但占用存储)ZooKeeper 同步刷盘(强一致) vs Flink 异步刷盘(高性能)增量快照(如 Flink 的 Changelog)可能部分替代传统 WAL。:通过“日志先行”在性能与可靠性之间取得平衡,但需根据场景优化配置。:选择 ZooKeeper 或 HBase(同步 WAL)。存储硬件(如 NVMe)提升 WAL 的写入性能瓶颈。:优先考虑 Redis 或 Kafka(异步刷盘)。Kafka 的日志分段删除策略(按时间/大小)

2025-04-20 00:36:03 885

原创 FlinkSQL源码解析1--提交任务过程

org.apache.flink.table.api.internal.TableEnvironmentImpl#executeSql @Override public TableResult executeSql(String statement) { List<Operation> operations = getParser().parse(statement); if (operations.size() != 1) { throw n

2024-10-30 00:11:34 1131 1

原创 Kafka中是怎么体现消息顺序性的?

Kafka中是怎么体现消息顺序性的?Kafka只能保证分区内消息顺序有序,无法保证全局有序生产者:通过分区的leader副本负责数据顺序写入,来保证消息顺序性消费者:同一个分区内的消息只能被一个group里的一个消费者消费,保证分区内消费有序为什么做不到全局有序:因为消息会发送到不一样的分区,分区之间发送的顺序是无法保证的如何做到并发且全局有序?解题思路并发可以在发送端并发也可以在消费端并发,并发可以通过多线程发送或消费全局有序需要做到只有一个分区或者数据按顺序发

2020-07-20 10:37:35 3042

原创 大量删除hdfs历史文件导致全部DataNode心跳汇报超时为死亡状态问题解决

目录背景:问题产生过程:问题现象:解决过程:相关日志:其他方案:总结:背景:由于测试环境的磁盘满了,导致多个NodeManager出现不健康状态,查看了下,基本都是data空间满导致,不是删除日志文件等就能很快解决的,只能删除一些历史没有用的数据。于是从大文件列表中,找出2018年的spark作业的历史中间文件并彻底删除(跳过回收站)/usr/loc...

2019-08-20 20:47:37 4588 5

翻译 Hive 快速上手--官网中文翻译

目录安装和配置从一个稳定的发行版安装Hive编译Hive源码编译主干的Hive编译分支branch-1在Hadoop 0.20上在0.13之前编译Hive在Hadoop 0.23上在0.13之前编译Hive(Ant)运行Hive运行Hive CLI运行HiveServer2 和 Beeline运行HCatalog运行WebHCat (Temp...

2019-04-30 17:52:22 1819

原创 从Hive的日志文件超大引出磁盘满问题并追踪出NameNode 安全模式的问题与处理

目录发现NameNode安全模式问题初步判断是磁盘满导致安全模式NameNode安全模式解释补充解释尝试重启DataNode重启NameNode总结发现NameNode安全模式问题一次偶然的机会,准备看下Hive的版本,发现无法执行hive脚本,发现Hive命令无法正常进入hive命令行,报错信息如下:ls: cannot access /usr...

2019-04-29 17:32:43 1936

原创 Flink、Kafka、Pulsar水位线机制对比:三大流处理组件的时序管理之道

Flink:强大的流处理引擎,提供完整的水位线机制和时间语义Kafka:可靠的消息存储,通过HW机制保证数据消费的安全性Pulsar:统一的消息平台,结合了两者的优点并提供更好的扩展性技术选型建议需要复杂事件处理→ Flink(丰富的时间语义和状态管理)需要高吞吐消息队列→ Kafka(成熟的生态系统和稳定性)需要统一消息平台→ Pulsar(多租户、低延迟、高吞吐)水位线机制虽在不同系统中形态各异,但本质都是管理数据处理进度。理解各组件的特点,才能构建出稳定高效的实时数据处理架构。

2025-08-27 00:21:59 722

原创 一次展现“务实思考” 和 “专业深度” 的大数据技术面试

这意味着需要等待Leader收到数据,并且所有ISR中的Follower都成功同步了这条数据后,才会向Producer发送一个成功确认。如果rowkey是单调递增的(比如时间戳),会导致所有新写入的数据都集中在一个Region,造成。它的核心是基于“追加日志”的数据结构来存储消息,这种设计使得它的读写效率非常高,非常适合做实时数据管道和流式处理的数据源。时,就不需要等待这个慢副本,保证了集群的可用性。:当面试官深挖(如Kafka的ISR、Flink的选型)时,他能迅速给出技术细节和实现原理,展示了深度。

2025-08-24 23:57:56 300

原创 从阅兵式洞悉Flink分布式设计:大数据处理的精密协作艺术

统一指挥体系:Dispatcher(总指挥部)接收作业、JobMaster(方阵指挥官)管理作业生命周期、TaskExecutor(方阵士兵)执行任务,三层架构确保指令自上而下的高效传递;精密时序控制:基于 Pekko 的 RPC 通信(无线电系统)确保节点间指令同步,屏障机制(同步口令)确保任务快照时序一致,避免 "指令混乱";容错保障机制:检查点协调器(应急指挥中心)实现分布式快照,非对齐检查点(灵活应急方案)应对流量突发,确保系统 "故障可恢复、数据不丢失";资源弹性管理。

2025-08-24 01:00:58 549

原创 Flink通过重用对象缓解背压的核心原理介绍

在流处理系统中,数据记录(events/records)是以极高的速率流过的。如果一个算子(如map)为每一条输入数据都创建一个新的对象,那么就会在极短的时间内产生海量的、短命的(short-lived)对象实例。对象创建会在JVM的堆内存(Heap)的年轻代(Young Generation)中分配一块新内存。垃圾产生:一旦这个对象被下游算子处理完毕(例如,被序列化通过网络发送出去),它就不再被引用,变成了垃圾。GC触发:年轻代的内存空间是有限的。当海量的新对象迅速填满年轻代(Eden区)时,会频繁触发。

2025-08-22 14:05:43 740

原创 Flink背压:原理、定位与解决,一文搞定!

背压(Backpressure)是流处理系统中一种重要的流量控制机制。当数据流入速度大于处理速度时,系统会自动降低数据摄入速率,以避免数据积压和内存溢出。可以把这想象成水流管道:当出水口流速小于进水口时,管道内压力会增加,进而迫使进水口降低流速。Flink背压是流处理系统中的正常现象,但持续的高背压会影响作业性能。理解背压原理:基于信用值的流量控制掌握定位方法:Web UI、指标监控、日志分析应用解决方案:资源调优、作业优化、代码优化可以有效解决背压问题,保证Flink作业的稳定高效运行。记住。

2025-08-21 15:30:23 770

原创 Flink RocksDBStateBackend设计原理及对比分析

在流处理中,"状态"是指算子(operator)在处理事件时需要记住的信息。比如在计算移动平均值时,需要记住之前的事件值;在去重操作中,需要记住已经出现过的元素。状态后端就是负责管理这些状态的组件。比喻:状态后端就像一个会计的账本系统。会计(算子)在处理每一笔交易(事件)时,都需要查阅和更新账本(状态)。不同的账本管理方式(如纸质账本、电子表格、专业会计软件)就相当于不同的状态后端实现。

2025-08-18 07:30:00 286

原创 面试题:如何用Flink实时计算QPS

请设计 Flink 作业的数据流(Source → Transformation → Sink),并说明关键算子(如。(每秒请求数),并输出到监控系统(如 Prometheus、Kafka、MySQL 等)。,假设瞬时 QPS 可能达到 10,000,如何保证 Flink 作业的稳定性和低延迟?如何实现 QPS 的滑动窗口(如每 1s 计算一次最近 10s 的 QPS)?如果某些 key 的数据量远高于其他 key(数据倾斜),你会如何优化?,某些 key(如热门用户或接口)可能产生大量数据,如何优化?

2025-08-14 23:48:10 553

原创 面试题:百万日活,一天一亿条数据,qps怎么算

题目中给出一天的数据量为1亿条,即100,000,000次请求/天。1天 = 24小时 × 60分钟 × 60秒 =。QPS = 总请求数 ÷ 总时间(秒)总请求数 = 100,000,000总时间 = 86,400秒(即1天)平均QPS约为(四舍五入为整数)。

2025-08-13 19:01:18 353

原创 星型模型与雪花模型的比较分析

一个中心事实表,周围环绕多个维度表,维度表不与其它维度表关联:销售事实表直接关联产品、时间、客户、商店等维度表。

2025-08-06 11:57:26 135

原创 CountDownLatch实现原理

的共享模式,通过状态。

2025-04-20 00:21:12 279

原创 OLAP与OLTP架构设计原理对比

区别:OLTP追求事务效率,OLAP追求分析深度。联系:OLTP为OLAP提供数据基础,OLAP反哺业务优化。趋势:HTAP架构兴起,但需权衡场景需求。

2025-04-10 23:48:27 409

转载 【ClickHouse】0:clickhouse学习3之时间日期函数

官方文档: 时间日期函数 | ClickHouse Docsnow() // 2020-04-01 17:25:40 取当前时间toYear() // 2020 取日期中的年份toMonth() // 4 取日期中的月份today() // 2020-04-01 今天的日期yeste

2024-11-30 22:06:18 586

转载 SpringBoot 使用 FTP 操作文件

使用 SpringBoot 配置 FTP 服务器,上传、删除、下载文件。

2024-11-11 15:37:26 246

转载 k8s问题记录 - 机器重启后无法连接(The connection to the server :6443 was refused - did you specify the right host

我此次产生6443报错问题的原因是:检查pod时候,发现所有pod都已宕掉,都是notReady状态,尝试了重启etcd、重启containerd、重启kubelet,都未能解决。猛然间想起来查看SELinux的状态,发现SELinux没有关闭,是permissive状态,所以导致重启机器,重启etcd、重启containerd、重启kubelet均无法重新拉起k8s集群。6443 是api-server监听的端口,master节点6443请求不通。

2024-11-06 23:19:18 1363

转载 Filnk实时数仓(Prometheus监控)

Prometheus社区还提供了大量第三方实现的监控数据采集支持:JMX,CloudWatch,EC2,MySQL,PostgresSQL,Haskell,Bash,SNMP,Consul,Haproxy,Mesos,Bind,CouchDB,Django,Memcached,RabbitMQ,Redis,RethinkDB,Rsyslog等等。在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。

2024-11-03 11:36:10 388

原创 删除Windows11的环境变量

今天出现Flink的配置文件路径的环境变量在电脑-》属性-》高级系统设置--》环境变量中添加完以下环境变量后,环境变量查看还是有。

2024-09-29 12:36:39 388

原创 Java类加载器双亲委托模型概述

双亲委派模型的工作过程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到最顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去完成加载。3)否则,将Import列表中的类,委派给Export这个类的Bundle的类加载器加载。4)否则,查找当前Bundle的ClassPath,使用自己的类加载器加载。

2024-09-01 14:12:43 895

转载 YARN, MR History Server和Spark History Server三者的区别:

这时因为,不同的计算模型,其计算task的模式是完全不同的, MR是分map和reduce的, Spark是分stage的, 完全不同,当然需要自己的history server。而YARN中的history server,其实是针对MR的,并非是针对YARN通用平台的服务。上面说到, 虽然spark和MR的模型不同,都有自己的historyserver, 但是有一个是相通的,就是都是在YARN上运行, 每个container有统一的日志存放地址;

2023-03-20 14:33:06 608

转载 Doris SQL 原理解析

本文主要介绍了Doris SQL解析的原理。重点讲述了生成单机逻辑计划,生成分布式逻辑计划,生成分布式物理计划的过程。对应于代码实现是Analyze,SinglePlan,DistributedPlan,Schedule四个部分。Analyze负责对AST进行前期的一些处理,SinglePlan根据AST进行优化生成单机查询计划,DistributedPlan将单机的查询计划拆成分布式的查询计划,Schedule阶段负责决定查询计划下发到哪些机器上执行。由于SQL类型有很多,本文侧重介绍查询SQL的解

2023-03-02 23:42:48 1124 1

原创 Hutool实现按周、月、季度、半年、一年、今年以来统计

Hutool实现按周、月、季度、半年、一年、今年以来统计

2022-09-19 19:25:33 4476

转载 Spark executor中task的数量与最大并发数

根据类DAGScheduler中的submitMissingTasks方法可以知道,在stage中会为每个需要计算的partition生成一个task,换句话说也就是每个task处理一个partition。

2022-08-02 10:06:33 1708

转载 Hadoop文件存储格式(Avro、Parquet、ORC及其他)

相比TEXTFILE和SEQUENCEFILE,RCFILE由于列式存储方式,数据加载时性能消耗较大,但是具有较好的压缩比和查询响应。数据仓库的特点是一次写入、多次读取,因此,整体来看,

2022-07-30 20:01:42 4273

转载 ​TPC-H数据导入MySQL教程​

TPC-H是TPC提供的一个benchmark,用来模拟一个现实中的商业应用,可以生成一堆虚构的数据,且自带一些查询,可以导入到各种数据库中来模拟现实需求,检查性能。具体是怎样的数据见:http://www.tpc.org/tpch/spec/tpch2.16.0.pdf...

2022-07-28 20:32:46 1568 2

转载 TPC-C 、TPC-H和TPC-DS区别

TPC-C:TPC Benchmark C于1992年7月获得批准,是一个在线事务处理(OLTP)基准。 与TPC-A等以前的OLTP基准测试相比,TPC-C更复杂,因为它具有多种事务类型,更复杂的数据库和整体执行结构。 TPC-C涉及五个不同类型和复杂性的并发事务的混合,这些事务可以在线执行或排队等待延迟执行。 该数据库由九种类型的表组成,具有广泛的记录和人口规模。 TPC-C以每分钟事务数(tpmC)衡量。 虽然基准描述了批发供应商的活动,但TPC-C并不限于任何特定业务领域的活动,而是代表必须管理

2022-07-20 23:15:01 3916

转载 Antlr4简易快速入门

Antlr4简易快速入门1. 简介Antlr (ANother Tool for Language Recognition) 是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用来构建语言,工具和框架。Antlr可以从语法上来生成一个可以构建和遍历解析树的解析器。2. 谁在使用Hive Spark Oracle Presto Elasticsearch3. 常见的语法分析器Antlr Javacc SqlParser (位于Alib

2022-04-08 09:31:19 2809

翻译 MySQL8.0 GTID 格式和存储

GTID 格式和存储全局事务标识符 (GTID) 是在源服务器(源)上创建并与提交的每个事务相关联的唯一标识符。这个标识符不仅对于它起源的服务器是唯一的,而且在给定的复制拓扑中的所有服务器中都是唯一的。GTID 分配区分在源上提交的客户端事务和在副本上复制的复制事务。当客户端事务在源上提交时,它会被分配一个新的 GTID,前提是该事务已写入二进制日志。保证客户端事务具有单调递增的 GTID,生成的数字之间没有间隙。如果客户端事务没有写入二进制日志(例如,因为事务被过滤掉,或者事务是只...

2022-02-09 11:09:02 645

转载 hbase行键过滤器RowFilter

RowFilter是用来对rowkey进行过滤的,比较符如下: Operator Description LESS 小于 LESS_OR_EQUAL 小于等于 EQUAL 等于 NOT_EQUAL 不等于 GREATER_OR_EQUAL 大于等于 .

2021-12-16 18:02:17 1138

转载 Spark executor中task的数量与最大并发数

关于executor和task的概念可以参考官方文档本文使用的源码是spark 2.0.0版本Task的数量根据类DAGScheduler中的submitMissingTasks方法可以知道,在stage中会为每个需要计算的partition生成一个task,换句话说也就是每个task处理一个partition。//From submitMissingTasks...... val tasks: Seq[Task[_]] = try { stage match {

2021-10-16 16:31:18 1526

转载 CDH端口汇总

service name parameter port number HBase REST Server Port hbase.rest.port 20550 HBase REST Server Web UI Port hbase.rest.info.port 8085 HBase Thrift Server Port hbase.regionserver.thrift.port 9090 HBase Thrift Server Web UI

2021-10-03 11:38:35 711

转载 hadoop(原生及CDH发行版)关键目录、配置文件及服务对应文件名详解

四个最主要的配置文件(原生版本位于$HADOOP_HOME\etc\hadoop目录):mapred-site.xmlcore-site.xmlhdfs-site.xmlyarn-site.xml在CDH发行版中,各目录下的配置及文件及其含义如下:1. 相关目录 /var/log/cloudera-scm-installer : 安装日志目录。/var/log/* : 相关日志文件(相关服务的及CM的)。/usr/share/cmf/ : 程序安装目录。/usr/lib64/cmf..

2021-10-02 22:02:03 1200

转载 日志切割之Logrotate

日志切割之Logrotateposted @2018-05-18 09:54惨绿少年 阅读(54458) 评论(4)编辑收藏举报分类:其他,运维基本功,日常undefined1、关于日志切割  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。  logrotate是个...

2021-09-30 16:20:22 435

统计hdfs占用空间较大的作业目录支持自定义目录和topN数的脚本

大数据运维的好工具,提供topN数量和目录,输出占用hdfs空间较大的作业列表,较快的排查与处理hdfs占用空间较大的作业导致集群满的问题

2021-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除