自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 收藏
  • 关注

原创 漫谈红黑树:红黑树的奇妙演化

参考:漫谈红黑树:红黑树的奇妙演化_Lion Long的博客-CSDN博客

2023-08-26 11:48:00 132

原创 hive可以删除单条数据吗

参考:hive只操作几条数据特别慢 hive可以删除单条数据吗_柳随风的技术博客_51CTO博客

2023-08-26 11:45:46 1087

原创 HiveSQL刷题

现有各直播间的用户访问记录表(live_events)如下,表中每行数据表达的信息为,一个用户何时进入了一个直播间,又在何时离开了该直播间。

2023-08-24 09:10:56 1362

原创 spark默认的executor是多少

在spark-default.conf文件中配置。

2023-08-19 15:52:56 253

原创 HDFS-块丢失和块损坏

去看看有没有副本,有副本的话,NN会自动同步数据,如果没有自动同步,重启HDFS。有可能是使用的hive的外部表,元数据没有,可以使用命令修复分区。

2023-08-17 14:07:43 631

原创 Flink面试常见问题(实战)

参考:Flink面试常见问题(实战) - 知乎

2023-08-16 20:41:17 110

原创 SQL之求股票的波峰和波谷--HiveSQL面试题33【今日头条】

参考:SQL之求股票的波峰和波谷--HiveSQL面试题33【今日头条】_sql 波峰波谷_莫叫石榴姐的博客-CSDN博客

2023-08-14 09:18:54 224

原创 Java 面试八股文

参考:2023年 Java 面试八股文(20w字)_json解析失败_leader_song的博客-CSDN博客

2023-08-12 22:33:23 1538

原创 实时指标-1日留存率

2个DWD层 登录→kafka 注册→kafka 1个DWS 弄2条流,从kafka读取数据 将昨日注册数据存到状态中,TTL为2天,存到map状态中,key为注册日期,value为set,存储注册的uid 将登录流和注册流进行连接 来一条登录数据,去注册状态中get昨天的日期,然后判断登录的uid在不在set中,如果在,说明昨天注册的,那么留存数加1 get昨天的日期,取set的size,就是昨日注册数 开一个10分钟的窗口,每10分钟将留存数和昨日注册数存到Doris的

2023-08-12 22:16:17 531

原创 flink优化

大状态调优:在我们的项目中,在做新老访客修复时,我们将每个mid的访问时间都存到了状态里面,在做回流用户数时,我们将每个用户的登录时间都存到了状态里面,导致了大状态问题,由于hashmap状态后端会将数据存储到内存,所以就会出现内存不够的情况。我们的解决办法就是将状态后端改成了rocksdb,并且开启增量检查点和本地恢复去进行调优。

2023-08-12 16:59:15 913

原创 flink-对齐和不对齐,精准一次和至少一次

精准一次怎么保证?可以设置为以下2个 对齐 当有一个barrier比较快时,输入缓冲区阻塞,当另外一个barrier到来时,才进行备份,所以数据不会重复。 优点:不会造成数据重复 缺点:会造成数据积压,OOM 不对齐 当有一个barrier到来时,直接将barrier置到最后,然后将所有缓冲区的数据和状态进行备份,然后将kafka提交,然后将慢的barrier也置到最后,将所有缓冲区的数据和状态进行备份,然后将kafka提交。 优点:加快了ck 缺点:由于备份了大

2023-08-12 15:23:44 1755

原创 Flink-网络流控及反压剖析

参考:Apache Flink学习网

2023-08-11 21:26:45 1288

原创 数据结构-学习

参考:数据结构-学习笔记_蓝净云_蓝净云的博客-CSDN博客

2023-08-11 21:17:18 356

原创 Flink-间隔联结

间隔联结只支持事件时间 间隔联结如果遇到迟到数据,则会关联不上,比如来了一个5秒的数据,它可以关联前2秒的数据,后3秒的数据,就是可以关联3秒到8秒的数据,然后又来了一个6秒的数据,可以关联4秒到9秒的数据,那么3秒的数据,就永远不会被关联到了,就可以删除了,然后又来了一个迟到数据,比如4秒的数据,可以关联2秒到7秒的数据,但是3秒的数据已经被删除了,所以就关联不上了。对于这种情况,解决办法就是,使用回撤流,比如leftjoin,leftjoin可以设置状态过期时间,这个时间是系统时间,比如我们设置过

2023-08-09 17:34:49 1018

原创 Flink-串讲面试题

有状态的流式计算框架可以处理源源不断的实时数据,数据以event为单位,就是一条数据。

2023-08-08 16:53:00 981 1

原创 JDK1.8 JVM

参考。

2023-08-08 15:51:29 171

原创 MySQL事务的底层实现原理

MVCC (MultiVersion Concurrency Control) 叫做多版本并发控制,InnoDB的 MVCC ,是通过在每行记录的后面保存两个隐藏的列来实现的,这两个列,一个保存了行的创建时间,一个保存了行的过期时间,当然存储的并不是实际的时间值,而是系统版本号,他的主要实现思想是通过数据多版本来做到读写分离。MVCC在mysql中的实现依赖的是undo log与read view,undo log 中记录的是某行数据的多个版本的数据。原子性,持久性,隔离性的目的也是为了保障数据的一致性!

2023-08-08 11:37:30 166

原创 doris-面试题

mysql客户端 fe :接受客户端请求,元数据管理,节点管理 be :数据存储,查询计划执行

2023-08-07 20:08:07 1121

原创 Hbase-热点问题(数据存储倾斜问题)

某一台regionserver消耗过多,承受过多的并发量,时间长机器性能下降,甚至宕机。

2023-08-07 18:38:59 1359

原创 Hbase-面试题

自动切分,默认情况下 2.0版本,第一次region的数据达到256M,会进行切分,以后就是每达到10G切分一次,切分完成后,会进行负载均衡,均衡到其他regionserver 预分区+自定义rowkey 可以理解为预切分 比如预分区,每个regionserver会有10个region,每个region都有startrow和endrow 生产上必须要用预分区+自定义rowkey 预分区好了之后,即使没有数据,也会新建10个region的空文件 以后存数据的时候,会均匀的存到每个re

2023-08-07 17:08:35 1047 2

原创 HBase-读流程

(6)先从写缓存中读取数据,如果没有就从读缓存中读取数据,如果没有就从磁盘中读取数据,并将读取的数据放到读缓存中。(4)向Meta表所在位置的RegionServer发起请求读取Meta表信息;(1)读取本地缓存中的Meta表信息;(第一次启动客户端为空)(2)向ZK发起读取Meta表所在位置的请求;(5)读取到Meta表信息并将其缓存在本地;(3)ZK正常返回Meta表所在位置;(7)给用户返回最大版本的数据。

2023-08-07 15:15:43 932

原创 HBase-写流程

(4)向Meta表所在位置的RegionServer发起请求读取Meta表信息;(7)先写WAL,再写MemStore,并向客户端返回写入数据成功。(1)读取本地缓存中的Meta表信息;(第一次启动客户端为空)写流程顺序正如API编写顺序,首先创建HBase的重量级连接。(2)向ZK发起读取Meta表所在位置的请求;(5)读取到Meta表信息并将其缓存在本地;(3)ZK正常返回Meta表所在位置;(6)向待写入表发起写数据请求;

2023-08-07 14:43:00 1184

原创 HBase-组成

HBase通过Zookeeper来做Master的高可用、记录RegionServer的部署信息、并且存储有meta表的位置信息。拆分合并Region的实际执行者,由Master监控,由regionServer执行。负责数据cell的处理,例如写入数据put,查询数据get等。

2023-08-07 14:16:50 1196

原创 kafka-事务

事务属性实现前提是幂等性,即在配置事务属性transaction id时,必须还得配置幂等性;但是幂等性是可以独立使用的,不需要依赖事务属性。

2023-08-05 17:23:02 1317

原创 kafka-保证数据不重复-生产者开启幂等性和事务的作用?

1.生产者开启幂等性为什么能去重

2023-08-05 16:38:18 1737

原创 Kafka-副本数量设置

ISR 机制的另外一个相关参数是, 可以在 broker 或者主题级别进行配置,代表 ISR 列表中至少要有几个可用副本。这里假设设置为 2,那么当可用副本数量小于该值时,就认为整个分区处于不可用状态。此时客户端再向分区写入数据时候就会抛出异常。

2023-08-05 14:47:10 4745 1

原创 【hive经典指标,离线数仓指标,ADS层指标分析】最近7日内连续3日下单用户数

1.ODS获取用户登录信息2.DIM3.DWD4.DWS5.ADS6.SQL。

2023-08-03 21:32:40 978

原创 Kafka-Broker工作流程

kafka集群在启动时,会将每个broker节点注册到zookeeper中,每个broker节点都有一个controller,哪个controller先在zookeeper中注册,哪个controller就负责监听brokers节点变化,当有分区的leader挂掉时,controller会监听到节点变化,然后去zookeeper中获取isr,选举新的leader,选举的规则是:在isr中存活为前提,按照AR中排在前面的优先。

2023-08-02 17:02:04 1248

原创 Kafka-消费者组消费流程

消费者向kafka集群发送消费请求,消费者客户端默认每次从kafka集群拉取50M数据,放到缓冲队列中,消费者从缓冲队列中每次拉取500条数据进行消费。

2023-08-02 16:00:46 1146

原创 SQL-方法论

【代码】SQL-方法论。

2023-08-02 15:02:17 804

原创 离线数仓中,为什么用两个flume,一个kafka

实时数仓中,为什么没有零点漂移问题? 因为flink直接取的事件时间 用kafka是为了速度快,并且数据不丢,那为什么既用了kafkachannel,也用了kafka,而不只用kafkachannel呢? 因为需要削峰填谷 离线数仓中,为什么用两个flume,一个kafka,直接用taildirsource,kafkachannel,hdfssink不行吗? 不行 kafka可以削峰填谷 如果用kafkachannel,那么数据写到kafka,只剩event,没有header,无法

2023-08-02 14:34:54 2696

原创 SQL-非等值连接

id 月份 GMV。小明 1 50。小明 1 50。小明 1 50。结果:每个月份的累积汇总值。需求五:id 月份 GMV。2)不能使用开窗,非等值连接。

2023-08-02 14:24:01 142

原创 kafka-主题过多会有什么危害?

会造成分区过多,IO压力大 topic太多出现too many file,打开文件过多 partition过多在controller选举和controller重新选举partition leader的耗时会大大增加,造成kafka不可用的时间延长

2023-08-02 14:13:59 381

原创 Hive-数据倾斜

在计算各省份的GMV时,有可能会发生数据倾斜,解决办法如下:

2023-08-01 19:30:57 1461

原创 Hive优化

分区,分桶避免全局扫描 列式存储,加快计算速度 采用压缩,减少磁盘IO 谓词下推,行列过滤(select *),列剪裁,CBO优化(对于计算成本的优化,比如join的顺序) 开启map-side 针对groupby,数据量大的可以提前预聚合 开启map-join 大表join小表场景 开启分桶join SMB 两张表必须是分桶表 分桶数量必须整数倍 分桶字段必须是关联字段 开启skew-join,如果检测到有key比较多的,那么单独开启一个mapjoin去计算,其他正常

2023-08-01 19:18:10 71

原创 Spark-任务怎么切分

(1)Application:初始化一个SparkContext即生成一个Application;(4)Task:一个Stage阶段中,最后一个RDD的分区个数就是Task的个数。(2)Job:一个Action算子就会生成一个Job;(3)Stage:Stage等于宽依赖的个数加1;

2023-08-01 18:57:06 401

原创 Spark-对RDD的理解

RDD的弹性主要体现在计算弹性,存储弹性,任务弹性,数据位置弹性。RDD是分布式弹性数据集。

2023-08-01 18:17:34 356

原创 Spark-统一内存模型

其中存储内存和计算内存可以动态占用,当己方内存不足对方空余则可占用对方的内存,计算内存被存储内存占用后可强制收回,存储内存被计算内存占用后不可强制收回,只能等待释放。Spark的内存模型分为4部分,分别是存储内存,计算内存,其他内存,预留内存;

2023-08-01 16:31:04 353

原创 Spark-SortShuffle原理

每个Task会先把数据发送到缓冲区中,缓冲区满了会排序溢写到临时文件,等到Task计算完成之后,会把这些临时文件合并成一个大文件,和一个index文件,文件内容是有序的,等到所有的Task计算完成之后,启动ReduceTask,拉取属于自己分区的数据进行计算。最后在每个Task中,将所有的临时文件合并,这就是merge过程,此过程将所有临时文件读取出来,一次写入到最终文件。在溢写磁盘前,先根据key进行排序,排序过后的数据,会分批写入到磁盘文件中。:减少了小文件,不排序,效率高。在不需要排序的场景使用。

2023-08-01 16:17:45 348

原创 Spark提交流程

客户端通过脚本将任务提交到yarn执行,yarn启动APPMaster,APPMaster启动Driver线程,Driver负责初始化SparkContext并进行任务的切分和分配任务,交给Executor进行计算。

2023-08-01 16:00:15 324

空空如也

空空如也

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

TA关注的人

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