
大数据
文章平均质量分 64
叫我莫言鸭
这个作者很懒,什么都没留下…
展开
-
数仓学习之DWD学习
放入购物车或者增加数量。原创 2023-09-08 20:51:57 · 315 阅读 · 0 评论 -
DIM层维度表学习之用户维度表分析
因为最新状态的结束时间并不确定,为了避免一天一修改的麻烦,直接将最新状态的结束时间设定为一个不可到达的值,这里设置为9999-12-31.这里注意一下,这里拉链表用状态的结束时间来分区,因为开始时间并不能表现状态的结束和真正的持续结束时间。基数太大,而且变化并不太多,因此保存全部数据消耗的资源并没有显现出特别大的意义,感觉浪费资源了。这样就可以使用拉链表,用开始日期和结束日期来展现用户这段信息持续的状态,因为是按结束时间进行分区,则每天保存的,就是当天结束的状态,或者说,原创 2023-09-08 13:54:23 · 735 阅读 · 0 评论 -
Kafka的文件存储与稀疏索引机制
log就是seg 找数据就是先找log 再从log去找。index是偏移量索引而timeindex是时间戳索引。这些是存储在分区(分区才是实际的存储)文件中的.seg是逻辑概念 而实际由log存储的.原创 2023-09-07 16:52:53 · 633 阅读 · 0 评论 -
数据仓库的流程
看事物的角度。原创 2023-09-04 21:30:20 · 796 阅读 · 0 评论 -
关于Maxwell与Kafka和数据库的监控
零点漂移,当为一天末点时,时间戳还是末点,但是到第二个Flume时,时间戳更新,这时候直接到第二天,导致数据与时间不一致.其实就是配置两端的配置信息,都要能连接上,然后才能去传输数据。每条数据都有时间戳,这个时间戳是同步的时间。5.为什么Kafka后面需要拦截器?1.Maxwell的配置。原创 2023-08-29 20:14:09 · 1180 阅读 · 1 评论 -
数据库集群的简单了解
Update。原创 2023-08-28 16:36:14 · 413 阅读 · 0 评论 -
Spark最后一课
如果是Client模式,则Driver就是本机了,Executor 会直接交互本机,远程访问提交,不能停止,同时所有Executor会交互本机,而本机资源不足,会导致系统和网络崩溃.按照等级进行尝试,从高等级到低等级,降级机制.如何避免多次访问通一个节点?9.Driver调用资源,找到空闲的NM,进行Executor注册,然后进行任务的切分和分配.全部写入到一个文件中,保证文件内容有序,同时,使用稀疏索引来确定数据的位置。10.Executor 启动线程池,根据优先算法依次启动task线程.原创 2023-08-25 20:24:41 · 1024 阅读 · 0 评论 -
Hive面试自学版
Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。Hive是一个基于Hadoop的数据仓库工具,可以将结构化数据文件映射为一张表,同时可以将H-SQL语句转化为MapReduce程序在集群上运行。HiveServer2 提供远程访问服务客户通过访问HiveServer2这个中间件来访问Hadoop集群。原创 2023-08-23 20:29:27 · 132 阅读 · 0 评论 -
关于Map的理解
这个分区合并,就是不同task的相同区号的分区进行合并,例子: task1的分区1和task2的分区1进行合并。这里的cCombiner分区合并指的是 直接在shuflle进行计算 比如 sum什么的。Shuffle中进行了分组聚合,而Reduce对分组聚合后的数据进行重新计算.设定为1时, 根本不走自定义分区器,而是Hash。如果分区数小于规则(分区数不为1) 报错。也可以通过设定reduce数量来调整分区数。分区对应的是ReduceTask。设置输入流的类来控制小文件,原创 2023-08-23 08:47:56 · 82 阅读 · 0 评论 -
spark第四课
不推荐collect,因为他是将数据放入内存,但是内存不够大的话,就容易崩,所以使用saveAsTextFile更好,直接放入磁盘.Job数量: 只要执行一个行动算子,就会产生一个作业.(不考虑前面,例如sortby也会产生一个作业)分区的大于foreach,因为foreach是一个一个压栈,而Partition是一个区一个区压栈。Stage数量(一个job至少一个阶段,1个shuffle就是一个阶段)依赖是在创建时就已经确定了,而shuffle是在创建后运行时才使用的.原创 2023-08-21 10:24:38 · 594 阅读 · 0 评论 -
Spark第三课
sortby方法需要传3个参数参数1 排序规则参数2 升序还是降序(false) 默认升序(true)参数3 排序的分区数量(说明方法底层是靠shuffle实现,所以才有改变分区的能力)如何区分是键值对方法还是单值方法呢?通过参数来判断, 如果参数是一个值,就是单值,如果是2个,就是键值对直接对value进行操作,不需要管K当然,也有mapKey方法可以无视Value操作Key。原创 2023-08-18 20:54:22 · 1117 阅读 · 0 评论 -
Spark第二课RDD的详解
RDDJAVA中的IO。原创 2023-08-16 21:28:54 · 1069 阅读 · 0 评论 -
Spark第一课入学篇
hashmap 一个节点放8个, 链表长度为8,不操作,但是第9个时,就开始数据倾斜,开始修正,hashmap的数组默认长度为16,这时候开始扩容2倍,当放第10个时,数组再扩容2倍,64, 再放11个时,修改链表数据结构变成红黑二叉树。Spark是无法读取文件的,底层读文件采用的是Hadoop方式,所以文件分区不是Spark决定的,是Hadoop决定的,Hadoop读取文件的切片就是Spark的分区.trim去掉的是半角空格(老外的),并不能去掉全角空格(亚洲)原创 2023-08-15 18:54:20 · 300 阅读 · 0 评论 -
Kafka第三课
4.每个消费者都和coordinator保持心跳3s,超时(45s)移除该消费者,或者处理时间过长(超过5分钟),触发再平衡,重新制定消费方案。1.选出coordinator groupid的哈希值%50 这个组下的所有消费者提交offset都往这个分区提交。2.消费者实例到coordinator注册,然后coordinator选出一个consumer leader。获取配置->修改配置->拦截器->序列化器->分区器->sender 到broker。原创 2023-08-14 20:45:06 · 1470 阅读 · 0 评论 -
KAFKA第二课之生产者(面试重点)
同步就是,串行,一条龙 异步 一起运行举例: 餐馆点餐同步: 需要等服务员过来,让服务员记录,异步: 点餐APP直接点餐,交给队列,让他自己运行1.实现接口Parititoner,重写相关方法2.修改配置 将partitioner设置为默认配置// 自定义分区器 实现partitioner接口// 1.分区方法@Override// 获取消息// 创建partition 作为最后的分区标识// 分区逻辑// 根据含有的字符串进行判断 判断进入哪个分区。原创 2023-08-11 19:48:07 · 1256 阅读 · 0 评论 -
Kafka第一课概述与安装
前端 传到日志 日志传到Flume 传到HADOOP但是如果数据特比大,HADOOP就承受不住了。原创 2023-08-10 20:35:12 · 1262 阅读 · 0 评论 -
Flume拦截器
但是flume是通过内部类创建对象的。实现 Interceptor接口。原创 2023-08-10 10:32:26 · 615 阅读 · 0 评论 -
开窗积累之学习更新版
【代码】开窗积累之学习更新版。原创 2023-08-07 23:39:05 · 298 阅读 · 0 评论 -
HIVE语法优化之Join优化
这个数据不需要进入内存加载,直接在磁盘进行操作了,因为他是顺序读取,效率也很高,不需要加入内存读取来提高效率.桶用两表关联字段,MapJoin时需要将小表填入内存,这时候,分桶就起到了作用。m c 就是子任务 ,那么,子任务是map join么?一个stage阶段代表一个mr执行,好几个MR,会吧每一个MR的结果都压缩。job2:从缓存中读取小表数据,缓存在Map Task中,扫描大表.如果sql语句执行超过指定时间,定义该sql为慢查询,存储日志,如果达不到要求,就不继续聚合,然后最后的比例,聚合。原创 2023-08-06 17:37:10 · 898 阅读 · 0 评论 -
关于HIVE的分区与分桶
Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录,每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区,这样的查询效率会提高很多个人理解白话:按表中或者自定义的一个列,对数据进行了group by, 然后这时候,查询出的一行就是一个文件,或者说,分区列一行对应一个文件本质是MR中默认的分区操作,分桶字段就是MR中的key,分桶数就是MR中ReduceTask的数量。原创 2023-08-05 17:47:10 · 747 阅读 · 0 评论 -
HIVE学习
Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。大白话: HIVE就是一个类似于Navicat的可视化客户端,原创 2023-08-05 14:52:51 · 677 阅读 · 0 评论 -
Yarn与Zookeeper学习
百分比的比较,谁大就是谁控制虚拟核数就是我们自己设定的CPU核数大小,但是当物理核数时,会按照机器的实际核数进行运载,甚至超载。原创 2023-07-24 21:12:58 · 834 阅读 · 0 评论 -
关于join
思路: map负责数据整合,reduce负责进行join缺点: 数据倾斜,Reduce处理太多而Map处理的太少. 这样Reduce的负载太大了.原创 2023-07-24 09:17:56 · 83 阅读 · 0 评论 -
关于小文件切片的虚拟存储过程
【代码】关于小文件切片的虚拟存储过程。原创 2023-07-21 19:04:59 · 92 阅读 · 0 评论 -
关于Shuffle
3.到达临界点(例子80%),会直接进行区内排序,这个操作发生在缓冲区中,Map放入数据之前会默认判断缓冲区状态,满就等待.处理有序数据比无序数据比较快,为了提升MR的性能,其实我感觉还是数据的问题,因为大部分数据都是无序的.6.从磁盘中拷贝到内存,导入Reduce ,处理数据.归并排序.按K分组。4.排序后将数据取出,数据溢出.这时进行(一个task)分区合并()注意一下,存储到块时,是如果不够快大小,是以实际大小存入的.区满之后,需要区内重新排序一下,保证区内数据的有序性.原创 2023-07-21 18:27:46 · 127 阅读 · 0 评论 -
MapReduce切片
反证法:假设,我们不使用块大小来定义, 设当前块大小为128M, 片大小为100M。我们需要计算HDFS中的数据,要从里面取300M的数据。首先,第一个块取出来,切, 还剩28M,取第二个块,切72M, 然后第二块还剩56M 再取第三块,再取44M。这样的结果,显然就是将数据块的数据分割重组,这样大大增加了资源的消耗。不论是比当前块大,还是比当前块小,都避免不了数据块的分割重组,所以,与块大小一致是目前最优。原创 2023-07-20 15:28:04 · 316 阅读 · 0 评论 -
Shuffle简单理解
maptask运行结束,每个mask块自身排一下序(并行)。先copy到相应的机器,然后再重新进行一次排序。注意,应该是边复制边排序。第二次排序,是将每个reduce对应的task进行排序,然后再进入reduce。mapper和reduce是不同的机器,进行了网络传输,所以存在数据拷贝。map的结果本身是无序的,但是map输出的结果有序。原创 2023-07-19 20:12:42 · 1109 阅读 · 0 评论 -
HDFS面试(自己学习版)
大:设置太大,磁盘传输时间明显大于定位块的时间,因为块大了,块总数就相对少了,寻址时间相对少很多,而块过大,磁盘传输时间变大。与寻址时间有关:默认寻址时间为传输时间的百分之一为最优。小:块总数变多,寻址时间增大了。1s*磁盘传输速率就是块大小。假设10ms找到目标,原创 2023-07-18 19:21:36 · 1987 阅读 · 1 评论 -
HDFS与MapResource笔记
64K发到1节点,1节点立刻发给2节点,同时1节点自动开始落盘,这里,3个节点是同时落盘的. 因为缓存是在内存中,而持久化是将数据存到磁盘上.注意 当NN启动并且加载到内存后,还不能开,必须先将DN向NN注册,同时上报,以后每6小时都上报所有块信息.数据块 一个数据块带一个meta文件,meta文件就是数据块的描述信息(数据长度 校验和 时间戳)100W条数据,或者1小时到达,2NN要合并了,Edits会不会停止?7. 2NN将新的元数据发送给NN,NN更新元数据。ReduceTask数量取决于分区数量。原创 2023-07-18 18:07:54 · 1361 阅读 · 0 评论 -
Hadoop第一课之环境配置
core配置Node后端供给端口,存储目录,还有默认用户HDFS配置 页面服务端端口Yarn 配置将MR走shuffle 指定自己的ResourceManager地址 并且继承环境变量Map 指定在yarn上运行。原创 2023-07-17 19:47:23 · 668 阅读 · 0 评论 -
非对称加密算法关于公钥和私钥
其实就是,谁想接收数据,谁就得生成公钥私钥,然后把公钥发出去,让别人用公钥加密数据,再发回来,这时候,接收方用私钥解密。发送方用收到的公钥对数据加密,再发送给接收方;如果可以用公钥解密,则必然是对应的私钥加的密。如果可以用私钥解密,则必然是对应的公钥加的密。首先 接收方 生成一对密钥,即私钥和公钥;公开的密钥叫公钥,只有自己知道的叫私钥。用公钥加密的数据只有对应的私钥可以解密。用私钥加密的数据只有对应的公钥可以解密。然后,接收方 将公钥发送给 发送方;接收方收到数据后,使用自己的私钥解密。原创 2023-07-16 22:45:00 · 1218 阅读 · 0 评论 -
Mysql之窗口函数学习
row_rank 不重复rank 重复但不连续dense_rank 重复且连续如果是要求名次 可以选择rank如果是要求个数 使用row_rank。原创 2023-07-13 14:53:26 · 308 阅读 · 0 评论 -
Linux之命令找不到的绝望的解决办法
如果没权限就sudo 或者直接登录root账户。到这里不要慌,我们查询一下他梭所在包的包名。yum install +包名。原创 2023-07-10 16:58:14 · 368 阅读 · 0 评论 -
Linux如何设置固定IP
首先,Linux的默认网关和DNS解析都是一个地址。IPV4 IP地址是32位2进制前缀默认是24但是格式还是得写DNS解析域名,类似Map,根据域名寻找IPDHCP 如果是自动设置IP,就是由他来自行分配,但是手动的话,就需要干掉他。原创 2023-07-10 16:44:42 · 9855 阅读 · 0 评论 -
虚拟机的安装
然后下一步安装位置点一下,然后完成,因为他是必须得点一下,确保你看过然后网络和主机名打开以太网,完成然后开始安装即可root 密码设置简单点即可。原创 2023-07-10 10:10:22 · 126 阅读 · 0 评论