自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数仓分层架构

比如ADS层用户需要看到不同的连锁超市的销量情况,将不同的连锁超市的销量额存储在DWS层中,方便上层ADS能够直接将公共聚合粒度展示给不同的用户使用,或者将公共聚合粒度进一步进行处理。( ODS层即操作数据存储,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层;这层主要实现企业级数据的一致性。如:报表,大屏展示,数据服务(业务系统的数据加工后再次服务于业务系统),用户画像(标签的建设,统计,挖掘)、智能营销(标签的应用场景)、自助查询(数据探查窗口)

2024-03-30 23:13:49 686 1

原创 reduceByKey和groupByKey的区别

groupByKey 只能分组,不能聚合,所以在分组聚合的场景下,推荐使用 reduceByKey,但如果仅仅是分组而不需要聚合,那么还是只能使用 groupByKey。但是 reduceByKey 可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量;而 groupByKey 在shuffle时只会对数据进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。所以,在不影响业务逻辑的前提下,优先采用reduceByKey。

2024-03-29 16:01:00 326 1

原创 Spark作业工作流程

5.Task Scheduler 拿到任务后并不是立即分发出去,而是等 Worker Node 主动过来申请运行 Task,Task Scheduler 接到申请后,会将任务返回给 Worker Node,由 Worker Node 的 Executor 分配线程去运行。6. 最后,Executor 运行的结果会逐级返回给 Task Scheduler,再返回到 DAG Scheduler,最后返回到 SparkContext 中,做最后的处理。(处理可以返回给用户,也可以写入 HDFS 中)。

2024-03-29 13:57:34 180 1

原创 HDFS的安全模式

假设我们设置的副本数(即参数 dfs.replication)是 5,那么在 Datanode 上就应该有 5 个副本存在,假设只存在 3 个副本,那么比例就是 3/5=0.6。我们的副本率 0.6 明显小于 0.99,因此系统会自动的复制副本到其他的 DataNode, 使得副本率不小于 0.999. 如果系统中有 8 个副本,超过我们设定的 5 个副本,那么系统也会删除多余的 3 个副本。安全模式是 HDFS 的一种工作状态,处于安全模式的状态下,只接受客户端的读请求,不接受。

2024-03-28 17:10:17 442

原创 KMP算法容易理解版

下面是构建匹配串的过程,这里是将当前位作为匹配位(有些教科书说是当前位的前一位也行,看自己实现方法了,方法多样,思想掌握就行),假设匹配串为:aabaaab 因为匹配串第一位只有一位构不成前后匹配,默认为0(有些说-1也行,这里为0)比如子串是abcabe当c与e不相等时,此时匹配的长度是3,那3匹配不成功的话,那我就在前一个最长前后缀里面找,就是pi[j-1]了,看这时候的前后缀是否相等,这就节约了时间,称之为回溯。j=1,next[1]=1,因为a与前一位a相等。j=5,next[5]=1,a与a。

2024-01-27 14:00:58 180

原创 NameNode和Secondary NN的工作机制,FsImage与Edits的相关说明

如果Edits文件量过大或者定时对两个文件开始合并操作,先将FsImage和Edits分别拷贝一份,在NN中生成一份新的Edits2文件也就是在合并过程中出现的用户操作写入Edits2文件中,2NN对拷贝的两份FsImage和Edits文件加载到内存中并合并生成新的Fsimage文件,这时候2NN会告诉NN,我合并好了,NN会将这份新的Fsimage文件替换旧的Fsiamge文件。缺点:在内存上掉电丢失,可靠性差,在磁盘上,关机也不丢失数据,但是读写数据慢。优点:在内存上读写速度快,在磁盘上,关机不丢失。

2023-12-02 16:23:36 30

原创 hadoop中HDFS的读流程

客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode判断是否有下载权限和通过查询元数据,如果有权限那么就去找到文件块所在的DataNode地址。上期我们介绍了HDFS的写流程这期介绍一个读流程,这个读流程其实就是客户端从系统中拉取自己想要文件的操作,那么让我们来看一下底层逻辑是什么样的吧。DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

2023-12-01 14:53:45 29 1

原创 hadoop中HDFS的写流程

Hadoop的读流程

2023-12-01 14:44:40 49 1

原创 力扣:最长公共前缀和

这道题总体思路不难,两层循环,第一层遍历第一个字符串作为模板,将每个遍历的字符储存作为后面字符串的比对;第二层为遍历除第一个字符串之外的字符串数组,如果字符不相等或者遍历的长度等于模板目前的长度即结束。//第一个字符串的长度。

2023-11-30 21:26:46 15

原创 关于项目中端口号被占用解决方案

今天在开始一个项目的时候老是显示端口号被占用,就感觉很奇怪,明明都关闭掉项目重新启动了为什么原先端口号还是被占用,后来了解到未正常关闭的话后台还是会占用的,所以现在就提供给大家解决方案。2.如果你知道自己端口号被占用,直接查看是端口是在哪个进程开放的。netstat -ano|findstr "端口号"taskkill /f /t /im 进程号。其中冒号后面的就是端口号。

2023-08-18 23:11:26 170 1

原创 最好理解的关于SpringBoot的全局异常处理

SpringBoot的异常处理

2023-08-16 22:46:53 85

原创 力扣最小栈(难度:中等)

接下来是查看栈顶元素top( ),我们就想因为栈中存储的是当前值与最小值的差值,我们查看栈顶元素得知道实际元素是什么,如果当栈顶元素是负数的时候,证明当前值比最下值还要小,最小值更新为当前值,因此当最小值为负数,当前值为最小值。首先是push操作: 因为是插入操作,我们得知道更新之后的栈内最小值,如果当前栈中没有元素,当插入第一个元素,比如5时,栈内最小值没有就为0,那么插入0,最小值为5,记得更新最小值,先懂这个操作,不明白也没事,看下去就懂了。最后就是返回最小元素,直接返回min就好了。

2023-08-16 14:41:23 160 1

原创 力扣完全平方数(难度:中等)

题目很显然是要我们返回一个数的由最小平方数组成的数量,这道题乍一看很难,但是我们仔细想想,假设n=4,用result来表示最小数量,当遍历到n为1时,1本身就是完全平方数,所以result为1;当遍历到n为2时,2当中只有1是完全平方数,所以result为1+1=2;当n=3时,当然就是1+1+1=3啦,重点是n为4时,因为4本身就为完全平方数(2的平方),所以result为1,此时与当n为1的结果是一样的。

2023-08-15 18:10:58 80 3

空空如也

空空如也

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

TA关注的人

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