大数据领军人
码龄3年
关注
提问 私信
  • 博客:12,605
    12,605
    总访问量
  • 14
    原创
  • 93,179
    排名
  • 156
    粉丝
  • 0
    铁粉

个人简介:这里介绍不了我

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:黑龙江省
  • 加入CSDN时间: 2022-07-04
博客简介:

m0_72566748的博客

查看详细资料
  • 原力等级
    当前等级
    1
    当前总分
    92
    当月
    1
个人成就
  • 获得255次点赞
  • 内容获得0次评论
  • 获得204次收藏
创作历程
  • 14篇
    2024年
成就勋章
兴趣领域 设置
  • Python
    python
  • Java
    java
  • 编程语言
    c++c语言
  • 数据结构与算法
    算法数据结构
  • 大数据
    大数据
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Spark join策略

spark默认的,两张大表进行join时使用。
原创
发布博客 2024.10.03 ·
330 阅读 ·
8 点赞 ·
0 评论 ·
3 收藏

生产实践中的经典算法-BitMap

是一个位图,用二进制来记录数据状态,本质就是字节表示法。一个int占4个字节,32bit。用下标表示数值,下标索引由0~31。比如想存1,2,4,6。在字节数组中下标对应1,2,4,6位置的元素记为,其余为0。因为都是在A[0]中,A[0]=1+4+16+64=86。因为一个字节数组只能存32位,比如A[0]存0~31,32就存在A[1]中。比如存32,34,36。后续数字以此类推。那么如何确定给定的一个数M,应该存在哪个位置呢?因为每个数组可以存32个,所以首先M/32得到应该存在数组的下标。
原创
发布博客 2024.10.03 ·
578 阅读 ·
11 点赞 ·
0 评论 ·
8 收藏

Spark shuffle和Hadoop shuffle区别通俗易懂

普通机制会将计算结果写入到一个默认的内存结构(默认是5M),每次写入都会进行一个阈值的判断,是否写满了。合并机制是让多个task共享一个buffer,这样会减少落盘的文件,会产生reduce个数 * core个数的文件。Map端Shuffle会将数据写入到环形缓冲区,默认大小是100M,底层是一个数组,一半存储数据,另一半存储元数据,当达到80%的时候进行反向溢写,溢写之前要根据key的hashcode值对reduce task的个数取模进行分区快排,然后溢写到本地磁盘中。当内存满了之后会写到本地磁盘。
原创
发布博客 2024.10.02 ·
433 阅读 ·
6 点赞 ·
0 评论 ·
1 收藏

数据库 面试题(持续更新)

a. 普通索引:一个索引只能包含一个列,一个表中可以有多个普通索引b. 唯一索引:索引列的值必须唯一,但润许有空值,且只允许有一个空值c. 主键索引:一个表只能有一个主键索引,并且不能为空d. 复合索引:一个索引可以包含多个列。
原创
发布博客 2024.09.30 ·
226 阅读 ·
9 点赞 ·
0 评论 ·
1 收藏

Flink 面试题 (持续更新)

1. 计算速度不同,flink是真正的实时计算框架,Spark Streaming是一个准实时微批次的计算框架2. 架构不同,Spark Streaming的角色是Driver、Executor,Flink是JobManager和TaskManager3. 时间机制不同,Spark Streaming只支持处理时间,而Flink有三种时间:事件时间、注入时间和处理时间,并且还有水位线机制处理迟到数据。
原创
发布博客 2024.09.30 ·
1526 阅读 ·
21 点赞 ·
0 评论 ·
39 收藏

Flink 容错机制

Barrier对齐: 一个task收到 所有上游 同一个编号的barrier之后,才会对自己的本地状态做备份①:精准一次:在对齐过程中,barrier后面的数据 阻塞等待,不会越过barrier②:至少一次:在对齐过程中,先到的barrier,其后面的数据不阻塞,继续计算非Barrier对齐:一个Task收到第一个barrier后,就开始执行备份,能保证精准一次。细节:①:先到的barrier 将本地状态备份,同时后面的数据接着计算输出。
原创
发布博客 2024.09.29 ·
720 阅读 ·
11 点赞 ·
0 评论 ·
24 收藏

Spark 数据倾斜问题 — 通俗易懂

原因:数据本身不均,分组之后导致不均匀或者filter过后分区间数据量不一致,造成某些key的value数据量远大于其他key的,导致绝大多数的任务执行的很快,只有少部分的任务执行的很慢甚至执行失败。
原创
发布博客 2024.09.29 ·
509 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

Spark调优 — 个人小总结

从三方面考虑。
原创
发布博客 2024.09.29 ·
437 阅读 ·
11 点赞 ·
0 评论 ·
1 收藏

Flink -- 状态管理

Flink中算子任务可以分为有状态和无状态。无状态的算子任务只需要观察每个独立事件,根据当前输入的数据直接转换输出结果。比如map、flatmap有状态的算子,除了当前数据之外,还需要一些其他的数据来得到计算结果。这些其他数据,就是所谓的状态。比如聚合算子、窗口算子都属于有状态算子。
原创
发布博客 2024.09.28 ·
589 阅读 ·
25 点赞 ·
0 评论 ·
17 收藏

flink -- 处理函数

ProcessFunction底层继承了AbstractRichFunction,有两个泛型表示输入和输出。其中有一个抽象方法processElement必须要实现,另一个非抽象方法onTimer1) 抽象方法processElement对于流中的每个元素都会调用一次,参数包括三个,输入的数据值value、上下文ctx、收集器collector out,这个方法没有返回值,处理之后的输出数据是通过收集器out定义的2) 非抽象方法onTimer类似于闹钟,只有在注册好的定时器触发时才会调用。
原创
发布博客 2024.09.27 ·
1015 阅读 ·
8 点赞 ·
0 评论 ·
14 收藏

flink -- 合流

根据key进行合流相当于关系数据库中表的join操作。flink中两条流的connect操作,就可以通过keyby指定键进行分组后合并,实现类似sql的join。
原创
发布博客 2024.09.27 ·
314 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

Flink 水位线(Watermark)个人总结

在Flink中,用于衡量事件时间进展的标记,被称为水位线。可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点。主要内容就是一个时间戳,用来指示当前的事件时间自身理解:本质上就是一个时间戳,表示比这个时间早的事件已经全部到达。并且在数据乱序的情况下,通过水位线可以判断出迟到的数据。
原创
发布博客 2024.09.27 ·
2579 阅读 ·
53 点赞 ·
0 评论 ·
38 收藏

Flink的时间语义 -- 通俗介绍(包含零点漂移问题)

前一天23:59:59发送过来的数据,但是由于延迟发送到了下一天的分区,这条数据就具有偏差(离线数仓经典问题)。对于flink,具有事件时间,这个时间点是比较重要的,是保证计算结果准确的重要因素。喝牛奶这个时间为处理时间。一般情况下,业务日志数据中都会记录数据生成的时间戳(timestamp),它就可以作为事件时间判断的基础。"时间" 对于flink来说是非常重要的,大致可以分成两大类:事件时间和处理时间(flink的时间语义):一个数据产生的事件(比如2.30分下单操作,事件时间就为2.30分)
原创
发布博客 2024.09.27 ·
181 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Flink 窗口最全汇总

将要计算的数据限制一个范围,统计一个范围内的数据。将无界的数据切割成有届的数据。
原创
发布博客 2024.09.27 ·
3099 阅读 ·
80 点赞 ·
0 评论 ·
52 收藏